Automation Config を以前のバージョンから最新の安定したバージョンにアップグレードできます。

アップグレードするときのベスト プラクティス

アップグレードの計画時には、以下のガイドラインに従ってください。

  • [インストーラまたは手動のインストール手順を使用してアップグレードしない。]Automation Config インストールをアップグレードする場合は、次のアップグレード手順を参照してください。
  • [最適な結果を得るために、1 つのメジャー リリースから次のメジャー リリースに順番にアップグレードする。]ベスト プラクティスとして、必ず Automation Config の最新のメジャー バージョンから新しいリリースにアップグレードしてください。古いリリースを使用している場合は、1 つのリリースから次のリリースに順番にアップグレードします。
  • [データをバックアップする。]データの損失を防ぐために、データをバックアップします。
  • [ネットワーク アクティビティが低い時間帯にアップグレードを実行する。]データベースのアップグレードには、データの再インデックス化が必要です。データの複雑さによっては、データベースのアップグレードに数時間かかる場合があります。サービスの中断を防ぐには、ビジネス活動が低下する時間帯にデータベースをアップグレードするか、アップグレードの前にデータベースをトリミングしてください。
  • [データベースに古いコマンドが保存されているかどうかを確認する。]PostgreSQL データベースには、実行されていない古いコマンドが保存されている場合があります。これらのコマンドは、アップグレード中に、マスター プラグインを再起動するときに実行される場合があります。この問題を回避するには、データベースに古いコマンドが保存されているかどうかを確認し、定義された時間より古いジョブのスキップを有効にします。
  • [展開前にアップグレードをテストする。]可能であれば、テスト環境でリハーサルを実行してみることで、アップグレードにかかる時間を把握できます。
  • [まず、ガイドを通読する。]アップグレードの実装前に、このガイドを 1 度通読することも検討してください。必要なタスクの理解、チームでの計画の必要性、関係者への保留中の変更についての通知の必要性などを判断できます。

古いバージョンからのアップグレード

ベスト プラクティスとして、必ず Automation Config の最新のメジャー バージョンから新しいリリースにアップグレードしてください。最新リリースよりも前のバージョンからアップグレードする場合は、1 つのメジャー リリースから次のメジャー リリースに順番にアップグレードすることで最適な結果が得られる場合があります。

以前のバージョンの Automation Config にアップグレードする手順については、アップグレード元のリリースに固有のアップグレード手順を参照してください。以前のリリースのアップグレード手順は、以降のリリースのインストール ガイド PDF に記載されています。たとえば、5.5 から 6.0 にアップグレードする必要がある場合は、6.0 のインストール PDF に記載されているアップグレード手順を参照してください。

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 マスターをアップグレードする

Aria Suite Lifecycle を使用した Config のアップグレードの詳細については、LCM ドキュメントのAutomation Config のアップグレードを参照してください。

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 を最初にインストールした方法によっては、eAPI Salt マスター パスが代わりに /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 upgradeを参照してください。

Redis データベースのアップグレード

Automation Config では Redis 5.x データベースが必須ですが、Redis 6.2.7 が推奨されます。推奨されるバージョンの Redis は、Automation Config インストーラに含まれています。

Redis 5.x の最新バージョンへのアップグレードは必須ではありません。ただし、Redis をアップグレードすると、パフォーマンスが向上する可能性があります。Redis のアップグレードの手順については、Redis Administrationを参照してください。

Salt のアップグレード

Salt をアップグレードする場合は、最初にマスターをアップグレードする必要があります。マスターよりも新しいバージョンの Salt でミニオンを実行すると、ミニオンにマスターでまだ使用できない変更が含まれる可能性があるため、予期したとおりに機能しない場合があります。また、可能な限り、新しいマスターと古いミニオン間の後方互換性は保持されます。一般的に、このポリシーに対する例外はセキュリティに脆弱性がある場合のみです。

パフォーマンスの最適化のために、インフラストラクチャ内のすべての Salt コンポーネントが Salt の最新のメジャー バージョン上で実行されるようにします。

