Вы можете обновить предыдущую версию 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-руководства в следующей таблице.

Версия Руководство по установке и обновлению (PDF)
8.3 Руководство по установке и обновлению для версии 8.3
6.4 Руководство по установке и обновлению для версии 6.4
6.3 Руководство по установке и обновлению для версии 6.3
6.2 Руководство по установке и обновлению для версии 6.2
6.1 Руководство по установке и обновлению для версии 6.1
6.0.1 Руководство по установке и обновлению для версии 6.0.1
6.0 Руководство по установке и обновлению для версии 6.0

Обновление SaltStack Config

Чтобы обновить SaltStack Config, выполните следующие задачи в указанном порядке.
  • Создание резервной копии данных, включая определенные файлы и каталоги, которые необходимы для конкретной установки SaltStack Config
  • Обновление PostgreSQL (необязательно, но рекомендуется)
  • Обновление инфраструктуры Salt (необязательно, но рекомендуется)
  • Загрузка файлов обновления
  • Обновление узла RaaS
  • Обновление всех главных серверов Salt, на которых используется подключаемый модуль Master

Дополнительные сведения об обновлении SaltStack Config при помощи Lifecyle Manager см. в разделе Обновление vRealize Automation SaltStack Config в документации по Lifecyle Manager.

Резервное копирование файлов и каталогов SaltStack Config

Следующие файлы и каталоги содержат настраиваемые конфигурации SaltStack Config, и перед модернизацией для них нужно создать резервные копии.

  1. На узле RaaS создайте полные резервные копии следующих каталогов.
    • /etc/raas/raas
    • /etc/raas/raas.secconf
    • /var/log/raas
    • /etc/raas/pki/
    Примечание:

    Каталог pki содержит скрытые файлы, поэтому необходимо убедиться, что создается резервная копия всего содержимого каталога. Выполнять резервное копирование файлов журнала в каталоге /var/log/raas необязательно. В ходе модернизации файлы журнала очищаются в целях устранения неполадок, если таковые возникнут.

  2. На каждом главном сервере 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, а затем скопировать содержимое.

  1. На сервере PostgreSQL создайте резервную копию следующих файлов.
    • postgresql.conf
    • pg_hba.conf
  2. Войдите в качестве пользователя postgres с помощью следующей команды.
    sudo su - postgres
  3. Получите имя базы данных, используя следующие команды для входа в PostgreSQL и получения списка баз данных.
    psql
    \l
  4. Чтобы закрыть PostgreSQL и выйти из учетной записи пользователя postgres, нажмите CTRL+D и выполните следующую команду.
    exit
  5. Скопируйте содержимое базы данных в файл. Ниже приведен пример команды.
    pg_dump -U salteapi raas_db_name > postgres_raas_backup_$(date +%Y-%m-%d).sql

Обновление базы данных PostgreSQL

Для SaltStack Config требуется база данных PostgreSQL 9.6, но рекомендуется использовать PostgreSQL 13.7. Рекомендуемая версия PostgreSQL поставляется вместе с установщиком SaltStack Config.

Обновление до последней версии PostgreSQL не требуется. Однако обновление PostgreSQL может положительно повлиять на производительность. Процедуру обновления до последней версии PostgreSQL см. в разделе Обновление PostgreSQL.

Обновление базы данных Redis

Для SaltStack Config требуется база данных Redis 5.x, но рекомендуется использовать Redis 6.2.7. Рекомендуемая версия Redis поставляется вместе с установщиком SaltStack Config.

Обновление до последней версии Redis 5.x не требуется. Однако обновление Redis может положительно повлиять на производительность. Процедуру обновления Redis см. в разделе Администрирование Redis.

Модернизация Salt

При модернизации Salt сначала необходимо модернизировать главные серверы. Если на служебных серверах применяются более новые версии Salt, чем версии на их главных серверах, то они могут работать некорректно, так как служебный сервер может содержать изменения, которые еще не доступны на главном сервере. Кроме того, если это возможно, сохраняется обратная совместимость между новыми главными и старыми служебными серверами. Как правило, единственным исключением для этой политики является уязвимость системы безопасности.

Для обеспечения оптимальной производительности убедитесь, что на всех компонентах Salt в инфраструктуре установлена последняя основная версия Salt.

Важно!: В версиях Salt 3005 и 3005.1 используется пакет установки Onedir, который не поддерживается SaltStack Config или не совместим с ней. Для Salt 3005 или 3005.1 с  SaltStack Config используйте только классические пакеты установки. Дополнительные сведения о Salt версий 3005 и 3005.1 и Onedir см. в статье базы знаний № 89728.

Сведения о модернизации пакета Salt Crystal см. в разделе Модернизация Salt Crystal.

Совет: Отсутствие возможности регулярно обновлять Salt через Интернет может привести к проблемам в работе сети, если она не изолирована физически. Поэтому настоятельно рекомендуем установить Salt заранее и не использовать пакет Salt Crystal.

Обновление узла RaaS

После обновления PostgreSQL, Redis и Salt до последней версии можно обновить узел RaaS с предыдущей версии до последней.

Примечание: При обновлении базы данных требуется переиндексация данных. Если структура данных является сложной, процесс обновления базы данных может занять несколько часов.
Важно!:

