Files
Ansible/site.yml

64 lines
1.6 KiB
YAML

---
## Main DTSV Infrastructure Playbook
# Waiting for terraform provisioning
- name: Wait for provisioning
hosts: label_env_prod
gather_facts: false
tasks:
- name: Wait for instance to become reachable/usable
wait_for_connection: # host_key_checking must be disabled
- name: Gather facts
setup:
- name: Wait for cloud-init to finish
community.general.cloud_init_data_facts:
filter: status
register: res
until: "res.cloud_init_data_facts.status.v1.stage is defined and not res.cloud_init_data_facts.status.v1.stage"
retries: 50
delay: 5
# Install terraformed servers
- name: Install common packages
hosts: label_env_prod
roles:
- common
- node_exporter
become: true
- name: DB playbook
import_playbook: db.yml
- name: WEB playbook
import_playbook: web.yml
- name: Maintenance
hosts: label_env_prod
become: true
tasks:
- name: Start apt upgrade
block:
- name: Perform upgrade
apt:
name: "*"
state: latest
update_cache: true
cache_valid_time: 3600
- name: Check if a reboot is required
stat:
path: /var/run/reboot-required
register: reboot_required_file # noqa: var-naming[no-role-prefix]
- name: Reboot the server (if required)
reboot:
when: reboot_required_file.stat.exists
- name: Wait for instance to become reachable/usable
wait_for_connection: # host_key_checking must be disabled
- name: Remove dependencies that are no longer required.
apt:
autoremove: true