Salt 3006 のリリース以降、Salt Project は onedir パッケージ システムを使用します。onedir は、Python などの Salt の付属物を含め、Salt が必要とするすべての実行可能ファイルを含む「1 つのディレクトリ」を表します。onedir では、特別な設定をせずに Salt を使用できます。
重要: Salt Project では、Salt バージョンのアップデートを継続して受け取るために onedir へのアップグレードを強く推奨しています。Salt バージョン 3006 では、アップグレードには onedir パッケージのみが利用可能です。Salt バージョンおよび onedir の詳細については、ナレッジベースの記事 KB89728 を参照してください。
注: Salt Crystal インストーラ パッケージの使用は廃止されました。今後のインストールでは、onedir インストーラ パッケージの使用を推奨します。

[必須:]ブラウンフィールド/アップグレード デプロイの場合、Salt 3006 以降では、Salt マスターは従来の「root ユーザー」ではなくユーザー「salt」として実行するように構成されています。その結果、ミニオンの展開や RaaS マスター プラグインのアップグレードなど、RaaS 関連のワークフローで権限エラーが発生する可能性があります。

これを解決するには、/etc/salt/master.d/raas.conf ファイルを修正して、ユーザーを root: user: root に変更します。

新しいグリーンフィールド展開の場合、sseapi-config コマンドでマスター プラグインが構成され、適切な user: root 構成値を持つ raas.conf ファイルが生成されます。ユーザー アクションは必要ありません。

RaaS ノードのアップグレード

PostgreSQL、Redis、および Salt を最新バージョンにアップグレードしたら、RaaS ノードを以前のバージョンから最新バージョンにアップグレードできます。

注: データベースのアップグレードには、データの再インデックス化が必要です。データが複雑な場合、データベースのアップグレードに数時間かかる場合があります。
重要:

RaaS ノードをアップグレードする前に、データの損失を回避するために、[システム データをバックアップする必要があります]。セットアップを保存するには、デフォルトのファイル システム、ピラー データ、およびジョブに加えた変更を、新しいファイルまたはジョブとして保存します。また、すべての既存のピラー ターゲット割り当てのコピーは、アップグレード プロセスで削除されるため、コピーを記録または作成する必要があります。

RaaS ノードをアップグレードするには、次の手順に従います。

  1. Customer Connect からアップグレード ファイルをダウンロードします。
  2. 次のコマンドを使用して、RaaS サービスを停止します。
    sudo systemctl stop raas
  3. /var/log/raas ディレクトリのログ ファイルを削除します。ログ ファイルをクリアしておくと、トラブルシューティングが必要になった場合に、クリーンなログ ファイルを取得できます。
  4. 次のコマンドを使用して、現在インストールされているバージョンの API (RaaS) を削除します。
    sudo yum remove raas
  5. 最新の RPM をインストールして、RaaS ノードをアップグレードします。次のコマンド例を、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
    注:

    データベースのサイズによっては、アップグレードに数分から 1 時間以上かかることがあります。エラーが発生した場合は、/var/log/raas/raas ログ ファイルで詳細を確認します。

  12. アップグレード後、次のコマンドを使用して、raas ユーザーのセッションを終了します。
    exit
  13. 次のコマンドを使用して、RaaS サービスを開始します。
    sudo systemctl enable raas
    sudo systemctl start raas

Automation Config ユーザー インターフェイスを使用したマスター プラグインのアップグレード

注: この機能は、 Automation Config バージョン 8.11.2 以降でサポートされています。以前のバージョンの場合は、最初に CLI を使用してマスター プラグインをバージョン 8.11.2 以降にアップグレードする必要があります。
注: Salt マスターは root として実行する必要があります。

Automation Config は、ユーザーによるアクションは必要とせず、マスター プラグインを自動的に最新バージョンにアップグレードします。

ただし、Automation Config ユーザー インターフェイスからマスター プラグインをアップグレードすることもできます。マスター プラグインをアップグレードするには、Automation Config から [管理] を選択し、[マスター プラグイン] をクリックします。[マスター プラグイン] タブには、使用しているプラグインのバージョンと Automation Config 環境が、マスター プラグイン ID のリストと併せて表示されます。[マスター プラグイン] タブから、更新するマスター プラグインを選択し、[更新] をクリックします。

