SaltStack Config を以前のバージョンから最新の安定したバージョンにアップグレードできます。
アップグレードするときのベスト プラクティス
アップグレードの計画時には、以下のガイドラインに従ってください。
- [インストーラまたは手動のインストール手順を使用してアップグレードしない。]SaltStack Config インストールをアップグレードする場合は、次のアップグレード手順を参照してください。
- [最適な結果を得るために、1 つのメジャー リリースから次のメジャー リリースに順番にアップグレードする。]ベスト プラクティスとして、必ず SaltStack Config の最新のメジャー バージョンから新しいリリースにアップグレードしてください。古いリリースを使用している場合は、1 つのリリースから次のリリースに順番にアップグレードします。
- [データをバックアップする。]データの損失を防ぐために、データをバックアップします。
- [ネットワーク アクティビティが低い時間帯にアップグレードを実行する。]データベースのアップグレードには、データの再インデックス化が必要です。データの複雑さによっては、データベースのアップグレードに数時間かかる場合があります。サービスの中断を防ぐには、ビジネス活動が低下する時間帯にデータベースをアップグレードするか、アップグレードの前にデータベースをトリミングしてください。
- [データベースに古いコマンドが保存されているかどうかを確認する。]PostgreSQL データベースには、実行されていない古いコマンドが保存されている場合があります。これらのコマンドは、アップグレード中に、マスター プラグインを再起動するときに実行される場合があります。この問題を回避するには、データベースに古いコマンドが保存されているかどうかを確認し、定義された時間より古いジョブのスキップを有効にします。
- [展開前にアップグレードをテストする。]可能であれば、テスト環境でリハーサルを実行してみることで、アップグレードにかかる時間を把握できます。
- [まず、ガイドを通読する。]アップグレードの実装前に、このガイドを 1 度通読することも検討してください。必要なタスクの理解、チームでの計画の必要性、関係者への保留中の変更についての通知の必要性などを判断できます。
古いバージョンからのアップグレード
ベスト プラクティスとして、必ず SaltStack Config の最新のメジャー バージョンから新しいリリースにアップグレードしてください。最新リリースよりも前のバージョンからアップグレードする場合は、1 つのメジャー リリースから次のメジャー リリースに順番にアップグレードすることで最適な結果が得られる場合があります。
以前のバージョンの SaltStack Config にアップグレードする手順については、アップグレード元のリリースに固有のアップグレード手順を参照してください。以前のリリースのアップグレード手順は、以降のリリースのインストール ガイド PDF に記載されています。たとえば、5.5 から 6.0 にアップグレードする必要がある場合は、6.0 のインストール PDF に記載されているアップグレード手順を参照してください。
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 の特定のインストールに不可欠な特定のファイルやディレクトリなどのデータをバックアップする
- PostgreSQL をアップグレードする(オプション、推奨)
- Salt インフラストラクチャをアップグレードする(オプション、推奨)
- アップグレード ファイルをダウンロードする
- RaaS ノードのアップグレード
- マスター プラグインを使用してすべての Salt マスターをアップグレードする
Lifecyle Manager を使用した SSC のアップグレードの詳細については、LCM ドキュメントのvRealize Automation SaltStack Config のアップグレードを参照してください。
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 を最初にインストールした方法によっては、eAPI Salt マスター パスが代わりに
/etc/salt/master.d/raas.conf
ファイル内に記述されている場合があります。
データベース スキーマのバックアップ
RaaS ノードをアップグレードすると、データベース スキーマが更新されます。このため、アップグレードの前には必ずデータベースのバックアップを作成してください。
データベースをバックアップするには、PostgreSQL データベース名を調べてから、その内容をコピーする必要があります。
- PostgreSQL サーバで、次のファイルをバックアップします。
postgresql.conf
pg_hba.conf
- 次のコマンドを使用して、
postgres
ユーザーとしてログインします。sudo su - postgres
- データベース名を確認します。次のコマンドを使用して、PostgreSQL に入り、データベースのリストを取得します。
psql \l
- PostgreSQL を終了して
postgres
ユーザーとしてログアウトするために、Ctrl+D キーを押してから次のコマンドを実行します。exit
- データベースの内容をファイルにコピーします。次のコマンドで例を示します。
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 upgradeを参照してください。
Redis データベースのアップグレード
SaltStack Config では Redis 5.x データベースが必須ですが、Redis 6.2.7 が推奨されます。推奨されるバージョンの Redis は、SaltStack Config インストーラに含まれています。
Redis 5.x の最新バージョンへのアップグレードは必須ではありません。ただし、Redis をアップグレードすると、パフォーマンスが向上する可能性があります。Redis のアップグレードの手順については、Redis Administrationを参照してください。
Salt のアップグレード
Salt をアップグレードする場合は、最初にマスターをアップグレードする必要があります。マスターよりも新しいバージョンの Salt でミニオンを実行すると、ミニオンにマスターでまだ使用できない変更が含まれる可能性があるため、予期したとおりに機能しない場合があります。また、可能な限り、新しいマスターと古いミニオン間の後方互換性は保持されます。一般的に、このポリシーに対する例外はセキュリティに脆弱性がある場合のみです。
パフォーマンスの最適化のために、インフラストラクチャ内のすべての Salt コンポーネントが Salt の最新のメジャー バージョン上で実行されるようにします。
Salt Crystal パッケージのアップグレードの手順については、How to Upgrade Salt Crystalを参照してください。
RaaS ノードのアップグレード
PostgreSQL、Redis、および Salt を最新バージョンにアップグレードしたら、RaaS ノードを以前のバージョンから最新バージョンにアップグレードできます。
RaaS ノードをアップグレードする前に、データの損失を回避するために、[システム データをバックアップする必要があります]。セットアップを保存するには、デフォルトのファイル システム、ピラー データ、およびジョブに加えた変更を、新しいファイルまたはジョブとして保存します。また、すべての既存のピラー ターゲット割り当てのコピーは、アップグレード プロセスで削除されるため、コピーを記録または作成する必要があります。
RaaS ノードをアップグレードするには、次の手順に従います。
- Customer Connect からアップグレード ファイルをダウンロードします。
- 次のコマンドを使用して、RaaS サービスを停止します。
sudo systemctl stop raas
/var/log/raas
ディレクトリのログ ファイルを削除します。ログ ファイルをクリアしておくと、トラブルシューティングが必要になった場合に、クリーンなログ ファイルを取得できます。- 次のコマンドを使用して、現在インストールされているバージョンの API (RaaS) を削除します。
sudo yum remove raas
- 最新の RPM をインストールして、RaaS ノードをアップグレードします。次のコマンド例を、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
注:データベースのサイズによっては、アップグレードに数分から 1 時間以上かかることがあります。エラーが発生した場合は、
/var/log/raas/raas
ログ ファイルで詳細を確認します。 - アップグレード後、次のコマンドを使用して、
raas
ユーザーのセッションを終了します。exit
- 次のコマンドを使用して、RaaS サービスを開始します。
sudo systemctl enable raas sudo systemctl start raas
SaltStack Config ユーザー インターフェイスを使用したマスター プラグインのアップグレード
SaltStack Config は、ユーザーによるアクションは必要とせず、マスター プラグインを自動的に最新バージョンにアップグレードします。
ただし、SaltStack Config ユーザー インターフェイスからマスター プラグインをアップグレードすることもできます。マスター プラグインをアップグレードするには、SaltStack Config から [管理] を選択し、[マスター プラグイン] をクリックします。[マスター プラグイン] タブには、使用しているプラグインのバージョンと SaltStack Config 環境が、マスター プラグイン ID のリストと併せて表示されます。[マスター プラグイン] タブから、更新するマスター プラグインを選択し、[更新] をクリックします。
CLI を使用したマスター プラグインのアップグレード
RaaS ノードが正常にアップグレードされたら、SaltStack Config への接続にマスター プラグインを使用する Salt マスターをアップグレードできます。
Salt マスターをアップグレードする前に、Salt マスターに pip3 アプリケーションがインストールされていることを確認してください。マスター プラグインの最新バージョンからアップグレードした場合、このアプリケーションはすでにインストールされています。
Salt マスターでマスター プラグインをアップグレードするには、次の手順に従います。
- 次のコマンドを使用して、
salt-master
サービスを停止します。sudo systemctl stop salt-master
- Salt マスターで実行されている Python のバージョンを確認します。Python 3.6 以降が実行されている場合は、変更の必要はありません。そうでない場合は、SSEAPE モジュールの以前のバージョンを削除します。(SSEAPE は、Salt マスターの SaltStack Config プラグインです。)例:
RHEL/CentOS
sudo rm -rf /usr/lib/python3.6/site-packages/SSEAPE*
Ubuntu
sudo rm /usr/lib/python3.6/dist-packages/SSEAPE*
- 更新された Python wheel を手動でインストールして、マスター プラグインをアップグレードします。次のコマンド例を、wheel ファイルの実際の名前に置き換えて使用してください。
RHEL/CentOS
sudo pip3 install SSEAPE-file-name.whl --prefix /usr
Ubuntu
sudo pip3 install SSEAPE-file-name.whl
注:一部のユーザーは、オペレーティング システムに合わせて、構文を
pip3.6
またはpip36
に変更する必要があります。 - さまざまなモジュールへのパスを参照するように、
/etc/salt/master.d/eAPIMasterPaths.conf
ファイルを編集して API (RaaS) モジュールのパスを更新します。たとえば、このファイル内のすべてのpython2.7
の参照をpython3.6
に変更します。注:SaltStack Config を最初にインストールした方法によっては、eAPI Salt マスター パスが代わりに
/etc/salt/master.d/raas.conf
ファイル内に記述されている場合があります。 /etc/salt/master.d/raas.conf
のengines
セクションを調べて、以下と一致することを確認します。engines: - sseapi: {} - eventqueue: {} - rpcqueue: {} - jobcompletion: {} - keyauth: {}
注:問題が発生した場合は、
/etc/salt/master.d/raas.conf
ファイルおよび/etc/salt/master.d/eAPIMasterPaths.conf
ファイルのバックアップの復旧が必要になることがあります。- Salt マスター キー認証(推奨)を使用している場合は、
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
これで、アップグレード プロセスが完了しました。その他のエラーが発生した場合は、トラブルシューティングを参照してください。