kayobe/roles/docker-engine/tasks/main.yml
Mark Goddard d385b32382 Add CI job for molecule tests
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
2018-04-10 12:28:27 +01:00

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.