Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ansible / community / zabbix / roles / zabbix_server / tasks / Debian.yml
Size: Mime:
---

- name: "Include Zabbix gpg ids"
  include_vars: zabbix.yml

- name: "Set some variables"
  set_fact:
    zabbix_short_version: "{{ zabbix_version | regex_replace('\\.', '') }}"
    zabbix_server_apt_repository:
      - "http://repo.zabbix.com/zabbix/{{ zabbix_version }}/{{ ansible_distribution.lower() }}/"
      - "{{ ansible_distribution_release }}"
      - "main"
    zabbix_underscore_version: "{{ zabbix_version | regex_replace('\\.', '_') }}"
    zabbix_python_prefix: "python{% if ansible_python_version is version('3', '>=') %}3{% endif %}"
  when:
    - ansible_machine != "aarch64"

- name: "Set some variables"
  set_fact:
    zabbix_short_version: "{{ zabbix_version | regex_replace('\\.', '') }}"
    zabbix_server_apt_repository:
      - "http://repo.zabbix.com/zabbix/{{ zabbix_version }}/{{ ansible_distribution.lower() }}-arm64/"
      - "{{ ansible_distribution_release }}"
      - "main"
    zabbix_underscore_version: "{{ zabbix_version | regex_replace('\\.', '_') }}"
    zabbix_python_prefix: "python{% if ansible_python_version is version('3', '>=') %}3{% endif %}"
  when:
    - ansible_machine == "aarch64"


- name: "Debian | Set some facts"
  set_fact:
    datafiles_path: /usr/share/zabbix-server-{{ zabbix_server_database }}
  when:
    - zabbix_version is version('3.0', '<')
  tags:
    - zabbix-server
    - init
    - config

- name: "Debian | Set some facts for Zabbix >= 3.0 && < 5.4"
  set_fact:
    datafiles_path: /usr/share/doc/zabbix-server-{{ zabbix_server_database }}
  when:
    - zabbix_version is version('3.0', '>=')
    - zabbix_version is version('5.4', '<')
  tags:
    - zabbix-server
    - init
    - config

- name: "Debian | Set some facts for Zabbix >= 5.4"
  set_fact:
    datafiles_path: /usr/share/doc/zabbix-sql-scripts/{{ zabbix_server_database_long }}
  when:
    - zabbix_version is version('5.4', '>=')
  tags:
    - zabbix-server
    - init
    - config

- name: "Debian | Installing gnupg"
  apt:
    pkg: gnupg
    update_cache: true
    cache_valid_time: 3600
    force: true
    state: present
  environment:
    http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
    https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
  register: gnupg_installed
  until: gnupg_installed is succeeded
  become: true

- name: "Debian | Install gpg key"
  apt_key:
    id: "{{ sign_keys[zabbix_short_version][ansible_distribution_release]['sign_key'] }}"
    url: http://repo.zabbix.com/zabbix-official-repo.key
  register: zabbix_server_repo_files_installed
  until: zabbix_server_repo_files_installed is succeeded
  when:
    - zabbix_repo == "zabbix"
  become: true
  tags:
    - zabbix-server
    - init

- name: "Debian | Installing repository {{ ansible_distribution }}"
  apt_repository:
    repo: "{{ item }} {{ zabbix_server_apt_repository | join(' ') }}"
    state: present
  when: zabbix_repo == "zabbix"
  become: true
  with_items:
    - deb-src
    - deb
  tags:
    - zabbix-server
    - init

- name: "Debian | Create /etc/apt/preferences.d/"
  file:
    path: /etc/apt/preferences.d/
    state: directory
    mode: '0755'
  when:
    - zabbix_server_apt_priority | int
  become: true

- name: "Debian | Configuring the weight for APT"
  copy:
    dest: "/etc/apt/preferences.d/zabbix_server-{{ zabbix_proxy_database }}"
    content: |
      Package: zabbix_server-{{ zabbix_proxy_database }}
      Pin: origin repo.zabbix.com
      Pin-Priority: {{ zabbix_server_apt_priority }}
    owner: root
    mode: '0644'
  when:
    - zabbix_server_apt_priority | int
  become: true

- name: apt-get clean
  shell: apt-get clean; apt-get update
  args:
    warn: false
  changed_when: false
  become: true
  tags:
    - skip_ansible_lint

# On certain 18.04 images, such as docker or lxc, dpkg is configured not to
# install files into paths /usr/share/doc/*
# Since this is where Zabbix installs its database schemas, we need to allow
# files to be installed to /usr/share/doc/zabbix*
- name: Check for the dpkg exclude line
  command: grep -F 'path-exclude=/usr/share/doc/*' /etc/dpkg/dpkg.cfg.d/excludes
  register: dpkg_exclude_line
  failed_when: false
  changed_when: false
  check_mode: false

- name: Allow Zabbix dpkg installs to /usr/share/doc/zabbix*
  lineinfile:
    path: /etc/dpkg/dpkg.cfg.d/excludes
    line: 'path-include=/usr/share/doc/zabbix*'
  become: true
  when:
    - dpkg_exclude_line.rc == 0

- name: "Debian | Installing zabbix-server-{{ zabbix_server_database }}"
  apt:
    pkg: zabbix-server-{{ zabbix_server_database }}
    state: "{{ zabbix_server_package_state }}"
    update_cache: true
    cache_valid_time: 0
    install_recommends: "{{ zabbix_server_install_recommends }}"
    default_release: "{{ ansible_distribution_release }}"
  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:
    - zabbix-server
    - init

- name: "Debian | Installing zabbix-sql-scripts"
  apt:
    pkg: zabbix-sql-scripts
    state: "{{ zabbix_server_package_state }}"
    update_cache: true
    cache_valid_time: 0
    install_recommends: "{{ zabbix_server_install_recommends }}"
    default_release: "{{ ansible_distribution_release }}"
  environment:
    http_proxy: "{{ zabbix_http_proxy | default(None) | default(omit) }}"
    https_proxy: "{{ zabbix_https_proxy | default(None) | default(omit) }}"
  register: zabbix_server_package_sql_installed
  until: zabbix_server_package_sql_installed is succeeded
  when:
    - zabbix_version is version('5.4', '>=')
  become: true
  tags:
    - zabbix-server
    - init

- name: "Debian | Install Ansible module dependencies"
  apt:
    name: "{{ zabbix_python_prefix }}-psycopg2"
    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_database_creation
  tags:
    - zabbix-server
    - init

- name: "Debian | Install Mysql Client package"
  apt:
    name:
      - default-mysql-client
      - "{{ zabbix_python_prefix }}-mysqldb"
    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'
    - zabbix_server_install_database_client
    - ansible_distribution_release != "buster"
  tags:
    - zabbix-server
    - init
    - database

- name: "Debian 10 | Install Mysql Client package"
  apt:
    name:
      - mariadb-client
      - "{{ zabbix_python_prefix }}-mysqldb"
    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'
    - zabbix_server_install_database_client
    - ansible_distribution_release == "buster"
  tags:
    - zabbix-server
    - init
    - database

- name: "Debian | Install PostgreSQL Client package"
  apt:
    name: postgresql-client
    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'
    - zabbix_server_install_database_client
  tags:
    - zabbix-server
    - init
    - database