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

Версия Руководство по установке и обновлению (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

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

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

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

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

Следующие файлы и каталоги содержат настраиваемые конфигурации Automation 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.
    Примечание:

    При некоторых способах первоначальной установки системы Automation 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

Для 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 используется система обработки пакетов Onedir. Onedir означает «один каталог» (one directory), так как он содержит все исполняемые файлы, необходимые для Salt, включая Python и другие зависимости Salt. Onedir позволяет сразу использовать Salt без дополнительной настройки.
Важно!: Применительно к проекту Salt настоятельно рекомендуется выполнить модернизацию до onedir, чтобы продолжать получать обновления версии Salt. Начиная с версии Salt 3006, для модернизации будут доступны только пакеты onedir. Дополнительные сведения о версиях Salt и Onedir см. в статье базы знаний № 89728.
Примечание: Пакет установки Salt Crystal больше не поддерживается, поэтому в дальнейшем рекомендуется использовать пакет установки Onedir.

Обязательно:при развертывании на базе существующих решений и развертывании обновлений, начиная с версии 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, выполните следующие действия.

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

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

  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 через пользовательский интерфейс Automation Config

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

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

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

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

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

Конфигурацию подключаемого модуля Master рекомендуется обновить путем создания файла конфигурации по умолчанию и применения всех параметров из существующей конфигурации, которые необходимо сохранить. Например:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf
Важно!: Если система Salt установлена с помощью Onedir, путь к исполняемому файлу следующий: /opt/saltstack/salt/extras-3.10/bin/sseapi-config.

Начиная с выпуска 8.13.0, подключаемый модуль Master содержит модуль tgtmatch, который передает процесс сопоставления целевой группы с сервера RaaS на главные серверы Salt. Этот модуль tgtmatch рекомендуется включить и настроить, чтобы процесс сопоставления целевой группы мог обеспечивать более информативный отклик, особенно в средах со следующими особенностями:

  • Большое количество целевых групп (100 или больше)
  • Большое количество служебных серверов (3000 или больше)
  • Частое изменение параметров grains на служебных серверах (ежедневно или чаще)
  • Частое создание и удаление служебных серверов (ежедневно или чаще)
Чтобы настроить модуль tgtmatch, убедитесь в наличии этих параметров в файле конфигурации подключаемого модуля Master (/etc/salt/master.d/raas.conf)
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
Чтобы настроить RaaS на возможность передачи данных о сопоставлении целевых объектов с главных серверов Salt, убедитесь в наличии следующего параметра в файле конфигурации RaaS (/etc/raas/raas/raas).
target_groups_from_master_only: true
Примечание:

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

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

  1. Остановите службу salt-master с помощью следующей команды.
    sudo systemctl stop salt-master
  2. Проверьте версию 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*
  3. Обновите подключаемый модуль 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
  4. Обновите пути модулей API-интерфейса (RaaS) путем редактирования файла /etc/salt/master.d/eAPIMasterPaths.conf, чтобы он ссылался на пути на различные модули. Например, все ссылки python2.7 в этом файле можно изменить на python3.6.
    Примечание:

    При некоторых способах первоначальной установки системы Automation 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
  9. Убедитесь, что главный сервер Salt работает от имени пользователя root, а не пользователя Salt. В противном случае в файле /etc/salt/master.d/raas.conf измените пользователя на пользователя root: user: root.

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