Примеры установки и настройки основных программ

Раздел включает примеры установки и настройки программного обеспечения:

Установка и настройка MinIo

Подробную информацию о работе с MinIo см. в официальной документации.
  1. Скачайте MinIO для вашего дистрибутива по ссылке.

  2. Перенесите на сервер скачанный пакет minio_*.deb.

    Пример команды установки пакета из директории /home/admin:

    sudo apt install /home/admin/minio_*.deb -y
  3. Откройте текстовый редактор nano с файлом конфигурации юнита systemd для службы MinIo, выполнив команду:

    sudo nano /usr/lib/systemd/system/minio.service
  4. В файле конфигурации юнита задайте параметры, необходимые для управления службой MinIO.

    Пример файла:

    [Unit]
    Description=MinIO
    Documentation=https://min.io/docs/minio/linux/index.html
    Wants=network-online.target
    After=network-online.target
    AssertFileIsExecutable=/usr/local/bin/minio
    
    [Service]
    WorkingDirectory=/usr/local
    
    User=minio-user
    Group=minio-user
    ProtectProc=invisible
    
    EnvironmentFile=-/etc/default/minio
    ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
    ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
    
    # Let systemd restart this service always
    Restart=always
    
    # Specifies the maximum file descriptor number that can be opened by this process
    LimitNOFILE=65536
    
    # Specifies the maximum number of threads this process can create
    TasksMax=infinity
    
    # Disable timeout logic and wait until process is stopped
    TimeoutStopSec=infinity
    SendSIGKILL=no
    
    [Install]
    WantedBy=multi-user.target
    
    # Built for ${project.name}-${project.version} (${project.name})
  5. Создайте группу с именем minio-user, выполнив команду:

    sudo groupadd -r minio-user
  6. Создайте пользователя с именем minio-user, выполнив команду:

    sudo useradd -M -r -g minio-user minio-user
  7. Задайте пароль для пользователя minio-user, выполнив команду:

    sudo passwd minio-user
  8. Создайте каталог для данных MinIo, выполнив команду:

    sudo mkdir -p /opt/minio/data
  9. Задайте владельца и группу для каталога /opt/minio/ и всех его подкаталогов и файлов, выполнив команду:

    sudo chown -R minio-user: /opt/minio/
  10. В файле /etc/default/minio добавьте строки:

    MINIO_ROOT_USER=myminioadmin
    MINIO_ROOT_PASSWORD=minio-secret-key-change-me
    
    MINIO_VOLUMES="/opt/minio/data"
    
    MINIO_OPTS="--console-address :9001"
    Измените переменные MINIO_ROOT_USER и MINIO_ROOT_PASSWORD, указав учетную запись суперпользователя MinIo с неограниченными правами.
  11. Разрешите автозагрузку и запустите сервис, выполнив команду:

    systemctl enable --now minio
  12. Проверьте статус службы, выполнив команду:

    systemctl status minio
  13. Перейдите в WEB-интерфейс, используя <IP>:9001.

  14. Войдите в систему под учетной записью администратора, указанной в /etc/default/minio.

  15. На вкладке меню Buckets создайте бакеты:

    • multimedia-bucket;

    • os-distributives-bucket;

    • os-installation-iso-images-bucket;

    • salt-bucket;

    • script-bucket;

    • icons-bucket;

    • images-bucket;

    • others-bucket;

    • bootloader-bucket.

Установка и настройка Apache Kafka

Подробную информацию о работе с Apache Kafka см. в официальной документации.
  1. Установите пакет default-jdk, выполнив команду:

    sudo apt install default-jdk
  2. Создайте директорию для Apache Kafka, выполнив команду:

    sudo mkdir /opt/kafka
  3. Скачайте последнюю версию Apache Kafka и передайте ее на сервер.

  4. Распакуйте архив, выполнив команду:

    sudo tar -xzf kafka_*.tgz -C /opt/kafka --strip 1
  5. Создайте пользователя Apache Kafka, выполнив команду:

    sudo useradd -r -c 'Kafka broker user service' kafka
  6. Создайте сервисные директории, выполнив команду:

    sudo mkdir /tmp/zookeeper/ /tmp/kafka-logs/
  7. Назначьте пользователя Apache Kafka владельцем каталогов, выполнив команду:

    sudo chown -R kafka:kafka /opt/kafka /tmp/zookeeper/ /tmp/kafka-logs/
  8. Создайте unit-файл для Zookeeper, выполнив команду:

    sudo nano /etc/systemd/system/zookeeper.service

    Пример файла:

    [Unit]
    Description=Zookeeper Service
    Requires=network.target remote-fs.target
    After=network.target remote-fs.target
    
    [Service]
    Type=simple
    User=kafka
    ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
    ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  9. Создайте unit-файл для Apache Kafka, выполнив команду:

    sudo nano /etc/systemd/system/kafka.service

    Пример файла:

    [Unit]
    Description=Kafka Service
    Requires=zookeeper.service
    After=zookeeper.service
    
    [Service]
    Type=simple
    User=kafka
    ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/kafka.log 2>&1'
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
  10. Запустите службы, выполнив команду:

    sudo systemctl daemon-reload && sudo systemctl enable --now zookeeper kafka
  11. Проверьте статус службы Apache Kafka, выполнив команду:

    systemctl status kafka
  12. Проверьте работу порта Apache Kafka, выполнив команду:

    ss -tunlp | grep :9092
  13. Создайте топики, выполнив команды:

    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic salt-topic
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic provisioner-topic
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic provisioner-dlq-topic
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic osmax-core.os.reinstallation.machines
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic osmax-provisioner.os.reinstallation.machines.registration.statuses

