Установка и настройка¶
Установка¶
Важно
Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/rollback/applevel pip3 freeze > /tmp/rollback/applevel/pip_before.txt
После чего в каталоге
/tmp/rollback/applevel
будет находиться файлpip_before.txt
с перечнем установленных приложений.Установите пакет AppLevel:
из репозитория Python-пакетов:
pip3 install applevel
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip3 freeze > /tmp/rollback/applevel/pip_after.txt
Примечание
Для установки AppLevel на Astra Linux (Smolensk) выполните следующее:
Подключите предоставленный Вам репозиторий с пакетами AccentOS.
Установите пакет командой:
sudo apt install -y aos-applevel
Настройка¶
Установите необходимые системные пакеты:
apt install qemu-kvm qemu-utils virtinst libguestfs-tools virt-* mariadb-server python-pymysql rabbitmq-server libffi-dev
Создайте пользователя с именем aos:
useradd -s /sbin/nologin aos
Создайте каталог для логов с нужными правами:
mkdir -p /var/log/aos/applevel chown -R aos:aos /var/log/aos/applevel
Создайте рабочий каталог с нужными правами:
mkdir /var/lib/applevel chown -R aos:aos /var/lib/applevel
Создайте каталог для конфигурационных файлов с нужными правами:
mkdir /etc/aos chown -R aos:aos /etc/aos
Создайте файл
/etc/sudoers.d/applevel
для разрешения выполнения команд без ввода пароля:# Allow run applevel commands without password aos ALL = NOPASSWD: /usr/bin/virt-tar-in, /usr/bin/virt-tar-out, /usr/bin/qemu-img, /usr/bin/virt-customize, /usr/bin/virt-win-reg, /usr/bin/guestmount, /usr/bin/virt-copy-in, /usr/bin/virt-copy-out, /usr/bin/virt-install, /usr/bin/virt-diff, /bin/tar
Для пользователя aos создайте файл .ssh/config и настройте через него беспарольный доступ до всех хостов, с которыми планируется работа. Пример настройки:
Host *.stand.loc User root IdentityFile ~/.ssh/stand Host 10.40.* User root IdentityFile ~/.ssh/stand
Выполните команду
applevel-configure
для создания файла конфигурации и файлов служб systemd:applevel-configure
Отредактируйте секцию
[DEFAULT]
конфигурационного файлаetc/aos/applevel.conf
, например:[DEFAULT] log_level = INFO work_dir = /var/lib/applevel db_url = mysql+pymysql://aos:password@localhost:3306/applevel broker_url = amqp://aos:password@localhost:5672/aos
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте базу данных applevel CREATE DATABASE applevel; # Дайте права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных applevel GRANT ALL PRIVILEGES ON applevel.* TO 'aos'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON applevel.* TO 'aos'@'%' IDENTIFIED BY 'password'; # Осуществите выход из базы данных
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user aos password rabbitmqctl add_vhost aos rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*" rabbitmqctl set_permissions aos ".*" ".*" ".*"
Добавьте пользователю в RabbitMQ права на виртуальные хосты служб Openstack (по умолчанию
/
):rabbitmqctl set_permissions -p / aos ".*" ".*" ".*"
Выполните миграцию базы данных:
FLASK_APP=applevel.api.app flask db upgrade
Запустите команду для сбора статических файлов:
FLASK_APP=applevel.api.ap flask collect
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable applevel.service applevel-worker.service systemctl start applevel.service applevel-worker.service
Создайте конфигурационный файл веб-сервера.
Важно
Для настройки аутентификации рекомендуется использовать
.htpasswd
файл.Настройка Apache:
Listen 8081 <VirtualHost *:8081> ErrorLog /var/log/apache2/applevel.log CustomLog /var/log/apache2/applevel-access.log combined ProxyPreserveHost On ProxyPass /static/ ! ProxyPass /gold/ ! ProxyPass /backup/ ! ProxyPass / http://127.0.0.1:8000/ ProxyPassReverse / http://127.0.0.1:8000/ Alias /static /var/lib/applevel/static Alias /gold /var/lib/applevel/gold Alias /backup /var/lib/applevel/backup <Directory /var/lib/applevel/static> Require all granted </Directory> <Directory /var/lib/applevel/gold> Require all granted </Directory> <Directory /var/lib/applevel/backup> Require all granted </Directory> </VirtualHost>
Настройка Nginx:
server { listen 80; server_name applevel.accentos.loc; access_log /var/log/nginx/applevel.log; error_log /var/log/nginx/applevel.log; client_max_body_size 0; client_body_timeout 6000; client_header_timeout 6000; location / { proxy_pass http://127.0.0.1:8000; } location /static/ { alias /var/lib/applevel/static/; } location /gold/ { alias /var/lib/applevel/gold/; } location /backup/ { alias /var/lib/applevel/backup/; } }
На всех хостах установите необходимые пакеты:
apt install libguestfs-tools python3-guestfs pip3 install virt-extract
Файл конфигурации¶
Конфигурационный файл представлен в ini
формате и состоит из следующих секций и параметров:
Секция | Параметр | Описание | Значение по умолчанию |
---|---|---|---|
DEFAULT |
log_level |
Уровень логирования. | INFO |
DEFAULT |
api_logfile |
Путь до лог файла службы applevel . |
/var/log/aos/applevel/api.log |
DEFAULT |
work_dir |
Рабочий каталог. | /var/lib/applevel |
DEFAULT |
db_url |
Настройка подключения к базе данных. | mysql+pymysql://aos:password@localhost:3306/applevel |
DEFAULT |
broker_url |
Настройка подключения к брокеру сообщений. | amqp://guest:guest@localhost:5672// |
Примечание
Для сборки слоев с Windows необходимо:
Перейти в папку
cd /usr/lib/x86_64-linux-gnu/perl5/5.28/Win/Hivex
.Скачать необходимый патч.
Применить скачанный патч командами:
patch -p1 < Regedit.patch