Вы можете обновить предыдущую версию Automation Config до последней устойчивой версии.
Практические рекомендации по обновлению
При планировании процесса обновления следуйте следующим рекомендациям.
- Не выполняйте обновление с помощью установщика или процедуры установки вручную.В случае обновления установки Automation Config используйте следующие инструкции по обновлению.
- Для получения наилучших результатов обновляйте от одной основной версии до следующей. Всегда обновляйте с последней основной версии Automation Config до новой версии. Если вы применяете старую версию, выполняйте обновление поэтапно, переходя от одной версии к следующей.
- Выполняйте резервное копирование данных. Чтобы предотвратить потерю данных, создавайте резервную копию данных.
- Выполняйте обновления в период небольшой нагрузки на сеть. При обновлении базы данных требуется переиндексация данных. В зависимости от уровня сложности данных процесс обновления базы данных может занимать до нескольких часов. Для предотвращения прерывания обслуживания базу данных рекомендуется обновлять в нерабочее время или выполнить очистку базы данных перед ее обновлением.
- Проверьте в базе данных наличие старых команд. Иногда в базе данных PostgreSQL хранятся старые команды, которые не были выполнены. Эти команды могут запускаться во время процесса обновления при перезапуске подключаемого модуля Master. Для предотвращения такой ситуации проверьте наличие старых команд в базе данных и включите режим пропуска заданий, возраст которых превышает заданное время.
- Протестируйте обновление перед развертыванием. Если возможно, проведите «генеральную репетицию» в тестовой среде и оцените время, которое может потребоваться для обновления.
- Сначала подробно ознакомьтесь с руководством. Прочтите все руководство хотя бы один раз перед выполнением обновления, чтобы хорошо представлять задачи для выполнения и понять, нужно ли будет спланировать эти задачи в вашей группе и нужно ли уведомить заинтересованных лиц об отложенных изменениях.
Обновление с более ранних версий
Всегда обновляйте Automation Config с последней основной версии до новой версии. Для наилучших результатов обновление с более ранней версии, чем последняя версия, рекомендуется выполнять поэтапно, переходя от одной основной версии к следующей.
Шаги по обновлению до более ранних версий Automation Config см. в конкретных инструкциях по обновлению для версий, с которых выполняется обновление. Инструкции по обновлению для предыдущих версий включены в PDF-руководства по установке следующих версий. Например, если необходимо выполнить обновление с версии 5.5 до версии 6.0, см. инструкции по обновлению в PDF-руководстве по установке версии 6.0.
Для Automation Config 8.4 и более поздних версий используйте средство выбора версии в верхней части этой страницы, позволяющее правильно выбрать руководство по обновлению для версии продукта. Для версии 8.3 и более ранних используйте PDF-руководства в следующей таблице.
Обновление Automation Config
- Создание резервной копии данных, включая определенные файлы и каталоги, которые необходимы для конкретной установки Automation Config
- Обновление PostgreSQL (необязательно, но рекомендуется)
- Обновление инфраструктуры Salt (необязательно, но рекомендуется)
- Загрузка файлов обновления
- Обновление узла RaaS
- Обновление всех главных серверов Salt, на которых используется подключаемый модуль Master
Дополнительные сведения об обновлении Config при помощи Aria Suite Lifecyle см. в разделе Обновление Automation Config в документации по Lifecyle Manager.
Резервное копирование файлов и каталогов Automation Config
Следующие файлы и каталоги содержат настраиваемые конфигурации Automation Config, и перед модернизацией для них нужно создать резервные копии.
- На узле RaaS создайте полные резервные копии следующих каталогов.
/etc/raas/raas
/etc/raas/raas.secconf
/var/log/raas
/etc/raas/pki/
Примечание:Каталог
pki
содержит скрытые файлы, поэтому необходимо убедиться, что создается резервная копия всего содержимого каталога. Выполнять резервное копирование файлов журнала в каталоге/var/log/raas
необязательно. В ходе модернизации файлы журнала очищаются в целях устранения неполадок, если таковые возникнут. - На каждом главном сервере Salt создайте резервную копию файлов
/etc/salt/master.d/raas.conf
и/etc/salt/master.d/eAPIMasterPaths.conf
.Примечание:При некоторых способах первоначальной установки системы Automation Config пути к главному серверу Salt в eAPI указываются в файле
/etc/salt/master.d/raas.conf
.
Резервное копирование схемы базы данных
При модернизации узла RaaS обновляется схема базы данных. Поэтому перед модернизацией следует убедиться в наличии резервной копии базы данных.
Чтобы создать резервную копию базы данных, сначала необходимо найти имя базы данных PostgreSQL, а затем скопировать содержимое.
- На сервере PostgreSQL создайте резервную копию следующих файлов.
postgresql.conf
pg_hba.conf
- Войдите в качестве пользователя
postgres
с помощью следующей команды.sudo su - postgres
- Получите имя базы данных, используя следующие команды для входа в PostgreSQL и получения списка баз данных.
psql \l
- Чтобы закрыть PostgreSQL и выйти из учетной записи пользователя
postgres
, нажмите CTRL+D и выполните следующую команду.exit
- Скопируйте содержимое базы данных в файл. Ниже приведен пример команды.
pg_dump -U salteapi raas_db_name > postgres_raas_backup_$(date +%Y-%m-%d).sql
Обновление базы данных PostgreSQL
Для Automation Config требуется база данных PostgreSQL 9.6, но рекомендуется использовать PostgreSQL 13.7. Рекомендуемая версия PostgreSQL поставляется вместе с установщиком Automation Config.
Обновление до последней версии PostgreSQL не требуется. Однако обновление PostgreSQL может положительно повлиять на производительность. Процедуру обновления до последней версии PostgreSQL см. в разделе Обновление PostgreSQL.
Обновление базы данных Redis
Для Automation Config требуется база данных Redis 5.x, но рекомендуется использовать Redis 6.2.7. Рекомендуемая версия Redis поставляется вместе с установщиком Automation Config.
Обновление до последней версии Redis 5.x не требуется. Однако обновление Redis может положительно повлиять на производительность. Процедуру обновления Redis см. в разделе Администрирование Redis.
Модернизация Salt
При модернизации Salt сначала необходимо модернизировать главные серверы. Если на служебных серверах применяются более новые версии Salt, чем версии на их главных серверах, то они могут работать некорректно, так как служебный сервер может содержать изменения, которые еще не доступны на главном сервере. Кроме того, если это возможно, сохраняется обратная совместимость между новыми главными и старыми служебными серверами. Как правило, единственным исключением для этой политики является уязвимость системы безопасности.
Для обеспечения оптимальной производительности убедитесь, что на всех компонентах Salt в инфраструктуре установлена последняя основная версия Salt.
Обязательно:при развертывании на базе существующих решений и развертывании обновлений, начиная с версии Salt 3006, главный сервер Salt запускается от имени пользователя Salt, а не пользователя root, как это было ранее. Это может привести к ошибкам разрешений в рабочих процессах, связанных с RaaS, таких как развертывание служебного сервера и обновление подключаемого модуля Master для RaaS.
Для устранения этой проблемы в файле /etc/salt/master.d/raas.conf измените пользователя на пользователя root: user: root
.
При развертывании с нуля команда sseapi-config
настраивает подключаемый модуль Master и создает файл raas.conf с правильным значением конфигурации user: root
. От вас ничего не требуется.
Обновление узла RaaS
После обновления PostgreSQL, Redis и Salt до последней версии можно обновить узел RaaS с предыдущей версии до последней.
Перед обновлением узла RaaS необходимо создать резервную копию системных данных, чтобы предотвратить их потерю. Чтобы сохранить конфигурацию, сохраните все изменения, внесенные в файловую систему по умолчанию, данные хранилища pillar и задания в виде новых файлов или заданий. Также необходимо записать или скопировать все существующие назначения целевых объектов хранилища pillar, так как они будут удалены в процессе обновления.
Чтобы обновить узел RaaS, выполните следующие действия.
- Загрузите файлы обновления с веб-сайта Customer Connect.
- Остановите службу RaaS с помощью следующей команды.
sudo systemctl stop raas
- Удалите файлы журнала в каталоге
/var/log/raas
. Очищенные файлы журнала могут потребоваться в целях устранения неполадок, если таковые возникнут. - Удалите текущую установленную версию API-интерфейса (RaaS) с помощью следующей команды.
sudo yum remove raas
- Обновите узел RaaS путем установки последней версии RPM. Используйте следующий пример команды, указав точное имя файла RPM.
sudo yum install raas-rpm-file-name.rpm
- ВНИМАНИЕ! Восстановите резервную копию следующих файлов:
/etc/raas/raas
/etc/raas/raas.secconf
/etc/raas/pki/
- Обновите разрешения для пользователя
raas
с помощью следующей команды.sudo chown -R raas:raas /etc/pki/raas/certs
- Если у вас есть лицензия Automation for Secure Hosts и вы хотите добавить библиотеку соответствия требованиям, добавьте следующий новый раздел в файл
/etc/raas/raas
(НЕОБЯЗАТЕЛЬНО).sec: ingest_override: true locke_dir: locke post_ingest_cleanup: true username: 'secops' content_url: 'https://enterprise.saltstack.com/secops_downloads' download_enabled: true download_frequency: 86400 stats_snapshot_interval: 3600 compile_stats_interval: 10 ingest_on_boot: True content_lock_timeout: 60 content_lock_block_timeout: 120
Примечание:Этот шаг не является обязательным и применяется только к тем организациям, которые имеют действительную лицензию Automation for Secure Hosts. Этот дополнительный модуль доступен для версий Automation Config 6.0 и выше. Предыдущие параметры конфигурации в файле конфигурации
/etc/raas/raas
применимы к этим дополнительным модулям. - Если у вас есть лицензия Automation for Secure Hosts и вы хотите добавить библиотеку уязвимостей, добавьте новый раздел в файл
/etc/raas/raas
(НЕОБЯЗАТЕЛЬНО).vman: vman_dir: vman download_enabled: true download_frequency: 86400 username: vman content_url: 'https://enterprise.saltstack.com/vman_downloads' ingest_on_boot: true compile_stats_interval: 60 stats_snapshot_interval: 3600 old_policy_file_lifespan: 2 delete_old_policy_files_interval: 86400 tenable_asset_import_enabled: True tenable_asset_import_grains: ['fqdn', 'ipv4', 'ipv6', 'hostname', 'mac_address', 'netbios_name', 'bios_uuid', 'manufacturer_tpm_id', 'ssh_fingerprint', 'mcafee_epo_guid', 'mcafee_epo_agent_guid', 'symantec_ep_hardware_key', 'qualys_asset_id', 'qualys_host_id', 'servicenow_sys_id', 'gcp_project_id', 'gcp_zone', 'gcp_instance_id', 'azure_vm_id', 'azure_resource_id', 'aws_availability_zone', 'aws_ec2_instance_ami_id', 'aws_ec2_instance_group_name', 'aws_ec2_instance_state_name', 'aws_ec2_instance_type', 'aws_ec2_name', 'aws_ec2_product_code', 'aws_owner_id', 'aws_region', 'aws_subnet_id', 'aws_vpc_id', 'installed_software', 'bigfix_asset_id' ]
Примечание:Этот шаг не является обязательным и применяется только к тем организациям, которые имеют действительную лицензию Automation for Secure Hosts. Этот дополнительный модуль доступен для версий Automation Config 6.0 и выше. Предыдущие параметры конфигурации в файле конфигурации
/etc/raas/raas
применимы к этим дополнительным модулям. - В настоящее время в RaaS существует проблема, связанная с устаревшими заданиями. При обновлении некоторые пользователи могут заметить очередь устаревших заданий, которые «застряли» в ней в ожидающем состоянии. Обновление узла RaaS может привести к запуску таких заданий, если их заранее не удалить.
Для предотвращения такой ситуации сначала проверьте базу данных на наличие старых команд. На узле PostgreSQL проверьте наличие ожидающих заданий, используя следующую команду.
select count(1) from commands where state='new';
Вы получите количество ожидающих заданий. Если количество заданий равно
0
, продолжайте выполнять процесс обновления. - Обновите базу данных службы RaaS, используя следующую команду.
sudo su - raas raas upgrade
Примечание:В зависимости от размера базы данных, процесс модернизации может занять от нескольких минут до часа. При обнаружении ошибок проверьте файл журнала
/var/log/raas/raas
для получения дополнительных сведений. - После обновления выйдите из сеанса пользователя
raas
с помощью следующей команды.exit
- Запустите службу RaaS с помощью следующей команды.
sudo systemctl enable raas sudo systemctl start raas
Обновление подключаемого модуля Master через пользовательский интерфейс Automation Config
Automation Config автоматически обновляет подключаемый модуль Master до последней версии. Никакие действия пользователя не требуются.
При этом подключаемый модуль Master также можно обновить через пользовательский интерфейс Automation Config. Чтобы обновить подключаемый модуль Master, в Automation Config выберите Администрирование а затем щелкните Подключаемые модули Master. На вкладке подключаемого модуля Master отображаются сведения о его версии и среде Automation Config, а также список идентификаторов подключаемых модулей Master. На вкладке «Подключаемые модули Master» выберите модули для обновления и щелкните Обновить.
Обновление подключаемого модуля Master через интерфейс командной строки
После успешного обновления узла RaaS можно обновить любые главные серверы Salt, на которых используется подключаемый модуль Master для подключения к Automation Config.
# sseapi-config --default >/tmp/raas.conf # cd /etc/salt/master.d # vim -d raas.conf /tmp/raas.conf
Начиная с выпуска 8.13.0, подключаемый модуль Master содержит модуль tgtmatch, который передает процесс сопоставления целевой группы с сервера RaaS на главные серверы Salt. Этот модуль tgtmatch рекомендуется включить и настроить, чтобы процесс сопоставления целевой группы мог обеспечивать более информативный отклик, особенно в средах со следующими особенностями:
- Большое количество целевых групп (100 или больше)
- Большое количество служебных серверов (3000 или больше)
- Частое изменение параметров grains на служебных серверах (ежедневно или чаще)
- Частое создание и удаление служебных серверов (ежедневно или чаще)
engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {} - tgtmatch: {} sseapi_local_cache: load: 3600 tgt: 86400 pillar: 3600 exprmatch: 86400 tgtmatch: 86400 sseapi_tgt_match: poll_interval: 60 workers: 0 nice: 19
target_groups_from_master_only: true
Перед обновлением главных серверов Salt убедитесь, что на них установлено приложение pip3. Если обновление выполняется с последней версии подключаемого модуля Master, это означает, что данное приложение уже установлено.
Чтобы обновить подключаемый модуль Master на главном сервере Salt, выполните следующие действия.
- Остановите службу
salt-master
с помощью следующей команды.sudo systemctl stop salt-master
- Проверьте версию Python, установленную на главном сервере Salt. Если используется версия Python 3.6 или выше, изменения не нужны. В противном случае удалите предыдущую версию модуля SSEAPE. SSEAPE — это подключаемый модуль Automation Config для главного сервера Salt. Например:
RHEL/CentOS
sudo rm -rf /usr/lib/python3.6/site-packages/SSEAPE*
Ubuntu
sudo rm /usr/lib/python3.6/dist-packages/SSEAPE*
- Обновите подключаемый модуль Master, установив обновленный файл wheel Python вручную. Используйте следующие примеры команд, заменив имя файла на точное имя файла wheel.
Примечание: Существующий подключаемый модуль необходимо удалить, чтобы предотвратить использование нескольких экземпляров sseapi-config.
pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl mv /etc/salt/master.d/raas.conf /tmp salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl cp /tmp/raas.conf /etc/salt/master.d/raas.conf systemctl restart salt-master
- Обновите пути модулей API-интерфейса (RaaS) путем редактирования файла
/etc/salt/master.d/eAPIMasterPaths.conf
, чтобы он ссылался на пути на различные модули. Например, все ссылкиpython2.7
в этом файле можно изменить наpython3.6
.Примечание:При некоторых способах первоначальной установки системы Automation Config пути к главному серверу Salt в eAPI указываются в файле
/etc/salt/master.d/raas.conf
. - Проверьте раздел
engines
в/etc/salt/master.d/raas.conf
и убедитесь, что он имеет следующий вид.engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {}
Примечание:При возникновении проблемы может потребоваться восстановить резервные копии файлов
/etc/salt/master.d/raas.conf
и/etc/salt/master.d/eAPIMasterPaths.conf
. - Если используется проверка подлинности с помощью ключа salt-master (рекомендуется), убедитесь, что
sseapi_pubkey_path
настроен и чтоsseapi_username
иsseapi_password
заключены в комментарий в/etc/salt/master.d/raas.conf
.sseapi_pubkey_path: /etc/salt/pki/master/sseapi_key.pub #sseapi_username: #sseapi_password:
- Убедитесь, что для записей
master_job_cache
иevent_return
установлено значение вsseapi
. Модуль возвратаpgjsonb
больше не доступен. - Запустите службу
salt-master
с помощью следующей команды.sudo systemctl start salt-master
- Убедитесь, что главный сервер Salt работает от имени пользователя root, а не пользователя Salt. В противном случае в файле /etc/salt/master.d/raas.conf измените пользователя на пользователя root:
user: root
.
Процесс обновления завершен. В случае возникновения других ошибок см. раздел Устранение неполадок.