Перед обновлением узла RaaS необходимо создать резервную копию системных данных, чтобы предотвратить их потерю. Чтобы сохранить конфигурацию, сохраните все изменения, внесенные в файловую систему по умолчанию, данные хранилища pillar и задания в виде новых файлов или заданий. Также необходимо записать или скопировать все существующие назначения целевых объектов хранилища pillar, так как они будут удалены в процессе обновления.

Чтобы обновить узел RaaS, выполните следующие действия.

  1. Загрузите файлы обновления с веб-сайта Customer Connect.
  2. Остановите службу RaaS с помощью следующей команды.
    sudo systemctl stop raas
  3. Удалите файлы журнала в каталоге /var/log/raas. Очищенные файлы журнала могут потребоваться в целях устранения неполадок, если таковые возникнут.
  4. Удалите текущую установленную версию API-интерфейса (RaaS) с помощью следующей команды.
    sudo yum remove raas
  5. Обновите узел RaaS путем установки последней версии RPM. Используйте следующий пример команды, указав точное имя файла RPM.
    sudo yum install raas-rpm-file-name.rpm
  6. ВНИМАНИЕ! Восстановите резервную копию следующих файлов:
    • /etc/raas/raas
    • /etc/raas/raas.secconf
    • /etc/raas/pki/
  7. Обновите разрешения для пользователя raas с помощью следующей команды.
    sudo chown -R raas:raas /etc/pki/raas/certs
  8. Если у вас есть лицензия 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 применимы к этим дополнительным модулям.

  9. Если у вас есть лицензия 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 применимы к этим дополнительным модулям.

  10. В настоящее время в RaaS существует проблема, связанная с устаревшими заданиями. При обновлении некоторые пользователи могут заметить очередь устаревших заданий, которые «застряли» в ней в ожидающем состоянии. Обновление узла RaaS может привести к запуску таких заданий, если их заранее не удалить.

    Для предотвращения такой ситуации сначала проверьте базу данных на наличие старых команд. На узле PostgreSQL проверьте наличие ожидающих заданий, используя следующую команду.

    select count(1) from commands where state='new';

    Вы получите количество ожидающих заданий. Если количество заданий равно 0, продолжайте выполнять процесс обновления.

  11. Обновите базу данных службы RaaS, используя следующую команду.
    sudo su - raas
    raas upgrade
    Примечание:

    В зависимости от размера базы данных, процесс модернизации может занять от нескольких минут до часа. При обнаружении ошибок проверьте файл журнала /var/log/raas/raas для получения дополнительных сведений.

  12. После обновления выйдите из сеанса пользователя raas с помощью следующей команды.
    exit
  13. Запустите службу RaaS с помощью следующей команды.
    sudo systemctl enable raas
    sudo systemctl start raas

Обновление подключаемого модуля Master через пользовательский интерфейс SaltStack Config

Примечание: Этот компонент поддерживается для SaltStack Config версии 8.11.2 и более поздней. Для более ранних версий необходимо сначала обновить подключаемый модуль Master до версии 8.11.2 или более поздней, используя интерфейс командной строки.
Примечание: Главный сервер Salt должен быть запущен от имени пользователя root.

SaltStack Config автоматически обновляет подключаемый модуль Master до последней версии. Никакие действия пользователя не требуются.

При этом подключаемый модуль Master также можно обновить через пользовательский интерфейс SaltStack Config. Чтобы обновить подключаемый модуль Master, в SaltStack Config выберите Администрирование а затем щелкните Подключаемые модули Master. На вкладке подключаемого модуля Master отображаются сведения о его версии и среде SaltStack Config, а также список идентификаторов подключаемых модулей Master. На вкладке «Подключаемые модули Master» выберите модули для обновления и щелкните Обновить.

Обновление подключаемого модуля Master через интерфейс командной строки

После успешного обновления узла RaaS можно обновить любые главные серверы Salt, на которых используется подключаемый модуль Master для подключения к SaltStack Config.

Примечание:

Перед обновлением главных серверов Salt убедитесь, что на них установлено приложение pip3. Если обновление выполняется с последней версии подключаемого модуля Master, это означает, что данное приложение уже установлено.

Чтобы обновить подключаемый модуль Master на главном сервере Salt, выполните следующие действия.

  1. Остановите службу salt-master с помощью следующей команды.
    sudo systemctl stop salt-master
  2. Проверьте версию 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*
  3. Обновите подключаемый модуль 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 в соответствии с операционной системой.

  4. Обновите пути модулей API-интерфейса (RaaS) путем редактирования файла /etc/salt/master.d/eAPIMasterPaths.conf, чтобы он ссылался на пути на различные модули. Например, все ссылки python2.7 в этом файле можно изменить на python3.6.
    Примечание:

    При некоторых способах первоначальной установки системы SaltStack Config пути к главному серверу Salt в eAPI указываются в файле /etc/salt/master.d/raas.conf.

  5. Проверьте раздел 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.

  6. Если используется проверка подлинности с помощью ключа 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:
  7. Убедитесь, что для записей master_job_cache и event_return установлено значение в sseapi. Модуль возврата pgjsonb больше не доступен.
  8. Запустите службу salt-master с помощью следующей команды.
    sudo systemctl start salt-master

Процесс обновления завершен. В случае возникновения других ошибок см. раздел Устранение неполадок.