CLI を使用したマスター プラグインのアップグレード

RaaS ノードが正常にアップグレードされたら、Automation Config への接続にマスター プラグインを使用する Salt マスターをアップグレードできます。

デフォルトの構成ファイルを生成し、既存の構成から保持する設定を適用して、マスター プラグイン構成を更新することを推奨します。例:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf
重要: onedir を使用して Salt をインストールした場合、この実行可能ファイルへのパスは次のようになります: /opt/saltstack/salt/extras-3.10/bin/sseapi-config

8.13.0 リリース以降、マスター プラグインには tgtmatch エンジンが含まれています。これにより、RaaS サーバから Salt マスターに対するターゲット グループ一致がオフロードされるようになりました。ターゲット グループの一致の応答性を向上させるために、特に次の環境で tgtmatch エンジンを有効にして構成することを推奨します。

  • 多数のターゲット グループ(100 以上)
  • 多数のミニオン(3,000 以上)
  • ミニオン グレインへの頻繁な変更(1 日 1 回以上)
  • ミニオンの頻繁な作成と削除(1 日 1 回以上)
tgtmatch エンジンを構成するには、以下の設定がマスター プラグイン構成ファイル (/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
ターゲット一致データが Salt マスターによって提供されるように RaaS を構成するには、RaaS 構成ファイル (/etc/raas/raas) に以下の設定があることを確認します。
target_groups_from_master_only: true
注:

Salt マスターをアップグレードする前に、Salt マスターに pip3 アプリケーションがインストールされていることを確認してください。マスター プラグインの最新バージョンからアップグレードした場合、このアプリケーションはすでにインストールされています。

Salt マスターでマスター プラグインをアップグレードするには、次の手順に従います。

  1. 次のコマンドを使用して、salt-master サービスを停止します。
    sudo systemctl stop salt-master
  2. Salt マスターで実行されている Python のバージョンを確認します。Python 3.6 以降が実行されている場合は、変更の必要はありません。そうでない場合は、SSEAPE モジュールの以前のバージョンを削除します。(SSEAPE は、Salt マスターの Automation Config プラグインです。)例:

    RHEL/CentOS

    sudo rm -rf /usr/lib/python3.6/site-packages/SSEAPE*

    Ubuntu

    sudo rm /usr/lib/python3.6/dist-packages/SSEAPE*
  3. 更新された Python wheel を手動でアンインストールしてから再度インストールして、マスター プラグインをアップグレードします。次のコマンド例を、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. さまざまなモジュールへのパスを参照するように、/etc/salt/master.d/eAPIMasterPaths.conf ファイルを編集して API (RaaS) モジュールのパスを更新します。たとえば、このファイル内のすべての python2.7 の参照を python3.6 に変更します。
    注:

    Automation Config を最初にインストールした方法によっては、eAPI Salt マスター パスが代わりに /etc/salt/master.d/raas.conf ファイル内に記述されている場合があります。

  5. /etc/salt/master.d/raas.confengines セクションを調べて、以下と一致することを確認します。
    engines:
      - sseapi: {}
      - eventqueue: {}
      - rpcqueue: {}
      - jobcompletion: {}
      - keyauth: {}
    注:

    問題が発生した場合は、/etc/salt/master.d/raas.conf ファイルおよび /etc/salt/master.d/eAPIMasterPaths.conf ファイルのバックアップの復旧が必要になることがあります。

  6. Salt マスター キー認証(推奨)を使用している場合は、sseapi_pubkey_path が構成されていること、および sseapi_usernamesseapi_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 マスターがユーザー「salt」ではなくユーザー「root」として実行されていることを確認します。そうでない場合は、/etc/salt/master.d/raas.conf ファイルを修正して、ユーザーを root: user: root に変更します。

これで、アップグレード プロセスが完了しました。その他のエラーが発生した場合は、トラブルシューティングを参照してください。