9 Oracle Linux Automation Managerのアップグレードと移行
次の章では、Oracle Linux Automation Managerのアップグレード手順について説明します。信頼性の向上と容量の拡張が必要な場合は、単一のハイブリッド設定からクラスタ設定に移行することもできます。
バージョン16へのデータベースのアップグレード
データベースをバージョン16にアップグレードするには:
- Oracle Linux Automation Manager 2.2ノードごとに、ターミナルにサインインします。
- Oracle Linux Automation Managerを停止します。
sudo systemctl stop ol-automation-manager
- データベースをホストしているローカルまたはリモートのユーザー・アカウントにログインします。
sudo su - postgres
- 次のコマンドを使用してデータベースをエクスポートします。このコマンドは、データベースのリストアに必要なすべてのSQLコマンドと入力データを含むスクリプト・ファイルを作成します。たとえば、次のコマンドは、選択したバックアップ・ディレクトリに
olam.dump
ファイルを作成します。pg_dumpall > /var/tmp/olam.dump
- データベースをホストしているユーザー・アカウントを終了します。
exit
- データベース・サーバーを停止します:
sudo systemctl stop postgresql
- 既存のデータベース・データ・ディレクトリを削除(およびオプションでバックアップ)します。たとえば、次のコマンドはホーム・ディレクトリのバックアップ・ファイルを削除して作成します:
sudo mv /var/lib/pgsql/data/ ~/data.old
- 現在のバージョンのデータベースを削除します。
sudo dnf remove postgresql
postgresql 16
モジュール・ストリームを有効にします。sudo dnf module reset postgresql sudo dnf module enable postgresql:16
ノート:
Postgresql 16のライフサイクルの詳細は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』のストリーム・モジュールのアプリケーション・ライフサイクルについて説明している付録を参照してください。- データベースをインストールします。
sudo dnf install postgresql-server
- データベースを初期化します:
sudo postgresql-setup --initdb
/var/lib/pgsql/data/postgresql.conf
ファイルで、パスワードのストレージ方式をmd5
からscram-sha-256
に切り替えます。たとえば、次のコマンドで切替えが実行されます:sudo sed -i "s/#password_encryption.*/password_encryption = scram-sha-256/" /var/lib/pgsql/data/postgresql.conf
- データベースを起動し、
/var/tmp/olam.dump
ファイルをインポートします。sudo systemctl start postgresql sudo su - postgres psql -d postgres -f /var/tmp/olam.dump exit
- データベース・ユーザー・アカウントにパスワードを再適用します:
sudo -u postgres psql \password awx
- awxユーザーのパスワードを入力し、確認します。
Enter new password for user "awx": Enter it again: exit
- 次のコマンドを実行して、データベースが使用可能かどうかを確認します:
sudo su - postgres -c "psql -l |grep awx"
次のような出力が表示されます。awx | awx | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | |
- rootユーザーとして、
/var/lib/pgsql/data/pg_hba.conf
ファイルに次の行を追加します:host all all 0.0.0.0/0 scram-sha-256
- rootユーザーとして、
/var/lib/pgsql/data/postgresql.conf
ファイルの# CONNECTIONS AND AUTHENTICATION
セクションで、listen_addresses =
のテキストの後に、データベースのIPアドレスまたはホスト名を一重引用符で囲んで記述した行を追加します。たとえば、次のようになります:listen_addresses = '<IP address or host name>' #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) #port = 5432 # (change requires restart)
前述の例では、<IP address or hostname>はデータベースのIPアドレスまたはホスト名です。
-
リモート・データベースがある場合は、データベースを実行しているホストの
5432/tcp
ポートが開いていることを確認します。たとえば、次のコマンドは、portsパラメータで正しいポートが開いていることを示しています:sudo firewall-cmd --list-all
public (active) target: default icmp-block-inversion: no interfaces: enp1s0 sources: services: cockpit dhcpv6-client ssh ports: 5432/tcp protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
- リモート・データベース・ホストが開いていない場合は、次のコマンドを実行します:
sudo firewall-cmd --add-port=5432/tcp --permanent sudo firewall-cmd --reload
- 次を使用して、メモリー要件パラメータを計算し、更新します:
前述の例では、total_mem_mbはデータベース・サーバーをホストするシステムの合計メモリー・サイズ(MB)です。たとえば、システムで使用可能なメモリーの合計が18,000 MBの場合、このワークシートには次の情報が含まれます:max_connections = 1024 shared_buffers = total_mem_mb*0.3 work_mem = total_mem_mb*0.03 maintenance_work_mem = total_mem_mb*0.04
max_connections = 1024 shared_buffers = 18000*0.3 work_mem = 18000*0.03 maintenance_work_mem = 18000*0.04
最終的に追加する数値は次のとおりです:
max_connections = 1024 shared_buffers = 5400MB work_mem = 540MB maintenance_work_mem = 720MB
- 計算した値を
/var/lib/pgsql/data/postgresql.conf
ファイルに追加します。 - データベース・サーバーを起動します。
sudo systemctl restart postgresql
- すべてのOracle Linux Automation Manager 2.2サーバーを再起動します。
sudo systemctl start ol-automation-manager
- Oracle Linux Automation Managerの機能がデータベースのアップグレード前と同様に継続していることを確認します。これらの確認を行う様々な方法の詳細は、「サービス・メッシュの表示」を参照してください。
リリース2.2からリリース2.3へのアップグレード
- Oracle Linux Automation Managerノードをバックアップします。
- すべてのホストが最新のソフトウェア・バージョンに更新されていることを確認します。たとえば、次のようになります
sudo dnf update
- データベースがアップグレードされていることを確認します。「バージョン16へのデータベースのアップグレード」を参照してください。
- コントロール・ノードまたはハイブリッド・ノードにログインします。
sudo su -l awx -s /bin/bash
-
クラスタ内のすべてのハイブリッド・ノード、コントロール・ノード、実行ノードおよびホップ・ノードに対して、次のコマンドを繰り返します。
awx-manage provision_instance --hostname=<hostname or ip address> --listener_port=<listener_port> --node_type=<node_type>
前述の例では、変数は次のとおりです:-
hostname or IP addressは、Oracle Linux Automation Managerを実行するシステムのホスト名またはIPアドレスです。このホスト名またはIPアドレスは、
/etc/receptor/receptor.conf
ファイルのノードIDを構成したときに使用したホスト名またはIPアドレスと一致している必要があります(「コントロール・プレーン・サービス・メッシュの構成と起動」を参照)。ホスト名を使用する場合は、ホストが解決可能である必要があります。 -
listener_portはノードのポート番号です。たとえば、27199です。
- node_typeはノード・タイプです。有効な値は、
control
、execution
、hop
またはhybrid
です。
-
- ハイブリッドまたはコントロール・ノード・セッションを終了します:
exit
- Oracle Linux Automation Manager 2.2の各ノード(コントロール・ノード、実行ノード、ホップ・ノードまたはハイブリッド・ノード)で、ターミナルにサインインし、次を実行します:
- システムを停止します:
sudo systemctl stop receptor-awx sudo systemctl stop ol-automation-manager
- まだ作成されていない場合、
/etc/tower/conf.d
フォルダにカスタム設定ファイルを作成します。カスタム設定ファイルで指定した設定は/etc/tower/settings.py
の設定に優先し、ソフトウェア更新によってカスタム設定が変更されないようにします。カスタム設定ファイルを作成するには、次を実行します:-
/etc/tower/conf.d
フォルダにカスタム設定ファイルを作成します。たとえば、次のようになります:touch
/etc/tower/conf.d/olam.py
- Oracle Linux Automation Manager固有の設定を新しいファイルに追加します。たとえば、CLUSTER_HOST_IDやDATABASESなどのパラメータを追加できます。詳細は、「ホストの設定」を参照してください。
- カスタム設定ファイルの所有権とファイル権限を設定します。たとえば、次のようになります
sudo chown awx:awx /etc/tower/conf.d/olam.py sudo chmod 0640 /etc/tower/conf.d/olam.py
-
- システムを更新します:
sudo dnf update oraclelinux-automation-manager-release-el8-2.3 sudo mv /etc/yum.repos.d/oraclelinux-automation-manager-ol8.repo /etc/yum.repos.d/oraclelinux-automation-manager-ol8.repo.OLD sudo mv /etc/yum.repos.d/oraclelinux-automation-manager-ol8.repo.rpmnew /etc/yum.repos.d/oraclelinux-automation-manager-ol8.repo sudo dnf update
- 更新後に
/etc/tower/settings.py.rpmnew
が表示された場合は、次を実行します:sudo mv /etc/tower/settings.py /etc/tower/settings.py.OLD sudo mv /etc/tower/settings.py.rpmnew /etc/tower/settings.py
ノート:
/etc/tower/settings.py.OLD
ファイルに加えたカスタム設定を、ステップ7.bと同様の方法で /etc/tower/conf.d file to the/etc/tower/conf.d
ディレクトリに追加することを検討します(まだ追加していない場合)。 /etc/nginx/conf.d/ol-automation-manager-nginx.conf.rpmnew
ファイルが表示された場合は、/etc/nginx/conf.d/ol-automation-manager-nginx.conf
ファイルでカスタムの変更が検出されています。アップグレードの変更は、ol-automation-manager-nginx.conf.rpmnew
ファイルに記載されています。カスタムのol-automation-manager-nginx.conf
ファイルでは、次の内容を確認します:location /favicon.ico { alias /var/lib/awx/venv/awx/lib/python3.9/site-packages/awx/ui/build/static/media/favicon.ico; } location /static/ { alias /var/lib/awx/venv/awx/lib/python3.9/site-packages/awx/ui/build/static/; }
次のように変更します:location /favicon.ico { alias /var/lib/awx/venv/awx/lib/python3.11/site-packages/awx/ui/build/static/media/favicon.ico; } location /static/ { alias /var/lib/awx/venv/awx/lib/python3.11/site-packages/awx/ui/build/static/; }
- 次を使用して、2.3 olam-eeイメージをプルします。
ノート:
「ホストの設定」の説明に従ってGLOBAL_JOB_EXECUTION_ENVIRONMENTS
変数とCONTROL_PLANE_EXECUTION_ENVIRONMENT
変数を設定している場合は、これらの変数がolam-ee:2.3-ol8
コンテナ・イメージを指すように更新します。olam-ee:2.3-ol8
コンテナ・イメージがPrivate Automation Hubサーバー上にある場合は、必要に応じてpodman pullコマンドを変数と次のコマンドで変更してください。sudo su -l awx -s /bin/bash podman system migrate podman pull container-registry.oracle.com/oracle_linux_automation_manager/olam-ee:2.3-ol8 awx-manage makemigrations --merge awx-manage migrate awx-manage register_default_execution_environments exit
- システムを停止します:
- すべてのノードで次のサービスを再起動します:
sudo systemctl restart nginx sudo systemctl start receptor-awx sudo systemctl start ol-automation-manager
リリース2.3の単一インスタンス・デプロイメントからクラスタ化デプロイメントへの移行
Oracle Linux Automation Manager(ハイブリッド・ノード)の単一ホスト・インスタンス・デプロイメントをクラスタ化デプロイメント(コントロール・ノード、実行ノードおよびホップ・ノードのクラスタ)に移行するには、次を実行します:
- ハイブリッド・ノードのターミナルで、Oracle Linux Automation Managerを停止します。
sudo systemctl stop ol-automation-manager
- データベース・ダンプ・ファイルを作成します。
sudo su - postgres pg_dumpall > /var/tmp/olam.dump
- 「ローカルまたはリモート・データベースの設定」に記載されているリモート・データベースの設定手順を実行します。ただし、次の例外があります:
- 手順を開始する前に、ダンプ・ファイルをリモート・データベースにコピーします。たとえば、scpを使用します。
- ステップ7と8でデータベースを起動してステータスを確認した後、ダンプ・ファイルをインポートします:
sudo su - postgres psql -d postgres -f /dirwithbackup/olam.dump exit
- データベース・ユーザー・アカウントの作成とデータベースの作成は、すでにダンプ・ファイルのパートに含まれているため、ステップ9から11はスキップします。
- データベースを再起動するまで、ステップ12から手順を続行します。
- リモート・データベースで、データベース・ユーザー・アカウントのパスワードを再適用します:
sudo -u postgres psql \password awx
- awxユーザーのパスワードを入力し、確認します。
Enter new password for user "awx": Enter it again: exit
- 単一インスタンスのハイブリッド・ノードにローカル・データベースがある場合は、リモート・データベース構成に対して次を実行します:
- Oracle Linux Automation Managerサーバーに戻り、カスタム設定ファイルを作成します。たとえば、次のようになります:
sudo touch /etc/tower/conf.d/olam.py
- カスタム設定ファイルに次の
DATABASES
フィールドを追加します:DATABASES = { 'default': { 'ATOMIC_REQUESTS': True, 'ENGINE': 'awx.main.db.profiled_pg', 'NAME': 'awx', 'USER': 'awx', 'PASSWORD': 'password', 'HOST': 'database hostname or ip address', 'PORT': '5432', } }
前述の例では、database hostname or ip addressは、リモート・データベースのホスト名またはIPアドレスです。ホスト名を使用する場合は、ホストが解決可能である必要があります。passwordは、リモート・データベースのパスワード(構成済の場合)です。
- Oracle Linux Automation Managerサーバーに戻り、カスタム設定ファイルを作成します。たとえば、次のようになります:
- カスタム設定ファイルの所有権とファイル権限を設定します:
sudo chown awx:awx /etc/tower/conf.d/filename.py sudo chmod 0640 /etc/tower/conf.d/filename.py
前述の例では、filenameはカスタム設定ファイルの名前です。たとえば、次のようになります
sudo chown awx:awx /etc/tower/conf.d/olam.py sudo chmod 0640 /etc/tower/conf.d/olam.py
- ローカル・データベースを停止します。
sudo systemctl stop postgresql
- サービス・メッシュで使用するポートを開きます。
sudo firewall-cmd --add-port=27199/tcp --permanent sudo firewall-cmd --reload
- Oracle Linux Automation Managerを起動します。
sudo systemctl start ol-automation-manager
- 既存のデータベース・データ・ディレクトリをバックアップして削除します。たとえば、次のコマンドはホーム・ディレクトリにバックアップ・ファイルを作成し、データベースを削除します:
sudo mv /var/lib/pgsql/data/ ~/data.old sudo dnf remove postgresql
- 次のコマンドを実行します。
sudo su -l awx -s /bin/bash
- 次のコマンドを実行します
awx-manage deprovision_instance --hostname=<hostname or IP address> awx-manage unregister_queue --queuename default awx-manage unregister_queue --queuename tower awx-manage provision_instance --hostname=<hostname or IP address> --node_type=control awx-manage register_queue --queuename=controlplane --hostnames=<hostname or IP address> awx-manage add_receptor_address --instance=<hostname or ip address> --address=<hostname or ip address> --port=<listener_port> --canonical exit
前述の例では、hostname or IP addressはOracle Linux Automation Managerを実行しているシステムのホスト名またはIPアドレスです。このホスト名またはIPアドレスは、
/etc/receptor/receptor.conf
ファイルのノードIDを構成したときに使用したホスト名またはIPアドレスと一致している必要があります(「コントロール・プレーン・サービス・メッシュの構成と起動」を参照)。ホスト名を使用する場合は、ホストが解決可能である必要があります。towerが存在し、使用されなくなった場合のみ、登録を解除する必要があります。listener_portはノードのポート番号です。たとえば、27199です。 - カスタム設定ファイル(例:
/etc/tower/conf.d/olam.py
)に、DEFAULT_EXECUTION_QUEUE_NAME
フィールドおよびDEFAULT_CONTROL_PLANE_QUEUE_NAME
フィールドを追加します:DEFAULT_EXECUTION_QUEUE_NAME = 'execution' DEFAULT_CONTROL_PLANE_QUEUE_NAME = 'controlplane'
- デフォルトのリーパー・タイムアウトである60秒よりも長く実行するように設計されたプレイブックがある場合は、カスタム設定ファイルに
REAPER_TIMEOUT_SEC
パラメータを追加してタイムアウトを長くします。たとえば、次のようになりますREAPER_TIMEOUT_SEC=<longest_playbook_time>
前述の例では、<longest_playbook_time>は最長プレイブック実行時間を超える秒数です。
- Oracle Linux Automation Managerを再起動します。
sudo systemctl restart ol-automation-manager.service
- 元のアップグレード済ノードはコントロール・ノードに変換されました。アップグレードしたクラスタを完全に機能させるには、実行ノードをもう1つ追加する必要があります。クラスタの他のすべてのメンバーについては、「データベースとホストの準備」に記載されている手順に従います。ただし、リモート・データベースの設定はすでに完了しているため、除外します。その後、「クラスタ化デプロイメントへのOracle Linux Automation Managerのインストール」に記載されている手順に従って、他のすべてのホストをクラスタの一部としてインストールおよび構成します。
Oracle Linux Automation Engineリリース2.3へのプレイブックの移行
Oracle Linux Automation Engineリリース2.2のプレイブックをテストし、Oracle Linux Automation Managerリリース2.3で動作するかどうかを確認します。アップストリーム・プロジェクトでモジュール数の変更、一部のモジュールがコレクションになったこと、一部のモジュールが他のモジュールまたはコレクションにマージされたことなど、変更があった場合はプレイブックの更新が必要になる場合があります。
『Oracle Linux Automation Manager 2.3: リリース・ノート』に記載されているように、プレイブックが正しいバージョンのPythonを使用していることを確認します。カスタム実行環境については、Oracle Linux Automation Manager 2.3: Private Automation Hubユーザーズ・ガイドの概要の項を確認してください。