147 lines
3.8 KiB
YAML
147 lines
3.8 KiB
YAML
---
|
|
- name: Prepare
|
|
hosts: localhost
|
|
connection: local
|
|
pre_tasks:
|
|
|
|
- name: "Create MySQL Container"
|
|
docker_container:
|
|
name: mysql-host
|
|
image: mysql:8.0
|
|
state: started
|
|
recreate: true
|
|
networks:
|
|
- name: zabbix
|
|
env:
|
|
MYSQL_ROOT_PASSWORD: changeme
|
|
no_log: true
|
|
with_items: "{{ molecule_yml.platforms }}"
|
|
when:
|
|
- '"mysql" in item.groups'
|
|
|
|
- name: "Create postgresql Container"
|
|
docker_container:
|
|
name: postgresql-host
|
|
image: postgres:13
|
|
state: started
|
|
recreate: true
|
|
networks:
|
|
- name: zabbix
|
|
env:
|
|
POSTGRES_PASSWORD: changeme
|
|
no_log: true
|
|
with_items: "{{ molecule_yml.platforms }}"
|
|
when:
|
|
- '"postgresql" in item.groups'
|
|
|
|
- name: Prepare
|
|
hosts: all
|
|
pre_tasks:
|
|
|
|
- name: "Create group for imaginary host"
|
|
add_host:
|
|
name: imaginary-host
|
|
groups:
|
|
- mysql
|
|
- postgresql
|
|
changed_when: false
|
|
|
|
- name: "Installing packages on CentOS"
|
|
yum:
|
|
name:
|
|
- net-tools
|
|
- which
|
|
- curl
|
|
- sudo
|
|
- "{{ 'python3-libselinux' if ansible_distribution_major_version == '8' else 'libselinux-python' }}"
|
|
- "{{ 'python3-pip' if ansible_distribution_major_version == '8' else 'python-pip' }}"
|
|
state: present
|
|
register: installation_dependencies
|
|
until: installation_dependencies is succeeded
|
|
when:
|
|
- ansible_os_family == 'RedHat'
|
|
|
|
- name: "Installing packages (CentOS7)"
|
|
yum:
|
|
name:
|
|
- centos-release-scl
|
|
state: present
|
|
register: installation_dependencies
|
|
when:
|
|
- ansible_os_family == 'RedHat'
|
|
- ansible_distribution_major_version == '7'
|
|
|
|
- name: "Installing packages on CentOS"
|
|
yum:
|
|
name:
|
|
- mysql
|
|
state: present
|
|
register: installation_dependencies
|
|
until: installation_dependencies is succeeded
|
|
when:
|
|
- ansible_os_family == 'RedHat'
|
|
- inventory_hostname in groups['mysql']
|
|
|
|
- name: "Installing packages on NON-CentOS"
|
|
apt:
|
|
name:
|
|
- net-tools
|
|
- curl
|
|
- apt-utils
|
|
- apt-transport-https
|
|
- ca-certificates
|
|
- python-apt
|
|
- gnupg2
|
|
- "{{ 'python3-pip' if ansible_distribution == 'Ubuntu' else 'python-pip' }}"
|
|
- "{{ 'gnupg-agent' if ansible_distribution_major_version in ['7', '8'] else 'gpg-agent' }}"
|
|
- sudo
|
|
- vim
|
|
update_cache: true
|
|
state: present
|
|
register: installation_dependencies
|
|
until: installation_dependencies is succeeded
|
|
when:
|
|
- ansible_os_family != 'RedHat'
|
|
|
|
- name: "Configure SUDO."
|
|
lineinfile:
|
|
dest: /etc/sudoers
|
|
line: "Defaults !requiretty"
|
|
state: present
|
|
|
|
- name: "Make sure the docs are installed."
|
|
lineinfile:
|
|
dest: /etc/yum.conf
|
|
line: "tsflags=nodocs"
|
|
state: absent
|
|
when:
|
|
- ansible_os_family == 'RedHat'
|
|
|
|
- name: PyMySQL
|
|
pip:
|
|
name: PyMySQL
|
|
register: installation_dependencies
|
|
until: installation_dependencies is succeeded
|
|
when:
|
|
- inventory_hostname in groups['mysql']
|
|
|
|
roles:
|
|
- role: geerlingguy.apache
|
|
when:
|
|
- zabbix_websrv == "apache"
|
|
- role: geerlingguy.nginx
|
|
when:
|
|
- zabbix_websrv == "nginx"
|
|
- role: wdijkerman.php
|
|
when:
|
|
- ansible_os_family != 'RedHat' or (ansible_os_family == 'RedHat' and ansible_distribution_major_version == "8")
|
|
- role: zabbix_server
|
|
|
|
post_tasks:
|
|
- name: "Remove file"
|
|
file:
|
|
path: '{{ item }}'
|
|
state: absent
|
|
with_items:
|
|
- /var/www/html/index.html
|