containerAdmin/containerAdmin.yml
2025-06-02 16:09:06 +00:00

86 lines
2.6 KiB
YAML

- name: Ensure SSH key is present on remote host
hosts: docker_host
gather_facts: false
tasks:
- name: Write SSH private key to /tmp/deploy_key on remote host
ansible.builtin.copy:
content: "{{ lookup('env', 'SSH_PRIVATE_KEY') }}"
dest: "/tmp/deploy_key"
mode: '0600'
- name: Clone repos and run container
hosts: docker_host
remote_user: ubuntu
become: yes
become_method: sudo
become_user: root
vars:
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') }}"
base_dir: "/home/ubuntu"
deploy_key_path: "/tmp/deploy_key"
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 }}"
force: yes
environment:
GIT_SSH_COMMAND: "ssh -i {{ deploy_key_path }} -o StrictHostKeyChecking=no -o BatchMode=yes"
- name: Clone env repo via SSH
ansible.builtin.git:
repo: "{{ repo_env_url }}"
dest: "{{ repo_env_dir }}"
version: "{{ env_br }}"
force: yes
environment:
GIT_SSH_COMMAND: "ssh -i {{ deploy_key_path }} -o StrictHostKeyChecking=no -o BatchMode=yes"
- name: Inject SSH private key into core repo for container use
ansible.builtin.copy:
src: "{{ deploy_key_path }}"
dest: "{{ repo_core_dir }}/custom_files/id_rsa"
remote_src: yes
mode: '0600'
- name: Build the Docker image
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"