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_proxy / tasks / postgresql.yml
Size: Mime:
---
# task file for postgresql

- name: "Set the correct delegated_dbhost (to support postgres db deployment on a remote dbhost)"
  set_fact:
    delegated_dbhost: "{{ zabbix_proxy_dbhost if (zabbix_proxy_dbhost != 'localhost') else inventory_hostname }}"
  when:
    - zabbix_proxy_dbhost_run_install

- name: "Set the correct delegated_dbhost (to support postgres db deployment on a remote dbhost)"
  set_fact:
    delegated_dbhost: "{{ inventory_hostname }}"
  when:
    - not zabbix_proxy_dbhost_run_install

- name: "PostgreSQL | Delegated"
  block:
    - name: "PostgreSQL | Delegated | Create database"
      community.postgresql.postgresql_db:
        name: "{{ zabbix_proxy_dbname }}"
        port: "{{ zabbix_proxy_dbport }}"
        state: present
    - name: "PostgreSQL | Delegated | Create database user"
      postgresql_user:
        db: "{{ zabbix_proxy_dbname }}"
        name: "{{ zabbix_proxy_dbuser }}"
        password: "md5{{ (zabbix_proxy_dbpassword + zabbix_proxy_dbuser)|hash('md5') }}"
        port: "{{ zabbix_proxy_dbport }}"
        priv: ALL
        state: present
        encrypted: true
  become: true
  become_user: postgres
  delegate_to: "{{ delegated_dbhost }}"
  when:
    - zabbix_database_creation
    - zabbix_proxy_pgsql_login_host is not defined
  tags:
    - zabbix-server
    - database

- name: "PostgreSQL | Remote"
  block:
    - name: "PostgreSQL | Remote | Create database"
      community.postgresql.postgresql_db:
        login_host: "{{ zabbix_proxy_pgsql_login_host | default(omit) }}"
        login_user: "{{ zabbix_proxy_pgsql_login_user | default(omit) }}"
        login_password: "{{ zabbix_proxy_pgsql_login_password | default(omit) }}"
        login_unix_socket: "{{ zabbix_proxy_pgsql_login_unix_socket | default(omit) }}"
        name: "{{ zabbix_proxy_dbname }}"
        port: "{{ zabbix_proxy_dbport }}"
        state: present
    - name: "PostgreSQL | Remote | Create database user"
      postgresql_user:
        login_host: "{{ zabbix_proxy_pgsql_login_host | default(omit) }}"
        login_user: "{{ zabbix_proxy_pgsql_login_user | default(omit) }}"
        login_password: "{{ zabbix_proxy_pgsql_login_password | default(omit) }}"
        db: "{{ zabbix_proxy_dbname }}"
        name: "{{ zabbix_proxy_dbuser }}"
        password: "md5{{ (zabbix_proxy_dbpassword + zabbix_proxy_dbuser)|hash('md5') }}"
        port: "{{ zabbix_proxy_dbport }}"
        priv: ALL
        state: present
        encrypted: true
  when:
    - zabbix_database_creation
    - zabbix_proxy_pgsql_login_host is defined
  tags:
    - zabbix-server
    - database

- name: "PostgreSQL | Importing schema file"
  shell: |
    set -euxo pipefail
    FILE={{ 'schema.sql' if zabbix_version is version('6.0', '<') else 'proxy.sql' }}
    cd {{ datafiles_path }}
    if [ -f ${FILE}.gz ]
      then zcat ${FILE}.gz > /tmp/schema.sql
    else
      cp ${FILE} /tmp/schema.sql
    fi
    cat /tmp/schema.sql | psql -h '{{ zabbix_proxy_dbhost }}' -U '{{ zabbix_proxy_dbuser }}' \
    -d '{{ zabbix_proxy_dbname }}'
    touch /etc/zabbix/schema.done
    rm -f /tmp/schema.sql
  args:
    creates: /etc/zabbix/schema.done
    executable: /bin/bash
  environment:
    PGPASSWORD: '{{ zabbix_proxy_dbpassword }}'
  when:
    - zabbix_database_creation