Установка и настройка PostgreSQL

Установите PostgreSQL, выполнив команду:

apt install postgresql
Если вы используете модуль «Удаленный доступ», версия PostgreSQL должна быть 15 и выше.
Пример установки конкретной версии для Ubuntu см. по Пример установки конкретной версии для Ubuntu[ссылке].

Ниже рассмотрен пример настройки БД:

  1. Зайдите в оболочку PostgreSQL, выполнив команду:

    sudo -u postgres psql
  2. Выполните действия:

    1. Создайте пользователей:

      • osmax_rw  — полные права на БД модуля osmax-core;

      • osmax_ro  — права на чтение БД модуля osmax-core, где ro — read only;

      • osmax_provisioner_rw  — полные права на БД модуля osmax-provisioner.

        Пример команд:

        CREATE ROLE osmax_rw LOGIN PASSWORD 'YourStrongPassword123';
        CREATE ROLE osmax_ro LOGIN PASSWORD 'YourStrongPassword123';
        CREATE ROLE osmax_provisioner_rw LOGIN PASSWORD 'YourStrongPassword123';
    2. Создайте БД:

      • osmax_db — БД модуля osmax-core;

      • osmax_provisioner_db — БД модуля osmax-provisioner.

        Пример команд создания БД и назначения соответствующих пользователей владельцами:

        CREATE ROLE osmax_rw LOGIN PASSWORD 'YourStrongPassword123';
        CREATE ROLE osmax_ro LOGIN PASSWORD 'YourStrongPassword123';
        CREATE ROLE osmax_provisioner_rw LOGIN PASSWORD 'YourStrongPassword123';
    3. Выдайте все права на БД владельцам БД.

      Пример команд:

      GRANT ALL PRIVILEGES ON DATABASE osmax_db TO osmax_rw;
      GRANT ALL PRIVILEGES ON DATABASE osmax_provisioner_db TO osmax_provisioner_rw;
    4. Выйдите из оболочки PostgreSQL, выполнив команду:

      \q
  3. Подключитесь к БД osmax_db под пользователем osmax_rw, выполнив команду:

    psql -h localhost -d osmax_db -U osmax_rw -p 5432
  4. Выполните действия:

    1. Создайте схемы БД, выполнив команду:

      CREATE SCHEMA IF NOT EXISTS osmax_schema AUTHORIZATION osmax_rw;
    2. Выдайте права подключения к БД пользователю read only, выполнив команду:

      GRANT CONNECT ON DATABASE osmax_db TO osmax_ro;
    3. Выдайте права на использование схемы пользователю read only, выполнив команду:

      GRANT USAGE ON SCHEMA osmax_schema TO osmax_ro;
    4. Выдайте права по умолчанию пользователю osmax_rw в схеме и выдайте права на использование SELECT для пользователя read only, выполнив команду:

      ALTER DEFAULT PRIVILEGES FOR USER osmax_rw IN SCHEMA osmax_schema GRANT SELECT ON TABLES TO osmax_ro;
    5. Задайте путь поиска к схеме, выполнив команду:

      ALTER USER osmax_rw SET search_path = osmax_schema, public;
    6. Выйдите из оболочки PostgreSQL, выполнив команду:

      \q
  5. Подключитесь к БД osmax_db под пользователем osmax_ro, выполнив команду:

    psql -h localhost -d osmax_db -U osmax_ro -p 5432
  6. Выполните команду установки search_path к созданной схеме, выполнив команду:

    ALTER USER osmax_ro SET search_path = osmax_schema, public;
    1. Выйдите из оболочки PostgreSQL, выполнив команду:

      \q
  7. Подключитесь к БД osmax_provisioner_db под пользователем osmax_provisioner_rw, выполнив команду:

    psql -h localhost -d osmax_provisioner_db -U osmax_provisioner_rw -p 5432
  8. Выполните следующие действия для модуля osmax-provisioner:

    1. Создайте схему osmax_provisioner_schema, выполнив команду:

      CREATE SCHEMA IF NOT EXISTS osmax_provisioner_schema AUTHORIZATION osmax_provisioner_rw;
    2. Выдайте права использования схемы пользователю, выполнив команду:

      GRANT USAGE ON SCHEMA osmax_provisioner_schema TO osmax_provisioner_rw;
    3. Задайте путь поиска к схеме, выполнив команду:

      ALTER USER osmax_provisioner_rw SET search_path = osmax_provisioner_schema, public;
    4. Выйдите из оболочки PostgreSQL, выполнив команду.

      \q