ublue-forge/setup/ansible/main.yml

81 lines
2.4 KiB
YAML
Raw Normal View History

2023-05-01 19:17:56 +03:00
---
- name: Build dynamic inventory for setup
hosts: localhost
gather_facts: true
become: true
pre_tasks:
- name: Read getent hosts database
ansible.builtin.getent:
database: hosts
key: host.containers.internal
- name: Get IP address of container host system
ansible.builtin.set_fact:
container_host_ip: "{{ ansible_facts.getent_hosts | first }}"
tasks:
- name: Add host system to inventory
ansible.builtin.add_host:
name: host.ublue.local
groups:
- forge
ansible_host: "{{ container_host_ip }}"
2023-05-06 00:23:16 +03:00
ansible_user: "{{ lookup('ansible.builtin.env', 'ANSIBLE_FORGE_HOST_USER') }}"
ansible_become_password: "{{ lookup('ansible.builtin.env', 'ANSIBLE_FORGE_HOST_BECOME_PASSWORD') }}"
2023-05-01 19:17:56 +03:00
- name: Add Ansible Semaphore to inventory
ansible.builtin.add_host:
name: forge.ublue.local
groups:
- semaphore
ansible_host: "{{ container_host_ip }}"
ansible_connection: local
ansible_python_interpreter: "{{ ansible_playbook_python }}"
2023-05-06 00:23:16 +03:00
- name: Configure host system
hosts: forge
gather_facts: true
tasks:
- name: Add ublue.local entries to /etc/hosts
ansible.builtin.lineinfile:
path: /etc/hosts
search_string: 127.0.0.1 registry.ublue.local forge.ublue.local
line: 127.0.0.1 registry.ublue.local forge.ublue.local
state: present
become: true
- name: Add ublue.local TSL root certificate to trust anchors
ansible.builtin.copy:
src: /certs/tls/ublue-os_forge-root.pem
dest: /etc/pki/ca-trust/source/anchors/ublue-os_forge-root.pem
force: true
mode: "0644"
become: true
- name: Update ca-trust store
ansible.builtin.command:
cmd: update-ca-trust
changed_when: false
become: true
2023-05-01 19:17:56 +03:00
- name: Configure Ansible Semaphore
hosts: semaphore
gather_facts: false
become: false
pre_tasks:
- name: Check if API is responding
ansible.builtin.uri:
## We must bypass the reverse proxy in this case since we can't add to etc/hosts in a container
url: "http://{{ ansible_host }}:3000"
method: GET
validate_certs: false
register: result_check_api
until: result_check_api.status == 200
retries: 5
delay: 10
tasks:
- name: Initial configuration
ansible.builtin.include_role:
name: semaphore