d385b32382
Adds the following zuul job: kayobe-tox-molecule It runs ansible role tests using the molecule framework. Note that we are currently running tox as root to work around issues with applying docker group membership in the Zuul CI environment. The ubuntu-1604 platform has been removed because the job takes a long time to run even on one platform. Change-Id: I8be24be828c0e124d822d7b39a02169c92b81eb3 Story: #2001637 Task: #6646
80 lines
2.3 KiB
YAML
80 lines
2.3 KiB
YAML
---
|
|
# Docker community edition installation procedure for Ubuntu taken from
|
|
# https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1.
|
|
|
|
# TODO: Configure docker to use the registry mirror provided by OpenStack
|
|
# infra. Kolla-ansible has code referencing
|
|
# http://{{ zuul_site_mirror_fqdn }}:8081/registry-1.docker/, but this did not
|
|
# seem to work.
|
|
|
|
- name: Fail if OS family is not supported
|
|
fail:
|
|
msg: "OS family {{ ansible_os_family }} is not supported"
|
|
when: ansible_os_family not in ["Debian"]
|
|
|
|
- name: Update apt package cache
|
|
apt:
|
|
update_cache: true
|
|
become: true
|
|
|
|
- name: Ensure dependencies are installed
|
|
apt:
|
|
name: "{{ item }}"
|
|
state: installed
|
|
with_items:
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- curl
|
|
- software-properties-common
|
|
become: true
|
|
|
|
- name: Ensure docker apt gpg key is installed
|
|
apt_key:
|
|
url: "https://download.docker.com/linux/ubuntu/gpg"
|
|
id: "0EBFCD88"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Ensure docker CE stable repository is present
|
|
apt_repository:
|
|
repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename }} stable"
|
|
state: present
|
|
become: true
|
|
|
|
- name: Update apt package cache
|
|
apt:
|
|
update_cache: true
|
|
become: true
|
|
|
|
- name: Ensure docker-ce is installed
|
|
apt:
|
|
name: docker-ce
|
|
state: installed
|
|
become: true
|
|
|
|
- name: Ensure docker group exists
|
|
group:
|
|
name: docker
|
|
become: true
|
|
|
|
- name: Add user to docker group
|
|
user:
|
|
name: "{{ ansible_user_id }}"
|
|
append: yes
|
|
groups: docker
|
|
register: group_result
|
|
become: true
|
|
|
|
# NOTE(mgoddard): We need to reset the SSH connection to pick up the new group
|
|
# membership. For Ansible 2.3+, ideally we'd use a meta task with the
|
|
# reset_connection option but due to
|
|
# https://github.com/ansible/ansible/issues/27520 this does not work (checked
|
|
# in Ansible 2.3.2.0). Various methods have been attempted, but none have been
|
|
# found to work. Instead, we use sudo when executing tox.
|
|
# Attempted solutions:
|
|
# * reset_connection - see above.
|
|
# * kill local ssh/remove control socket - Zuul blocks running local commands.
|
|
# * kill remote sshd - causes the task to fail, error cannot be ignored.
|
|
# * pause for SSH connection timeout - fails due to
|
|
# https://github.com/ansible/ansible/issues/31694.
|