--- # playbook file used for creating the instances and storing data in instance-config - name: Create hosts: localhost gather_facts: false vars: molecule_inventory: all: hosts: {} molecule: {} tasks: - name: Create a container community.docker.docker_container: name: "{{ item.name }}" image: "{{ item.image }}" detach: true state: started log_driver: json-file cgroupns_mode: private cgroup_parent: docker.slice mounts: - target: /run type: tmpfs - target: /run/lock type: tmpfs - target: /tmp type: tmpfs register: result loop: "{{ molecule_yml.platforms }}" - name: Print some info ansible.builtin.debug: msg: "{{ result.results }}" - name: Fail if container is not running when: > item.container.State.ExitCode != 0 or not item.container.State.Running ansible.builtin.include_tasks: file: tasks/create-fail.yml loop: "{{ result.results }}" loop_control: label: "{{ item.container.Name }}" - name: Add container to molecule_inventory vars: inventory_partial_yaml: | all: children: molecule: hosts: "{{ item.name }}": ansible_connection: community.docker.docker ansible.builtin.set_fact: molecule_inventory: > {{ molecule_inventory | combine(inventory_partial_yaml | from_yaml) }} loop: "{{ molecule_yml.platforms }}" loop_control: label: "{{ item.name }}" - name: Dump molecule_inventory ansible.builtin.copy: content: | {{ molecule_inventory | to_yaml }} dest: "{{ molecule_ephemeral_directory }}/inventory/molecule_inventory.yml" mode: 0600 - name: Force inventory refresh ansible.builtin.meta: refresh_inventory - name: Fail if molecule group is missing ansible.builtin.assert: that: "'molecule' in groups" fail_msg: | molecule group was not found inside inventory groups: {{ groups }} run_once: true # noqa: run-once[task] # we want to avoid errors like "Failed to create temporary directory" - name: Validate that inventory was refreshed hosts: molecule gather_facts: false tasks: - name: Check uname ansible.builtin.raw: uname -a register: result changed_when: false - name: Display uname info ansible.builtin.debug: msg: "{{ result.stdout }}"