2024-07-30 20:20:04 -04:00
|
|
|
---
|
|
|
|
- name: Deploy application
|
|
|
|
hosts: "{{ target_host }}"
|
|
|
|
vars:
|
2024-07-30 20:33:00 -04:00
|
|
|
repo_path: "/home/{{ ansible_user }}/iac/docker/{{ folder }}"
|
2024-12-31 22:15:04 -05:00
|
|
|
secrets_mapping_file: "/home/{{ ansible_user }}/iac/secret-mappings.yml"
|
2024-07-30 20:20:04 -04:00
|
|
|
tasks:
|
2024-12-31 22:01:38 -05:00
|
|
|
- name: Read secret mapping
|
|
|
|
ansible.builtin.slurp:
|
|
|
|
src: "{{ secrets_mapping_file }}"
|
|
|
|
register: secret_mapping_content
|
|
|
|
|
|
|
|
- name: Parse secret mapping
|
|
|
|
ansible.builtin.set_fact:
|
|
|
|
secret_mapping: "{{ secret_mapping_content['content'] | b64decode | from_yaml }}"
|
|
|
|
|
2024-12-31 22:29:53 -05:00
|
|
|
- name: Write .env file to target host
|
|
|
|
ansible.builtin.copy:
|
2024-12-31 22:22:40 -05:00
|
|
|
dest: "{{ repo_path }}/.env"
|
2024-12-31 22:29:53 -05:00
|
|
|
content: |
|
|
|
|
{% for key, secret_id in env_variables.items() %}
|
|
|
|
{{ key }}={{ lookup('community.general.bws', secret_id, base_url='https://vault.bitwarden.com', access_token=bw_access_token) }}
|
|
|
|
{% endfor %}
|
|
|
|
|
2024-12-31 22:22:40 -05:00
|
|
|
|
|
|
|
- name: Verify .env file content
|
|
|
|
ansible.builtin.shell: cat "{{ repo_path }}/.env"
|
2024-12-31 22:01:38 -05:00
|
|
|
register: env_file_content
|
|
|
|
|
2024-12-31 22:22:40 -05:00
|
|
|
- name: Display .env content
|
|
|
|
ansible.builtin.debug:
|
|
|
|
var: env_file_content.stdout_lines
|
2024-12-31 22:01:38 -05:00
|
|
|
|
2024-07-30 20:20:04 -04:00
|
|
|
- name: Ensure the repository is up-to-date
|
2024-12-19 21:44:47 -05:00
|
|
|
ansible.builtin.shell: git pull
|
2024-07-30 20:20:04 -04:00
|
|
|
args:
|
|
|
|
chdir: "{{ repo_path }}"
|
|
|
|
register: git_pull_output
|
|
|
|
|
|
|
|
- name: Display git pull output
|
2024-12-19 21:44:47 -05:00
|
|
|
ansible.builtin.debug:
|
2024-07-30 20:20:04 -04:00
|
|
|
var: git_pull_output.stdout_lines
|
|
|
|
|
2024-12-19 21:44:47 -05:00
|
|
|
- name: Restart services using Docker Compose
|
|
|
|
community.docker.docker_compose_v2:
|
|
|
|
project_src: "{{ repo_path }}"
|
|
|
|
state: present
|
|
|
|
remove_orphans: true
|
2024-07-30 20:20:04 -04:00
|
|
|
|
2024-12-31 22:01:38 -05:00
|
|
|
- name: Run Docker Command
|
2024-12-20 01:34:07 -05:00
|
|
|
command: docker compose ps
|
|
|
|
args:
|
|
|
|
chdir: "{{ repo_path }}"
|
2024-12-31 22:01:38 -05:00
|
|
|
register: docker_output
|
2024-12-20 01:20:15 -05:00
|
|
|
|
2024-12-31 22:01:38 -05:00
|
|
|
- name: Display Docker Output
|
|
|
|
debug:
|
|
|
|
var: docker_output.stdout_lines
|