Вы можете обновить предыдущую версию SaltStack Config до последней устойчивой версии.
Практические рекомендации по обновлению
При планировании процесса обновления следуйте следующим рекомендациям.
- Не выполняйте обновление с помощью установщика или процедуры установки вручную.В случае обновления установки SaltStack Config используйте следующие инструкции по обновлению.
- Для получения наилучших результатов обновляйте от одной основной версии до следующей. Всегда обновляйте с последней основной версии SaltStack Config до новой версии. Если вы применяете старую версию, выполняйте обновление поэтапно, переходя от одной версии к следующей.
- Выполняйте резервное копирование данных. Чтобы предотвратить потерю данных, создавайте резервную копию данных.
- Выполняйте обновления в период небольшой нагрузки на сеть. При обновлении базы данных требуется переиндексация данных. В зависимости от уровня сложности данных процесс обновления базы данных может занимать до нескольких часов. Для предотвращения прерывания обслуживания базу данных рекомендуется обновлять в нерабочее время или выполнить очистку базы данных перед ее обновлением.
- Проверьте в базе данных наличие старых команд. Иногда в базе данных PostgreSQL хранятся старые команды, которые не были выполнены. Эти команды могут запускаться во время процесса обновления при перезапуске подключаемого модуля Master. Для предотвращения такой ситуации проверьте наличие старых команд в базе данных и включите режим пропуска заданий, возраст которых превышает заданное время.
- Протестируйте обновление перед развертыванием. Если возможно, проведите «генеральную репетицию» в тестовой среде и оцените время, которое может потребоваться для обновления.
- Сначала подробно ознакомьтесь с руководством. Прочтите все руководство хотя бы один раз перед выполнением обновления, чтобы хорошо представлять задачи для выполнения и понять, нужно ли будет спланировать эти задачи в вашей группе и нужно ли уведомить заинтересованных лиц об отложенных изменениях.
Обновление с более ранних версий
Всегда обновляйте SaltStack Config с последней основной версии до новой версии. Для наилучших результатов обновление с более ранней версии, чем последняя версия, рекомендуется выполнять поэтапно, переходя от одной основной версии к следующей.
Шаги по обновлению до более ранних версий SaltStack Config см. в конкретных инструкциях по обновлению для версий, с которых выполняется обновление. Инструкции по обновлению для предыдущих версий включены в PDF-руководства по установке следующих версий. Например, если необходимо выполнить обновление с версии 5.5 до версии 6.0, см. инструкции по обновлению в PDF-руководстве по установке версии 6.0.
Для SaltStack Config 8.4 и более поздних версий используйте средство выбора версии в верхней части этой страницы, позволяющее правильно выбрать руководство по обновлению для версии продукта. Для версии 8.3 и более ранних используйте PDF-руководства в следующей таблице.
Обновление SaltStack Config
- Создание резервной копии данных, включая определенные файлы и каталоги, которые необходимы для конкретной установки SaltStack Config
- Обновление PostgreSQL (необязательно, но рекомендуется)
- Обновление инфраструктуры Salt (необязательно, но рекомендуется)
- Загрузка файлов обновления
- Обновление узла RaaS
- Обновление всех главных серверов Salt, на которых используется подключаемый модуль Master
Дополнительные сведения об обновлении SaltStack Config при помощи Lifecyle Manager см. в разделе Обновление vRealize Automation SaltStack Config в документации по Lifecyle Manager.
Резервное копирование файлов и каталогов SaltStack Config
Следующие файлы и каталоги содержат настраиваемые конфигурации SaltStack 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
.Примечание:При некоторых способах первоначальной установки системы SaltStack Config пути к главному серверу Salt в eAPI указываются в файле
/etc/salt/master.d/raas.conf
.
Резервное копирование схемы базы данных
При модернизации узла RaaS обновляется схема базы данных. Поэтому перед модернизацией следует убедиться в наличии резервной копии базы данных.
Чтобы создать резервную копию базы данных, сначала необходимо найти имя базы данных PostgreSQL, а затем скопировать содержимое.
- На сервере PostgreSQL создайте резервную копию следующих файлов.
postgres.conf
pg_hba.conf
- Войдите в качестве пользователя
postgres
с помощью следующей команды.sudo su - postgres
- Получите имя базы данных, используя следующие команды для входа в PostgreSQL и получения списка баз данных.
psql \l
- Чтобы закрыть PostgreSQL и выйти из учетной записи пользователя
postgres
, нажмите CTRL+D и выполните следующую команду.exit
- Скопируйте содержимое базы данных в файл. Ниже приведен пример команды.
pg_dump -U salt_eapi raas_db_name > postgres_raas_backup_$(date +%Y-%m-%d).sql
Обновление базы данных PostgreSQL
Для SaltStack Config требуется база данных PostgreSQL 9.6, но рекомендуется использовать PostgreSQL 12.4. Рекомендуемая версия PostgreSQL поставляется вместе с установщиком SaltStack Config.
Обновление до последней версии PostgreSQL не требуется. Однако обновление PostgreSQL может положительно повлиять на производительность. Процедуру обновления до последней версии PostgreSQL см. в разделе Обновление PostgreSQL.
Обновление базы данных Redis
Для SaltStack Config требуется база данных Redis 5.x, но рекомендуется использовать Redis 5.0.4. Рекомендуемая версия Redis поставляется вместе с установщиком SaltStack Config.
Обновление до последней версии Redis 5.x не требуется. Однако обновление Redis может положительно повлиять на производительность. Процедуру обновления Redis см. в разделе Администрирование Redis.
Модернизация Salt
Для обеспечения оптимальной производительности убедитесь, что на компонентах Salt в инфраструктуре установлена последняя основная версия Salt. Например, убедитесь, что на служебных серверах установлена последняя версия Salt.
Процедуру модернизации главных серверов Salt и других компонентов Salt см. в разделе Модернизация инфраструктуры Salt.
Сведения о модернизации пакета Salt Crystal см. в разделе Модернизация Salt Crystal.
Обновление узла RaaS
После обновления PostgreSQL, Redis и Salt до последней версии можно обновить узел RaaS с предыдущей версии до последней.
Перед обновлением узла RaaS необходимо создать резервную копию системных данных, чтобы предотвратить их потерю.
Чтобы обновить узел RaaS, выполните следующие действия.
- Загрузите файлы обновления с веб-сайта Customer Connect.
- Сохраните все изменения, внесенные в файловую систему по умолчанию, данные хранилища pillar и задания в виде новых файлов или заданий.
- Отметьте все назначения для хранилища pillar, которые сделаны для целевых объектов по умолчанию. После обновления их нужно будет переназначить.
- Остановите службу 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
- Если у вас есть лицензия SaltStack SecOps, и вы хотите добавить библиотеку соответствия требованиям, добавьте следующий новый раздел в файл
/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
Примечание:Этот шаг не является обязательным и применяется только к тем организациям, которые имеют действительную лицензию SaltStack SecOps. Этот дополнительный модуль доступен для версий SaltStack Config 6.0 и выше. Предыдущие параметры конфигурации в файле конфигурации
/etc/raas/raas
применимы к этим дополнительным модулям. - Если у вас есть лицензия SaltStack SecOps, и вы хотите добавить библиотеку уязвимостей, добавьте новый раздел в файл
/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' ]
Примечание:Этот шаг не является обязательным и применяется только к тем организациям, которые имеют действительную лицензию SaltStack SecOps. Этот дополнительный модуль доступен для версий SaltStack 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
После успешного обновления узла RaaS можно обновить любые главные серверы Salt, на которых используется подключаемый модуль Master для подключения к SaltStack Config.
Перед обновлением главных серверов Salt убедитесь, что на них установлено приложение pip3. Если обновление выполняется с последней версии подключаемого модуля Master, это означает, что данное приложение уже установлено.
Чтобы обновить подключаемый модуль Master на главном сервере Salt, выполните следующие действия.
- Остановите службу
salt-master
с помощью следующей команды.sudo systemctl stop salt-master
- Проверьте версию Python, установленную на главном сервере Salt. Если используется версия Python 3.6 или выше, изменения не нужны. В противном случае удалите предыдущую версию модуля SSEAPE. SSEAPE — это подключаемый модуль SaltStack 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.
RHEL/CentOS
sudo pip3 install SSEAPE-file-name.whl --prefix /usr
Ubuntu
sudo pip3 install SSEAPE-file-name.whl
Примечание:Некоторым пользователям может потребоваться изменить синтаксис на
pip3.6
илиpip36
в соответствии с операционной системой. - Обновите пути модулей API-интерфейса (RaaS) путем редактирования файла
/etc/salt/master.d/eAPIMasterPaths.conf
, чтобы он ссылался на пути на различные модули. Например, все ссылкиpython2.7
в этом файле можно изменить наpython3.6
.Примечание:При некоторых способах первоначальной установки системы SaltStack 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
Процесс обновления завершен. В случае возникновения других ошибок см. раздел Устранение неполадок.