- name: Clone SSH repos, inject private key, build and run container hosts: docker_host remote_user: ubuntu gather_facts: true become: yes become_method: sudo become_user: root vars: ansible_remote_tmp: /tmp/.ansible-{{ ansible_user_id }} main_br: "{{ lookup('env', 'MAIN_BR') | default('main', true) }}" env_br: "{{ lookup('env', 'ENV_BR') | default('main', true) }}" playbook_file: "{{ lookup('env', 'PLAYBOOK_FILE') | default('base.yaml') }}" ssh_private_key: "{{ lookup('env', 'SSH_PRIVATE_KEY') }}" base_dir: "/home/ubuntu" repo_core_url: "git@git.felcloud.io:felcloud/ansible_core_init_ansible.git" repo_env_url: "git@git.felcloud.io:felcloud/ansible_env_staging.git" repo_core_dir: "{{ base_dir }}/ansible_core_init_ansible" repo_env_dir: "{{ base_dir }}/ansible_env_staging" tasks: - name: Remove existing core repo ansible.builtin.file: path: "{{ repo_core_dir }}" state: absent - name: Remove existing env repo ansible.builtin.file: path: "{{ repo_env_dir }}" state: absent - name: Clone core repo via SSH ansible.builtin.git: repo: "{{ repo_core_url }}" dest: "{{ repo_core_dir }}" version: "{{ main_br }}" accept_hostkey: yes force: yes - name: Debug directory contents after core repo clone ansible.builtin.command: cmd: ls -la "{{ repo_core_dir }}" register: core_dir_after_clone - debug: var: core_dir_after_clone.stdout_lines - name: Clone env repo via SSH ansible.builtin.git: repo: "{{ repo_env_url }}" dest: "{{ repo_env_dir }}" version: "{{ env_br }}" accept_hostkey: yes force: yes - name: Debug directory contents after env repo clone ansible.builtin.command: cmd: ls -la "{{ repo_env_dir }}" register: env_dir_after_clone - debug: var: env_dir_after_clone.stdout_lines - name: Check if core repo dir exists and permissions ansible.builtin.stat: path: "{{ repo_core_dir }}" register: core_dir_stat - debug: var: core_dir_stat - name: Check if env repo dir exists and permissions ansible.builtin.stat: path: "{{ repo_env_dir }}" register: env_dir_stat - debug: var: env_dir_stat - name: List contents of core repo directory ansible.builtin.command: cmd: ls -la "{{ repo_core_dir }}" register: repo_core_ls - debug: var: repo_core_ls.stdout_lines - name: List contents of env repo directory ansible.builtin.command: cmd: ls -la "{{ repo_env_dir }}" register: repo_env_ls - debug: var: repo_env_ls.stdout_lines - name: List repo core directory tree (recursive) ansible.builtin.command: cmd: find "{{ repo_core_dir }}" register: repo_core_tree failed_when: false changed_when: false - debug: var: repo_core_tree.stdout_lines - name: List repo env directory tree (recursive) ansible.builtin.command: cmd: find "{{ repo_env_dir }}" register: repo_env_tree failed_when: false changed_when: false - debug: var: repo_env_tree.stdout_lines - name: Inject SSH private key into custom_files/id_rsa ansible.builtin.copy: content: "{{ ssh_private_key }}" dest: "{{ repo_core_dir }}/custom_files/id_rsa" mode: '0600' - name: Build the Docker image from core repo community.docker.docker_image: name: ansible-pulumi tag: local source: build build: path: "{{ repo_core_dir }}" args: branch: "{{ main_br }}" nocache: true - name: Run the admin container community.docker.docker_container: name: admin-ansible-run image: ansible-pulumi:local command: bash tty: true interactive: true auto_remove: true volumes: - "{{ repo_env_dir }}:/home/cloud/ansible_env_staging"