You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
5.5 KiB
YAML
166 lines
5.5 KiB
YAML
---
|
|
|
|
- name: 'apply setup to {{ host | default("all") }}'
|
|
hosts: '{{ host | default("all") }}'
|
|
serial: "{{ serial_number | default(10) }}"
|
|
strategy: free
|
|
vars:
|
|
ansible_ssh_host: "{{ stage_server_domain }}"
|
|
hetzner_ansible_common_current_version: "{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+hetzner-ansible-common\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"
|
|
hetzner_ansible_node_exporter_current_version: "{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+hetzner-ansible-node-exporter\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"
|
|
hetzner_ansible_filebeat_current_version: "{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+hetzner-ansible-filebeat\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"
|
|
hetzner_ansible_metricbeat_current_version: "{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+hetzner-ansible-metricbeat\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"
|
|
hetzner_ansible_traefik_current_version: "{{ lookup('file', 'galaxy-requirements.yml') | regex_search('- name:\\s+hetzner-ansible-traefik\\s+src:\\s+.*?\\s+scm:\\s+git\\s+version:\\s+(.*)', '\\1') }}"
|
|
remote_user: root
|
|
become: yes
|
|
|
|
pre_tasks:
|
|
- name: "Check if ansible version is at least {{ ansible_minimal_version }}"
|
|
assert:
|
|
that:
|
|
- ansible_version.string is version(ansible_minimal_version, ">=")
|
|
msg: "The ansible version has to be at least {{ ansible_minimal_version }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: "get hetzner-ansible-common version"
|
|
include_role:
|
|
name: hetzner-ansible-common
|
|
tasks_from: _get_version.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: "Check if hetzner-ansible-common version matches"
|
|
assert:
|
|
that:
|
|
- "'{{ hetzner_ansible_common_version }}' in {{ hetzner_ansible_common_current_version }}"
|
|
msg: "The current hetzner-ansible-common version has to be {{ hetzner_ansible_common_current_version }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: "get hetzner-ansible-node-exporter version"
|
|
include_role:
|
|
name: hetzner-ansible-node-exporter
|
|
tasks_from: _get_version.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: "Check if hetzner-ansible-node-exporter version matches"
|
|
assert:
|
|
that:
|
|
- "'{{ hetzner_ansible_node_exporter_version }}' in {{ hetzner_ansible_node_exporter_current_version }}"
|
|
msg: "The current hetzner-ansible-node_exporter version has to be {{ hetzner_ansible_node_exporter_current_version }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: "get hetzner-ansible-filebeat version"
|
|
include_role:
|
|
name: hetzner-ansible-filebeat
|
|
tasks_from: _get_version.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: "Check if hetzner-ansible-filebeat version matches"
|
|
assert:
|
|
that:
|
|
- "'{{ hetzner_ansible_filebeat_version }}' in {{ hetzner_ansible_filebeat_current_version }}"
|
|
msg: "The current hetzner-ansible-filebeat version has to be {{ hetzner_ansible_filebeat_current_version }}"
|
|
tags:
|
|
- always
|
|
|
|
|
|
- name: "get hetzner-ansible-metricbeat version"
|
|
include_role:
|
|
name: hetzner-ansible-metricbeat
|
|
tasks_from: _get_version.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: "Check if hetzner-ansible-metricbeat version matches"
|
|
assert:
|
|
that:
|
|
- "'{{ hetzner_ansible_metricbeat_version }}' in {{ hetzner_ansible_metricbeat_current_version }}"
|
|
msg: "The current hetzner-ansible-metricbeat version has to be {{ hetzner_ansible_metricbeat_current_version }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: "get hetzner-ansible-traefik version"
|
|
include_role:
|
|
name: hetzner-ansible-traefik
|
|
tasks_from: _get_version.yml
|
|
tags:
|
|
- always
|
|
|
|
- name: "Check if hetzner-ansible-traefik version matches"
|
|
assert:
|
|
that:
|
|
- "'{{ hetzner_ansible_traefik_version }}' in {{ hetzner_ansible_traefik_current_version }}"
|
|
msg: "The current hetzner-ansible-traefik version has to be {{ hetzner_ansible_traefik_current_version }}"
|
|
tags:
|
|
- always
|
|
|
|
- name: Remove outdated dependencies
|
|
apt:
|
|
name: [
|
|
'docker',
|
|
'docker-client',
|
|
'docker-client-latest',
|
|
'docker-common',
|
|
'docker-latest',
|
|
'docker-latest-logrotate',
|
|
'docker-logrotate',
|
|
'docker-engine',
|
|
'smartmontools',
|
|
]
|
|
state: 'absent'
|
|
when: ansible_distribution == "Ubuntu"
|
|
tags:
|
|
- common
|
|
- install
|
|
|
|
- name: "Import autodiscover pre-tasks"
|
|
import_tasks: tasks/autodiscover_pre_tasks.yml
|
|
become: false
|
|
tags:
|
|
- always
|
|
|
|
roles:
|
|
- role: ansible-role-docker
|
|
when:
|
|
- docker_enabled
|
|
|
|
- role: hetzner-ansible-common
|
|
tags:
|
|
- common
|
|
|
|
- role: devsec.hardening.ssh_hardening
|
|
tags:
|
|
- ssh_hardening
|
|
|
|
- role: hetzner-ansible-node-exporter
|
|
when:
|
|
- node_exporter_enabled
|
|
tags:
|
|
- node-exporter
|
|
|
|
- role: hetzner-ansible-filebeat
|
|
when:
|
|
- docker_enabled
|
|
- filebeat_enabled
|
|
tags:
|
|
- filebeat
|
|
|
|
- role: hetzner-ansible-metricbeat
|
|
when:
|
|
- docker_enabled
|
|
- metricbeat_enabled
|
|
tags:
|
|
- metricbeat
|
|
|
|
- role: hetzner-ansible-traefik
|
|
when:
|
|
- docker_enabled
|
|
- traefik_enabled
|
|
tags:
|
|
- traefik
|