64 lines
1.6 KiB
YAML
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
|