summaryrefslogtreecommitdiffstats
path: root/ansible_collections/community/zabbix/roles/zabbix_server/tasks/RedHat.yml
blob: fefd7e86c4b4c685dcbce6a87471d44bd363d139 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
# Tasks specific for RedHat systems

- name: "RedHat | Set short version name"
  ansible.builtin.set_fact:
    zabbix_short_version: "{{ zabbix_server_version | regex_replace('\\.', '') }}"
  tags:
    - always

- name: "RedHat | Use Zabbix package name"
  ansible.builtin.set_fact:
    zabbix_server_package: "zabbix-server-{{ zabbix_server_database }}"
  tags:
    - always

- name: "RedHat | Set facts for Zabbix"
  ansible.builtin.set_fact:
    datafiles_path: "/usr/share/zabbix-sql-scripts/{{ 'postgresql' if zabbix_server_database == 'pgsql' else 'mysql' }}"
  tags:
    - always

- name: "RedHat | Make sure old file is absent"
  ansible.builtin.file:
    path: /etc/yum.repos.d/zabbix-supported.repo
    state: absent
  become: true
  tags:
    - install

- name: "RedHat | Install basic repo file"
  ansible.builtin.yum_repository:
    name: "{{ item.name }}"
    description: "{{ item.description }}"
    baseurl: "{{ item.baseurl }}"
    gpgcheck: "{{ item.gpgcheck }}"
    gpgkey: "{{ item.gpgkey }}"
    mode: "{{ item.mode | default('0644') }}"
    priority: "{{ item.priority | default('99') }}"
    state: "{{ item.state | default('present') }}"
    proxy: "{{ zabbix_http_proxy | default(omit) }}"
  with_items: "{{ zabbix_repo_yum }}"
  register: yum_repo_installed
  become: true
  notify:
    - "clean repo files from proxy creds"
  tags:
    - install

- name: "RedHat | Installing zabbix-server-{{ zabbix_server_database }}"
  ansible.builtin.package:
    pkg: "{{ zabbix_server_package }}-{{ zabbix_server_version }}.{{ zabbix_server_version_minor }}"
    state: "{{ zabbix_server_package_state }}"
    disablerepo: "{{ zabbix_server_disable_repo | default(omit) }}"
  environment:
    http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
    https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
  register: zabbix_server_package_installed
  until: zabbix_server_package_installed is succeeded
  become: true
  tags:
    - install

- name: "RedHat | Installing zabbix-sql-scripts"
  ansible.builtin.package:
    pkg: "zabbix-sql-scripts-{{ zabbix_server_version }}.{{ zabbix_server_version_minor }}"
    state: "{{ zabbix_server_package_state }}"
    disablerepo: "{{ zabbix_server_disable_repo | default(omit) }}"
  environment:
    http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
    https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
  register: zabbix_server_sql_package_installed
  until: zabbix_server_sql_package_installed is succeeded
  when:
    - zabbix_server_version is version('6.0', '>=')
  become: true
  tags:
    - install

- name: "RedHat | Install Ansible module dependencies"
  ansible.builtin.yum:
    name: "{{ pgsql_depenencies[ansible_distribution_major_version] }}"
    state: present
  environment:
    http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
    https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
  register: zabbix_server_dependencies_installed
  until: zabbix_server_dependencies_installed is succeeded
  become: true
  when:
    - zabbix_server_database_creation
    - zabbix_server_database == 'pgsql'
  tags:
    - install
    - dependencies

- name: RedHat | Install Database Client Package
  block:
    - name: "RedHat | Install Mysql Client packages"
      ansible.builtin.yum:
        name: "{{ mysql_client_pkgs[ansible_distribution_major_version] }}"
        state: present
      environment:
        http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
        https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
      register: zabbix_server_dependencies_installed
      until: zabbix_server_dependencies_installed is succeeded
      become: true
      when:
        - zabbix_server_database == 'mysql'

    - name: "RedHat | Install PostgreSQL client package"
      ansible.builtin.yum:
        name: postgresql
        state: present
      environment:
        http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
        https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
      register: zabbix_server_dependencies_installed
      until: zabbix_server_dependencies_installed is succeeded
      become: true
      when:
        - zabbix_server_database == 'pgsql'
  when: zabbix_server_install_database_client
  tags:
    - install
    - dependencies
    - database

- name: "RedHat | Configure SELinux when enabled"
  ansible.builtin.include_tasks: selinux.yml
  when:
    - zabbix_server_selinux | bool