Примеры настройки окружения
Раздел включает примеры установки и настройки программного обеспечения:
Установка и настройка MinIO
| Подробную информацию о работе с MinIO см. в официальной документации. |
-
Скачайте MinIO для вашего дистрибутива по ссылке:
https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250408154124.0.0_amd64.deb
https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250408154124.0.0-1.x86_64.rpm
При наличии выхода в Интернет воспользуйтесь автоматической установкой и пропустите шаги 2-3:
sudo apt install wget -y wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250408154124.0.0_amd64.deb -O minio.deb sudo dpkg -i minio.deb
sudo dnf install wget -y wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250408154124.0.0-1.x86_64.rpm -O minio.rpm sudo dnf install minio.rpm
-
Перенесите на сервер скачанный пакет
minio_*.deb. -
Установите пакет
minio_*.deb. Пример команды установки пакета из директории/home/admin: -
Откройте текстовый редактор nano с файлом конфигурации юнита systemd для службы MinIO, выполнив команду:
sudo nano /usr/lib/systemd/system/minio.service
-
В файле конфигурации юнита задайте параметры, необходимые для управления службой 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}) -
Создайте группу с именем
minio-user, выполнив команду:sudo groupadd -r minio-user
-
Создайте пользователя с именем
minio-user, выполнив команду:sudo useradd -M -r -g minio-user minio-user
-
Задайте пароль для пользователя
minio-user, выполнив команду:sudo passwd minio-user
-
Создайте каталог для данных MinIO, выполнив команду:
sudo mkdir -p /opt/minio/data
-
Задайте владельца и группу для каталога
/opt/minio/и всех его подкаталогов и файлов, выполнив команду:sudo chown -R minio-user: /opt/minio/
-
В файле
/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 с неограниченными правами. -
Разрешите автозагрузку и запустите сервис, выполнив команду:
systemctl enable --now minio
-
Проверьте статус службы, выполнив команду:
systemctl status minio
-
Перейдите в WEB-интерфейс, используя
<IP>:9001. -
Войдите в систему под учетной записью администратора, указанной в
/etc/default/minio. -
На вкладке меню 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 см. в официальной документации. |
-
Для работы с Apache Kafka установите Java JDK версии 17, выполнив команду:
Проверьте установленную версию Java, выполнив команду:
java -version
-
Скачайте Apache Kafka и скопируйте архив на целевой сервер. Используйте ссылку для скачивания:
https://www.apache.org/dyn/closer.cgi?path=/kafka/4.0.0/kafka_2.13-4.0.0.tgz
-
Создайте директорию для Apache Kafka, выполнив команду:
sudo mkdir /opt/kafka
-
Перейдите в директорию с архивом на целевом сервере и распакуйте архив, выполнив команду:
sudo tar -xzvf kafka_*.tgz -C /opt/kafka --strip 1
-
Создайте пользователя Apache Kafka, выполнив команду:
sudo useradd -r -m -U -d /opt/kafka -s /bin/false kafka
-
Назначьте пользователя Apache Kafka владельцем каталогов, выполнив команду:
sudo chown -R kafka:kafka /opt/kafka/ /tmp/kraft-combined-logs/
-
Перейдите в директорию с Apache Kafka, выполнив команду:
cd /opt/kafka
-
В конфигурационном файле
/opt/kafka/config/server.propertiesзадайте параметры:# FQDN сервера Apache Kafka и порт (порт по умолчанию: `9093`), # которые будут использоваться для связи между контроллерами controller.quorum.bootstrap.servers=<servername.domain>:9093 # Cписок IP-адресов и портов, на которых Kafka будет слушать входящие соединения. # В тестовых целях можно указать значение `0.0.0.0` listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 # FQDN сервера Apache Kafka для клиентов и других компонентов кластера, чтобы они # могли подключаться к этому брокеру сообщений advertised.listeners=PLAINTEXT://<servername.domain>:9092,CONTROLLER://<servername.domain>:9093 -
Сгенерируйте UUID, выполнив команду:
./bin/kafka-storage.sh random-uuid
Пример вывода:
DXL_pFQjQkKoCMjCsNYGTg
-
Отформатируйте каталоги журналов, выполнив команду:
./bin/kafka-storage.sh format --standalone -t <random-uuid> -c config/server.properties
Вместо
<random-uuid>вставьте значение, полученное при выполнении команды из п. 8, например:./bin/kafka-storage.sh format --standalone -t DXL_pFQjQkKoCMjCsNYGTg -c config/server.properties
Пример результата:
Formatting dynamic metadata voter directory /tmp/kraft-combined-logs with metadata.version 4.0-IV3.
-
Создайте Unit-файл для Apache Kafka, выполнив команду:
sudo nano /etc/systemd/system/kafka.service
Пример файла:
[Unit] Description=Apache Kafka Server (KRaft mode) After=network.target [Service] Type=simple User=kafka ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties Restart=on-failure RestartSec=10 LimitNOFILE=100000 [Install] WantedBy=multi-user.target
-
Запустите службы, выполнив команду:
sudo systemctl daemon-reload && sudo systemctl enable --now kafka
-
Проверьте статус службы Apache Kafka, выполнив команду:
systemctl status kafka
-
Проверьте работу порта Apache Kafka, выполнив команду:
ss -tunlp | grep :9092
-
Создайте топики, выполнив команды:
/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 доступна, начиная с версии Astra Linux 1.8 и выше. |
# установка пакета dnf install postgresql15-server postgresql15-contrib -y # инициализация БД postgresql-15-setup initdb # добавление в автозагрузку и запуск службы systemctl enable postgresql-15.service --now # проверка работы сервиса systemctl status postgresql-15.service
| Пример установки конкретной версии для других систем, например: Debian или Ubuntu, см. по ссылке. |
Ниже рассмотрен пример настройки БД.
-
Зайдите в оболочку PostgreSQL, выполнив команду:
sudo -u postgres psql
-
Выполните действия:
-
Создайте пользователей:
-
osmax_rw— полные права на БД модуляosmax-core, гдеrw— read, write; -
osmax_ro— права на чтение БД модуляosmax-core, гдеro— read only; -
osmax_provisioner_rw— полные права на БД модуляosmax-provisioner, гдеrw— read, write.Пример команд:
CREATE ROLE osmax_rw LOGIN PASSWORD 'YourStrongPassword123'; CREATE ROLE osmax_ro LOGIN PASSWORD 'YourStrongPassword123'; CREATE ROLE osmax_provisioner_rw LOGIN PASSWORD 'YourStrongPassword123'; CREATE ROLE guacamole_admin LOGIN PASSWORD 'YourStrongPassword123';
-
-
Создайте БД:
-
osmax_db— БД модуляosmax-core; -
osmax_provisioner_db— БД модуляosmax-provisioner.Пример команд создания БД и назначения соответствующих пользователей владельцами:
CREATE DATABASE osmax_db OWNER osmax_rw; CREATE DATABASE osmax_provisioner_db OWNER osmax_provisioner_rw; CREATE DATABASE guacamole_db OWNER guacamole_admin;
-
-
Выдайте все права на БД владельцам БД.
Пример команд:
GRANT ALL PRIVILEGES ON DATABASE osmax_db TO osmax_rw; GRANT ALL PRIVILEGES ON DATABASE osmax_provisioner_db TO osmax_provisioner_rw; GRANT ALL PRIVILEGES ON DATABASE guacamole_db TO guacamole_admin;
-
Выйдите из оболочки PostgreSQL, выполнив команду:
\q
-
-
Подключитесь к БД
osmax_dbпод пользователемosmax_rw, выполнив команду:psql -h localhost -d osmax_db -U osmax_rw -p 5432
-
Выполните действия:
-
Создайте схемы БД, выполнив команду:
CREATE SCHEMA IF NOT EXISTS osmax_schema AUTHORIZATION osmax_rw;
-
Выдайте права подключения к БД пользователю
read only, выполнив команду:GRANT CONNECT ON DATABASE osmax_db TO osmax_ro;
-
Выдайте права на использование схемы пользователю
read only, выполнив команду:GRANT USAGE ON SCHEMA osmax_schema TO osmax_ro;
-
Выдайте права по умолчанию пользователю
osmax_rwв схеме и выдайте права на использование SELECT для пользователяread only, выполнив команду:ALTER DEFAULT PRIVILEGES FOR USER osmax_rw IN SCHEMA osmax_schema GRANT SELECT ON TABLES TO osmax_ro;
-
Задайте путь поиска к схеме, выполнив команду:
ALTER USER osmax_rw SET search_path = osmax_schema, public;
-
Выйдите из оболочки PostgreSQL, выполнив команду:
\q
-
-
Подключитесь к БД
osmax_dbпод пользователемosmax_ro, выполнив команду:psql -h localhost -d osmax_db -U osmax_ro -p 5432
-
Выполните команду установки
search_pathк созданной схеме, выполнив команду:ALTER USER osmax_ro SET search_path = osmax_schema, public;
-
Выйдите из оболочки PostgreSQL, выполнив команду:
\q
-
-
Подключитесь к БД
osmax_provisioner_dbпод пользователемosmax_provisioner_rw, выполнив команду:psql -h localhost -d osmax_provisioner_db -U osmax_provisioner_rw -p 5432
-
Выполните следующие действия для модуля
osmax-provisioner:-
Создайте схему
osmax_provisioner_schema, выполнив команду:CREATE SCHEMA IF NOT EXISTS osmax_provisioner_schema AUTHORIZATION osmax_provisioner_rw;
-
Выдайте права использования схемы пользователю, выполнив команду:
GRANT USAGE ON SCHEMA osmax_provisioner_schema TO osmax_provisioner_rw;
-
Задайте путь поиска к схеме, выполнив команду:
ALTER USER osmax_provisioner_rw SET search_path = osmax_provisioner_schema, public;
-
Выйдите из оболочки PostgreSQL, выполнив команду:
\q
-
-
Подключитесь к БД
guacamole_adminпод пользователемguacamole_admin, выполнив команду:psql -h localhost -d guacamole_db -U guacamole_admin -p 5432
-
Выполните следующие действия для БД модуля «Удаленный доступ»:
-
Создайте схему
guacamole_schema, выполнив команду:CREATE SCHEMA IF NOT EXISTS guacamole_schema AUTHORIZATION guacamole_admin;
-
Выдайте права использования схемы пользователю, выполнив команду:
GRANT USAGE ON SCHEMA guacamole_schema TO guacamole_admin;
-
Задайте путь поиска к схеме, выполнив команду:
ALTER USER guacamole_admin SET search_path = guacamole_schema, public;
-
Выйдите из оболочки PostgreSQL, выполнив команду:
\q
-