Ajout proxy postgresql
This commit is contained in:
7
tasks/Debian/instal-web.yml
Normal file
7
tasks/Debian/instal-web.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
- name: Web - Install packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ web.packages }}"
|
||||
tags:
|
||||
- install_web
|
||||
@@ -1,37 +1,82 @@
|
||||
- name: Proxy - Install Debian Proxy packages
|
||||
- name: Proxy - Install packages (mysql)
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ proxy.packages }}"
|
||||
tags:
|
||||
- install_proxy
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
|
||||
- name: Proxy - Enable and start service mariadb
|
||||
ansible.builtin.service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
||||
loop: "{{ proxy_mysql.packages }}"
|
||||
when:
|
||||
- ansible_os_family == "Debian"
|
||||
- proxy_db_type == "mysql"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Generate mariadb proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db.j2
|
||||
dest: /tmp/create_proxy_db.sql
|
||||
- name: Proxy - Install packages (postgresql)
|
||||
ansible.builtin.apt:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
loop: "{{ proxy_postgresql.packages }}"
|
||||
when:
|
||||
- ansible_os_family == "Debian"
|
||||
- proxy_db_type == "postgresql"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Create mariadb proxy database
|
||||
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
||||
- name: Proxy - Setup mysql proxy database
|
||||
when: proxy_db_type == "mysql"
|
||||
tags:
|
||||
- install_proxy
|
||||
- install_proxy
|
||||
block:
|
||||
- name: Proxy - Enable and start service mariadb
|
||||
ansible.builtin.service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Proxy - Populate mariadb proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
||||
- name: Proxy - Generate mariadb proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db.j2
|
||||
dest: /tmp/create_proxy_db.sql
|
||||
|
||||
- name: Proxy - Create mariadb proxy database
|
||||
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
||||
|
||||
- name: Proxy - Populate mariadb proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
||||
|
||||
- name: Proxy - Setup postgresql proxy database
|
||||
when: proxy_db_type == "postgresql"
|
||||
tags:
|
||||
- install_proxy
|
||||
- install_proxy
|
||||
block:
|
||||
- name: Proxy - Enable and start service postgresql
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Proxy - Generate postgresql proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db_pg.j2
|
||||
dest: /tmp/create_proxy_db_pg.sql
|
||||
owner: postgres
|
||||
|
||||
- name: Proxy - Create postgresql proxy database
|
||||
ansible.builtin.shell: su - postgres -c 'psql -f /tmp/create_proxy_db_pg.sql'
|
||||
|
||||
- name: Proxy - Add proxy user to pg_hba
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/postgresql/{{ postgresql_version }}/main/pg_hba.conf
|
||||
insertafter: '# Database administrative login by Unix domain socket'
|
||||
line: "local {{ proxy_db_name }} {{ proxy_db_user }} trust"
|
||||
firstmatch: yes
|
||||
state: present
|
||||
|
||||
- name: Proxy - Restart postgresql
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: restarted
|
||||
|
||||
- name: Proxy - Populate postgresql proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/postgresql/proxy.sql | psql -U{{ proxy_db_user }} {{ proxy_db_name }}'
|
||||
|
||||
- name: Find Group
|
||||
set_fact:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
- name: Agent2 - Install packages
|
||||
ansible.builtin.apt:
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
state: present
|
||||
loop: "{{ agent.packages }}"
|
||||
tags:
|
||||
- install_agent
|
||||
@@ -10,7 +10,8 @@
|
||||
- name: Agent2 - Find Group
|
||||
set_fact:
|
||||
my_group: "{{ group_names | first }}"
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Créer la liste des hôtes correspondant aux rôles cibles
|
||||
set_fact:
|
||||
hotes_filtres: >-
|
||||
@@ -19,15 +20,18 @@
|
||||
selectattr('role', 'in', roles_cibles) |
|
||||
map(attribute='inventory_hostname') |
|
||||
list }}
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Generate Server List
|
||||
set_fact:
|
||||
Server: "{{ hotes_filtres | join(',') }}"
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Generate ActiveServer List
|
||||
set_fact:
|
||||
ServerActive: "{{ hotes_filtres | join(';') }}"
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Generate agent2 config
|
||||
ansible.builtin.template:
|
||||
src: zabbix_agent2.conf.j2
|
||||
@@ -35,7 +39,8 @@
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
mode: 0640
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Create cert directory if zabbix_crypt=="tls"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/zabbix/certs"
|
||||
@@ -44,7 +49,8 @@
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
when: zabbix_crypt=="tls"
|
||||
|
||||
tags:
|
||||
- install_agent
|
||||
- name: Agent2 - Copy Certificats
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
@@ -56,6 +62,8 @@
|
||||
- "{{ zabbix_agent }}.crt"
|
||||
- "{{ zabbix_agent }}.key"
|
||||
when: zabbix_crypt=="tls"
|
||||
tags:
|
||||
- install_agent
|
||||
|
||||
- name: Enable and start service zabbix agent2
|
||||
ansible.builtin.service:
|
||||
@@ -64,3 +72,5 @@
|
||||
enabled: true
|
||||
loop:
|
||||
- zabbix-agent2
|
||||
tags:
|
||||
- install_agent
|
||||
@@ -1,43 +1,89 @@
|
||||
- name: Proxy - Install Debian Proxy packages
|
||||
- name: Proxy - Install packages (mysql)
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
loop: "{{ proxy.packages }}"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Enable and start service mariadb
|
||||
ansible.builtin.service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
||||
loop: "{{ proxy_mysql.packages }}"
|
||||
when: proxy_db_type == "mysql"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Generate mariadb proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db.j2
|
||||
dest: /tmp/create_proxy_db.sql
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Create mariadb proxy database
|
||||
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Populate mariadb proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Enable and restart mariadb
|
||||
ansible.builtin.systemd_service:
|
||||
- name: Proxy - Install packages (postgresql)
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
enabled: true
|
||||
loop:
|
||||
- mariadb
|
||||
state: present
|
||||
loop: "{{ proxy_postgresql.packages }}"
|
||||
when: proxy_db_type == "postgresql"
|
||||
tags:
|
||||
- install_proxy
|
||||
|
||||
- name: Proxy - Setup mysql proxy database
|
||||
when: proxy_db_type == "mysql"
|
||||
tags:
|
||||
- install_proxy
|
||||
block:
|
||||
- name: Proxy - Enable and start service mariadb
|
||||
ansible.builtin.service:
|
||||
name: mariadb
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Proxy - Generate mariadb proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db.j2
|
||||
dest: /tmp/create_proxy_db.sql
|
||||
|
||||
- name: Proxy - Create mariadb proxy database
|
||||
ansible.builtin.shell: mysql -uroot < /tmp/create_proxy_db.sql
|
||||
|
||||
- name: Proxy - Populate mariadb proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -u{{proxy_db_user}} --password={{proxy_db_passwd}} {{proxy_db_name}}'
|
||||
|
||||
- name: Proxy - Setup postgresql proxy database
|
||||
when: proxy_db_type == "postgresql"
|
||||
tags:
|
||||
- install_proxy
|
||||
block:
|
||||
- name: Proxy - Check if postgresql is configured
|
||||
ansible.builtin.stat:
|
||||
path: /var/lib/pgsql/data/PG_VERSION
|
||||
register: proxy_postgresqldata
|
||||
|
||||
- name: Proxy - Init DB
|
||||
ansible.builtin.shell:
|
||||
cmd: postgresql-setup --initdb
|
||||
when: proxy_postgresqldata.stat.exists == false
|
||||
|
||||
- name: Proxy - Enable and start service postgresql
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Proxy - Generate postgresql proxy creation script
|
||||
ansible.builtin.template:
|
||||
src: create_proxy_db_pg.j2
|
||||
dest: /tmp/create_proxy_db_pg.sql
|
||||
owner: postgres
|
||||
|
||||
- name: Proxy - Create postgresql proxy database
|
||||
ansible.builtin.shell: su - postgres -c 'psql -f /tmp/create_proxy_db_pg.sql'
|
||||
|
||||
- name: Proxy - Add proxy user to pg_hba
|
||||
ansible.builtin.lineinfile:
|
||||
path: /var/lib/pgsql/data/pg_hba.conf
|
||||
insertafter: '# "local" is for Unix domain socket connections only'
|
||||
line: "local {{ proxy_db_name }} {{ proxy_db_user }} trust"
|
||||
firstmatch: yes
|
||||
state: present
|
||||
|
||||
- name: Proxy - Restart postgresql
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: restarted
|
||||
enabled: yes
|
||||
|
||||
- name: Proxy - Populate postgresql proxy database
|
||||
ansible.builtin.shell: 'cat /usr/share/zabbix/sql-scripts/postgresql/proxy.sql | psql -U{{ proxy_db_user }} {{ proxy_db_name }}'
|
||||
|
||||
- name: Find Group
|
||||
set_fact:
|
||||
|
||||
76
tasks/RedHat/install-web.yml
Normal file
76
tasks/RedHat/install-web.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
# Web
|
||||
- name: Web - Install packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
loop: "{{ web.packages }}"
|
||||
tags:
|
||||
- install_web
|
||||
|
||||
- name: Web - Find Group
|
||||
set_fact:
|
||||
my_group: "{{ group_names | first }}"
|
||||
tags:
|
||||
- install_web
|
||||
- name: Web - Créer la liste des hôtes correspondant aux rôles cibles
|
||||
set_fact:
|
||||
hotes_filtres: >-
|
||||
{{ groups[my_group] |
|
||||
map('extract', hostvars) |
|
||||
selectattr('role', 'in', roles_cibles) |
|
||||
map(attribute='inventory_hostname') |
|
||||
list }}
|
||||
tags:
|
||||
- install_web
|
||||
- name: Web - Generate Server List
|
||||
set_fact:
|
||||
Server: "{{ hotes_filtres | join(',') }}"
|
||||
tags:
|
||||
- install_web
|
||||
- name: Web - Generate config
|
||||
ansible.builtin.template:
|
||||
src: zabbix_web_service.conf.j2
|
||||
dest: /etc/zabbix/zabbix_web_service.conf
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
mode: 0640
|
||||
tags:
|
||||
- install_web
|
||||
|
||||
- name: Web - Create cert directory if zabbix_crypt=="tls"
|
||||
ansible.builtin.file:
|
||||
path: "/etc/zabbix/certs"
|
||||
state: directory
|
||||
recurse: yes
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
when: zabbix_crypt=="tls"
|
||||
tags:
|
||||
- install_web
|
||||
|
||||
- name: Web - Copy Certificats
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "/etc/zabbix/certs/{{ item }}"
|
||||
owner: zabbix
|
||||
group: zabbix
|
||||
loop:
|
||||
- "{{ zabbix_ca }}.crt"
|
||||
- "{{ zabbix_web }}.crt"
|
||||
- "{{ zabbix_web }}.key"
|
||||
- "{{ zabbix_agent }}.crt"
|
||||
- "{{ zabbix_agent }}.key"
|
||||
when: zabbix_crypt=="tls"
|
||||
tags:
|
||||
- install_web
|
||||
|
||||
- name: Web -Enable and start service zabbix web
|
||||
ansible.builtin.service:
|
||||
name: "{{ item }}"
|
||||
state: restarted
|
||||
enabled: true
|
||||
loop:
|
||||
- zabbix-web-service
|
||||
- zabbix-agent2
|
||||
tags:
|
||||
- install_web
|
||||
@@ -2,7 +2,7 @@
|
||||
# tasks file for zabbix
|
||||
- name: check OS version
|
||||
debug: var=ansible_os_family
|
||||
|
||||
tags: always
|
||||
- name: include os variables
|
||||
include_vars: "{{ ansible_os_family }}.yml"
|
||||
tags: always
|
||||
@@ -27,6 +27,7 @@
|
||||
ansible.builtin.dnf:
|
||||
name: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/release/alma/{{ ansible_distribution_major_version }}/noarch/zabbix-release-latest-{{ zabbix_version }}.el{{ ansible_distribution_major_version }}.noarch.rpm"
|
||||
state: present
|
||||
tags: always
|
||||
|
||||
- name: Prepare RH like
|
||||
when: ansible_os_family == "RedHat"
|
||||
@@ -50,6 +51,7 @@
|
||||
- name: Reboot if necessary
|
||||
ansible.builtin.reboot:
|
||||
when: selinux.changed
|
||||
tags: always
|
||||
|
||||
- name: Prepare Debian
|
||||
when: ansible_os_family == "Debian"
|
||||
@@ -60,7 +62,8 @@
|
||||
- name: Mise à jour le cache des paquets
|
||||
ansible.builtin.apt:
|
||||
update_cache: yes
|
||||
|
||||
tags: always
|
||||
|
||||
- name: Database - Install
|
||||
when: role == "db"
|
||||
block:
|
||||
@@ -90,6 +93,12 @@
|
||||
tags:
|
||||
- install_front
|
||||
|
||||
- name: Web - Install
|
||||
ansible.builtin.include_tasks: "{{ansible_os_family}}/install-web.yml"
|
||||
when: role == "web"
|
||||
tags:
|
||||
- install_web
|
||||
|
||||
- name: Install Agent
|
||||
ansible.builtin.include_tasks: "{{ansible_os_family}}/install-agent2.yml"
|
||||
tags:
|
||||
|
||||
Reference in New Issue
Block a user