Initial commit

This commit is contained in:
Ansible Core Team
2020-03-09 09:11:07 +00:00
committed by Felix Fontein
commit a1f472244d
204 changed files with 35146 additions and 0 deletions
@@ -0,0 +1,18 @@
---
- hosts: 127.0.0.1
connection: local
tasks:
- name: Setup docker
include_role:
name: setup_docker
# There seems to be no better way to install docker-machine. At least I couldn't find any packages for RHEL7/8.
- name: Download docker-machine binary
vars:
docker_machine_version: "0.16.1"
get_url:
url: "https://github.com/docker/machine/releases/download/v{{ docker_machine_version }}/docker-machine-{{ ansible_system }}-{{ ansible_userspace_architecture }}"
dest: /tmp/docker-machine
- name: Install docker-machine binary
command: install /tmp/docker-machine /usr/bin/docker-machine
become: yes
@@ -0,0 +1,11 @@
---
- hosts: 127.0.0.1
connection: local
tasks:
- name: Request Docker Machine to use this machine as a generic VM
command: "docker-machine --debug create \
--driver generic \
--generic-ip-address=localhost \
--generic-ssh-key {{ lookup('env', 'HOME') }}/.ssh/id_rsa \
--generic-ssh-user root \
vm"
@@ -0,0 +1,6 @@
---
- hosts: 127.0.0.1
connection: local
tasks:
- name: Request Docker Machine to remove this machine as a generic VM
command: "docker-machine rm vm -f"
@@ -0,0 +1,50 @@
- hosts: 127.0.0.1
gather_facts: no
tasks:
- name: sanity check Docker Machine output
vars:
dm_ls_format: !unsafe '{{.Name}} | {{.DriverName}} | {{.State}} | {{.URL}} | {{.Error}}'
success_regex: "^vm | [^|]+ | Running | tcp://.+ |$"
command: docker-machine ls --format '{{ dm_ls_format }}'
register: result
failed_when: result.rc != 0 or result.stdout is not match(success_regex)
- name: verify Docker Machine ip
command: docker-machine ip vm
register: result
failed_when: result.rc != 0 or result.stdout != hostvars['vm'].ansible_host
- name: verify Docker Machine env
command: docker-machine env --shell=sh vm
register: result
- debug: var=result.stdout
- assert:
that:
- "'DOCKER_TLS_VERIFY=\"{{ hostvars['vm'].dm_DOCKER_TLS_VERIFY }}\"' in result.stdout"
- "'DOCKER_HOST=\"{{ hostvars['vm'].dm_DOCKER_HOST }}\"' in result.stdout"
- "'DOCKER_CERT_PATH=\"{{ hostvars['vm'].dm_DOCKER_CERT_PATH }}\"' in result.stdout"
- "'DOCKER_MACHINE_NAME=\"{{ hostvars['vm'].dm_DOCKER_MACHINE_NAME }}\"' in result.stdout"
- hosts: vm
gather_facts: no
tasks:
- name: do something to verify that accept-new ssh setting was applied by the docker-machine inventory plugin
raw: uname -a
register: result
- debug: var=result.stdout
- hosts: 127.0.0.1
gather_facts: no
environment:
DOCKER_CERT_PATH: "{{ hostvars['vm'].dm_DOCKER_CERT_PATH }}"
DOCKER_HOST: "{{ hostvars['vm'].dm_DOCKER_HOST }}"
DOCKER_MACHINE_NAME: "{{ hostvars['vm'].dm_DOCKER_MACHINE_NAME }}"
DOCKER_TLS_VERIFY: "{{ hostvars['vm'].dm_DOCKER_TLS_VERIFY }}"
tasks:
- name: run a Docker container on the target Docker Machine host to verify that Docker daemon connection settings from the docker-machine inventory plugin work as expected
docker_container:
name: test
image: hello-world:latest