Согласование ключей служб и повторное развертывание

Согласование ключей служб и повторное развертывание#

Platform Gateway подписывает запросы к Automation Controller, Private Automation Hub и контроллеру Event-Driven Automation ключами служб (service keys). Шлюз хранит активные ключи в своей базе данных, а компоненты – в секретах Podman controller_resource_server, hub_resource_server и eda_resource_server. После восстановления базы шлюза в ней находятся ключи исходной платформы, а в секретах компонентов – ключи, созданные при первом развертывании. Пока ключи не совпадают, шлюз не может обращаться к компонентам.

Выполняйте команды на узле целевой платформы после восстановления баз данных.

Замена ключей служб#

Для замены ключей служб выполните следующие действия:

  1. Прочитайте активные ключи служб из восстановленной базы шлюза и сохраните их в каталоге, ограничив доступ к ним:

    umask 077
    mkdir -p ~/migration-keys
    
    for cluster in controller hub eda; do
      podman exec postgresql psql -U postgres -d automationgateway -Atc "
        SELECT sk.secret
        FROM aap_gateway_api_servicekey sk
        JOIN aap_gateway_api_servicecluster sc ON sc.id = sk.service_cluster_id
        WHERE sk.is_active AND sc.name = '$cluster'
        LIMIT 1" | tr -d '\r\n' > ~/migration-keys/$cluster
      test -s ~/migration-keys/$cluster || echo "$cluster: key not found"
    done
    

    Команда не выводит ничего, если нашла ключи всех трех служб.

  2. Замените секреты с ключами. Команды удаляют контейнеры, которые используют эти секреты, так как Podman не позволяет удалить используемый секрет. Утилита развертывания создаст эти контейнеры заново на следующем шаге.

    podman ps -a --format '{{.Names}}' | grep -E '^automation-(controller|hub|eda)-' | xargs -r podman rm -f
    
    for cluster in controller hub eda; do
      podman secret rm ${cluster}_resource_server
      podman secret create ${cluster}_resource_server ~/migration-keys/$cluster
    done
    
  3. Удалите сохраненные ключи:

    rm -rf ~/migration-keys
    

Повторное развертывание#

В каталоге /opt/rbta/aa/astra-automation-setup/ повторно запустите развертывание с тем же описанием инвентаря:

sudo ./aa-setup --containerized \
  --inventory=</path/to/inventory> \
  -- --extra-vars @$HOME/migration-export/migration-preseed-secrets.yml

Утилита развертывания создает заново удаленные контейнеры, выполняет миграции схем баз данных и регистрирует в шлюзе службы целевого узла.

Развертывание считается успешным, если для всех узлов в поле failed указано значение 0.