Установка OTRS на Альт Сервер 10.1

Установим ansible:

apt-get update && apt-get install -y ansible sshpass
Создадим директорию для проекта:
mkdir ansible; cd ansible
Создадим инвентарный файл:

в формате «yaml»
в качестве хоста используется «localhost»
vim inventory
содержимое инвентарного файла:
all:
  hosts:
    localhost:
Создадим директорию для переменных хоста:
mkdir host_vars
Определим необходимые переменные для хоста — «localhost»:
vim host_vars/localhost.yml
содержимое файла:
ansible_ssh_user: root  # пользователь
ansible_ssh_pass: toor  # пароль пользователя
ansible_python_interpreter: /usr/bin/python3    # корректный интерпретатор
Проверяем работоспособность ansible с localhost:
ansible -i inventory -m ping all
Создаём playbook-сценарий для установки OTRS:
vim playbook.yml
  • содержимое playbook-сценария:

--- 
- name: Deploy Help Desk system 'OTRS' on Alt Server 10.1
  hosts: localhost
  become: true
  
  vars:
    version_postgresql: '15'
    postgresql_init_path: /etc/init.d/postgresql
    postgresql_data_dir: /var/lib/pgsql/data
    db_name: 'otrs'
    db_user: 'otrs'
    db_pass: 'otrs'
  
  tasks: 
    - name: Update the package database
      apt_rpm:
        update_cache: true

    - name: Installing the necessary packages
      apt_rpm:
        name: 
          - postgresql{{ version_postgresql }}-server
          - otrs
          - otrs-apache2
          - python3-module-psycopg2
          - postgresql{{ version_postgresql }}-perl
          - perl-DBD-Pg
          - apache2-httpd-prefork
        state: present

    - name: Enable daemon 'httpd2'
      systemd: 
        name: httpd2
        enabled: yes

    - name: Check system database postgresql
      stat:
        path: '{{ postgresql_data_dir }}/pg_hba.conf'
      register: postgres_data
      

    - name: Initialize system databases
      command: 
        cmd: '{{ postgresql_init_path }} initdb'
      when: not postgres_data.stat.exists

    - name: Started and enabled postgresql
      systemd:
        name: postgresql
        state: started 
        enabled: yes

    - name: Create PostgreSQL database
      postgresql_db:
        name: "{{ db_name }}"

    - name: Create PostgreSQL user
      postgresql_user:
        db: "{{ db_name }}"
        name: "{{ db_user }}"
        password: "{{ db_pass }}"
        priv: ALL
        state: present

    - name: Grant privileges to PostgreSQL user
      postgresql_privs:
        db: "{{ db_name }}"
        privs: ALL
        type: database
        role: "{{ db_user }}"
        state: present

    - name: Assign a database owner
      postgresql_db:
        name: "{{ db_name }}"
        owner: "{{ db_user }}"

    - name: Add httpd-addon.d=yes to 999-otrs.conf
      lineinfile:
        path: /etc/httpd2/conf/extra-start.d/999-otrs.conf
        line: 'httpd-addon.d=yes'
        create: yes

    - name: Configuration httpd2
      shell: | 
        alternatives-manual /usr/sbin/httpd2 /usr/sbin/httpd2.prefork
        alternatives-update
        a2enextra httpd-addon.d

    - name: Restarted httpd2 
      systemd:  
        name: httpd2
        state: restarted
  1. Устанавливаем необходимые коллекции для ansible:

ansible-galaxy collection install community.general

ansible-galaxy collection install community.postgresql
  1. Запускаем playbook-сценарий:

ansible-playbook -i inventory playbook.yml

img

img

  1. Проверяем:

img

img

img

img

img

img

img