Ansible Automation Platform 1.2 から 2 への移行ガイド
概要
コメントとフィードバック リンクのコピーリンクがクリップボードにコピーされました!
オープンソースの精神を大切にしています。リファレンスアーキテクチャーに関するフィードバックやコメントをお聞かせください。文書は社内で確認していますが、何らかの問題や誤字脱字があるかもしれません。フードバックにより、当社は作成文書の品質を向上でき、読者も改善点や内容の拡充などについてご意見いただけます。文書に関するフィードバックは、電子メールで ansible-feedback@redhat.com に送信してください。その際には、メール本文内で文書のタイトルを記載してください。
第1章 概要 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 1.2 から Ansible Automation Platform 2 への移行ガイドでは、Ansible Automation Platform インストーラーを使用してサイドバイサイド移行を行う方法を説明します。本書では、バックアップ、Ansible Automation Platform 2 へのインポート、および Ansible Automation Platform 2 へのアップグレードプロセスが成功したことを確認する手順を説明します。このリファレンスアーキテクチャーは、Ansible Automation Platform 2 の最新バージョンへの移行を検討しているシステムおよびプラットフォーム管理者に最適です。
このサイドバイサイド移行のリファレンスアーキテクチャーには、環境 A と 環境 B の 2 つの環境があります。この環境では、お使いの 環境 A Ansible Automation Platform 1.2 環境にあるすべてのデータが移行され、新しい 環境 B Ansible Automation Platform 2 の置き換え環境にアップグレードされます。
プラットフォーム移行プロセスのアプローチの概要:
- 環境 A で Ansible Automation Platform インストーラーを使用して、Ansible Automation Platform 1.2 の完全なデータバックアップを作成します。
- 完全な Ansible Automation Platform データバックアップを新しい空の代替 Ansible Automation Platform 1.2 環境コントロールプレーン (環境 B) にインポートします。
- Ansible Automation Platform 2 インストーラーを使用して、環境 B をその Ansible Automation Platform 1.2 バージョンからアップグレードします。
- 環境 B に自動化メッシュの実行ノードとホップノードをデプロイします。
インフラストラクチャーが正常に移行されると、Ansible Automation Platform 1.2 環境の Python 仮想環境を 環境 A から、環境 B の新しく利用可能な Ansible Automation Platform 2 環境内で使用される自動化実行環境に移行することに焦点が移ります。この 1 回限りの作業により、最新の Ansible Automation Platform 2 機能を活用し、運用のオーバーヘッドを削減して複数のプラットフォーム間で一貫性のある自動化を実行することができるようになります。
実行環境の導入プロセスは、以下で構成されます。
- 環境 A の Ansible Automation Platform 1.2 からカスタム仮想環境をエクスポートする
- エクスポートされた各仮想環境を 環境 A の Ansible 2.9 ベース実行環境と比較する
- Ansible 2.9 実行環境に加えて、仮想環境によってエクスポートされた、含まれていない追加の依存関係を使用して、新しい実行環境を作成する
- 新しい実行環境を 環境 B の対応するジョブテンプレートにアタッチする
このドキュメントでは、お客様が複雑なアーキテクチャー内の 2 つのクラスター間でジョブの実行履歴とプラットフォームオブジェクトを保持する方法を理解できるように、全体的な移行アプローチを示すため、独自のリファレンス環境を紹介します。既存のアーキテクチャーおよび要件に基づいて、移行プロセスをさらに簡素化できます。多くの場合、Ansible Automation Platform インストーラーのデフォルト値だけで十分です。ここに記載されている移行プロセスは、単純な環境と複雑な環境の両方が対象となっています。
Ansible Automation Platform 1.2 からバージョン 2 に移行するお客様は、マネージドノードのインベントリーが両方のクラスター/インスタンスで同じである限り、両方のクラスター/インスタンスで同じマニフェストを使用してアップグレードできます。移行期間は、Red Hat アカウント担当者からの正式な BU ガイダンス要求を行うことで Ansible ビジネスユニットから例外として承認されない限り、6 か月を超えることはできません。
1.1. アーキテクチャーの概要 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、サイドバイサイドの移行プロセスを実行するのに、2 つの環境に関するアーキテクチャーの詳細に重点を置いています。
最初の環境である 環境 A は、以下で構成されます。
- ラーレーの NC データセンターにある Red Hat Enterprise Linux 7 を実行する Ansible Tower 3.8.5 ノード 3 つ
- Red Hat Enterprise Linux 7 データベースノード 1 つ
- bastion ホスト (対応する分離ノードにアクセスするためジャンプホスト) 2 つ
- 分離ノード (サクラメントの CA データセンター) 2 つ
- 分離ノード (インド、ニューデリーのデータセンター) 2 つ
以下に、この環境を図で表します。
図1.1 環境 A アーキテクチャーの概要
2 番目の環境である 環境 B は、新しい空の Ansible Automation Platform 1.2 環境で、Ansible Automation Platform 2 にアップグレードする前に、環境 B から Ansible Automation Platform 1.2 インストーラーを使用して 環境 A からすべてのデータをインポートするために使用されます。
まず、環境 B は以下で構成されます。
- Red Hat Enterprise Linux 8 を実行する Ansible Tower 3.8.5 ノード 3 つ
- Red Hat Enterprise Linux 8 データベースノード 1 つ
Ansible Automation Platform 2 は Red Hat Enterprise Linux 7 をサポートしません。Ansible Automation Platform 2 にアップグレードする前に、Red Hat Enterprise Linux 8 を Ansible Automation Platform 1.2 環境 B のベース OS として使用することが重要です。
このリファレンス全体で、多数の Ansible Automation Platform 2.1 への参照があります。しかし、このドキュメントに記載されている Ansible Automation Platform の移行プロセスはバージョン 2.1 以降に適用されます。
以下に、初期の 環境 B のフットプリントを図で表します。
図1.2 初期環境 B アーキテクチャーの概要
環境 A から 環境 B へのデータ移行に成功すると、以下の項目を追加して、アップグレードプロセス時に 環境 B のアーキテクチャーを拡張します。
- Ansible コントローラーから直接アクセスできる実行ノード 2 つ
-
ホップノード 3 つ (
sacramento-hop、dublin-hopnew-delhi-hop) -
ホップノード
sacramento-hop経由でのみアクセス可能な実行ノード 2 つ -
ホップノード
dublin-hopおよびnew-delhi-hopを介してアクセス可能な実行ノード 2 つ
dublin-hop は、 インドのニューデリーにある実行ノードにアクセスするために使用できる自動化メッシュを介して別のルートを提供します。
拡張された Ansible Automation Platform 2 環境 B の世界ビューを以下に示します。
図1.3 環境 B の俯瞰図
拡張された Ansible Automation Platform 2 環境 B アーキテクチャーのフットプリントの詳細を以下に示します。
図1.4 拡張された環境 B アーキテクチャーの概要
ジョブテンプレートからスケジュールを無効にするプロセスは、このリファレンスアーキテクチャーでは対応していません。移行が正常に完了したら、環境 A のジョブテンプレートからのスケジューリングを無効にして、環境 A と 環境 B の両方で同じジョブを同時に実行しないようにすることが重要です。
第2章 移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2 の導入により、自動化の機能を拡張するようにアーキテクチャーが再考されて、作成されました。Ansible Automation Platform 2 は、オートメーションコントロールプレーンと実行プレーンを切り離し、より柔軟なアーキテクチャーを提供します。この新しい機能と自動化メッシュの導入により、組織は自動化を世界中に拡張し、自動化を可能な限りエンドポイントの近くで実行できるようになります。
このリファレンスアーキテクチャーで提供される段階的な移行アプローチの前に、例外なく移行を進めるための全体的な移行の準備状況を慎重に評価し、計画を立てることが重要です。
2.1. 技術的な考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 1.2 と Ansible Automation Platform 2 の間の主な変更点の 1 つは、自動化メッシュを使用するホップノードと実行ノードを優先して、分離されたノードを削除したことです。自動化メッシュは、多様なネットワークトポロジー、プラットフォーム、および地域にわたって大規模なインベントリーの自動化をスケーリングするための、シンプルで柔軟かつ信頼性の高い方法を提供するオーバーレイネットワークです。自動化メッシュは、IT 資産全体で自動化を標準化および正規化するための強化されたセキュリティーを提供しながら、柔軟な設計オプションを提供し、回復力のある耐障害性のアーキテクチャーを構築します。
このリファレンス環境では、隔離されたノードとサードパーティーツール (SSH プロキシーやジャンプホストなど) を使用する Ansible Automation Platform 1.2 を移行し、自動化メッシュホップと実行ノードを使用して Ansible Automation Platform 2 にアップグレードする手順をキャプチャーします。
自動化メッシュおよび実行ノードを使用するには、ファイアウォール内で追加のポートを開く必要があります。
| プロトコル | ポート | 目的 |
|---|---|---|
| SSH | 22/TCP | Ansible Automation Platform のインストール |
| HTTPS | 443/TCP | Web UI、API、実行環境 (EE) のプル |
| receptor | 27199/TCP | 自動化メッシュ |
receptor TCP ポートは、Ansible Automation Platform のアップグレードプロセス中にカスタマイズできます。
もう 1 つの重要な考慮事項は、データベースのサポートがあるかどうかです。Automation controller が導入され、Postgres 12 データベースの要件が追加されます。既存の Postgres 10 データベースが Ansible Automation Platform 1.2 でインストール/管理されている場合、Ansible Automation Platform 2 へのアップグレードプロセスは、Postgres データベースの新規バージョン 12 へのアップグレードを処理します。
このリファレンスアーキテクチャーでは、Postgres データベースは Ansible Automation Platform で管理されます。
独自の Postgres 10 データベースを管理する場合は、以下を行う必要があります。
- サイドバイサイド移行に含まれる新しい Postgres 10 データベースをインストールします。
- 環境 A から、環境 B で使用される新しく作成された Postgres 10 データベースにデータをインポートします。
- 環境 B で使用されるデータベースで、Postgres 10 から Postgres 12 にアップグレードします。
- アップグレードされた Postgres 12 を使用して、環境 B で Ansible Automation Platform 1.2 を Ansible Automation Platform 2 にアップグレードします。
独自の Postgres データベースの管理は、このリファレンスアーキテクチャーの範囲外です。
データベースのサポート可能性の詳細は、Database Scope of Coverage の記事を参照してください。
分離ノードとデータベースのサポートの有無に関する重要な考慮事項とは別に、Ansible Automation Platform 2 で削除された機能のリストがあります。このリストには以下が含まれます。
- ユーザーインターフェイスを介してデフォルトのインスタンスグループを削除する機能
- CentOS (任意のバージョン) および RHEL 7 でのデプロイのサポート
- Mercurial プロジェクトのサポート
- コントローラーに保存されているカスタムインベントリースクリプトのサポート
- リソースプロファイリングコード (AWX_RESOURCE_PROFILING_*)
- 実行環境を優先するカスタム Python 仮想環境のサポート
-
上位レベルの
/api/v2/job_events/API エンドポイント - ジョブの分離は実行環境を使用して行われ、Ansible Tower の機能ではなくなりました。
カスタム Python 仮想環境をユーザーが作成した実行環境に置き換える方法については、後の章で、このリファレンスアーキテクチャーによって提供される Ansible Playbook を使用して説明し、実行します。
2.2. Ansible コンテンツの移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
お使いの環境を Ansible Automation Platform 1.2 から Ansible Automation Platform 2 に移行するプロセスを評価する際、Ansible コンテンツ (コレクション、モジュール、ロール、プラグインなど) に対応するための考慮事項が他にあります。
これらの考慮事項はこのリストに限定されませんが、次のものが含まれます。
- 互換性のある実行環境で使用するには、Ansible Playbook を Ansible Engine 2.9.10 以降で実行する必要があります (必須)。
- Playbook の Ansible コンテンツは、Ansible コレクションを利用する必要があります (必須ではありませんが、推奨されます)。
- Playbook の Ansible コンテンツは、完全修飾コレクション名 (FQCN) を使用する必要があります (必須ではありませんが、推奨されます)。
- Ansible Playbook は、localhost への参照に対応するように変更する必要があります。実行環境を使用する場合、これは Pod 自体を参照し、以前に行われたように基盤となるホストを参照するものではありません。
Ansible コンテンツを正常に実行するために追加の依存関係が必要な場合は、ユーザーが作成した実行環境が必要になることがあります。
2.3. オペレーションモデルの考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
新しい Ansible Automation Platform アーキテクチャーの導入に伴い、新たに設計された Ansible Automation Platform 環境を統合する方法について計画を立てることが重要です。
以下に挙げる主要な質問に対する回答を考慮します。
- Ansible Automation Platform 2 を実行するには、組織でどのようなトレーニングとイネーブルメントが必要ですか?
- 実行環境と Ansible コンテンツコレクションはどのように管理されますか?
組織に最適な実行環境コンテナーのバージョン管理は何ですか?
- 開発と実稼働環境に異なるモデルを使用しますか?
- ユーザーが作成した実行環境が必要な場合、それらの環境をどのように管理および配布しますか?
- 実行環境を中心に CI を構築する予定はありますか?
- CVE にパッチを適用し、準拠を維持するためのセキュリティー対応計画はどのようなものですか?
- Ansible Automation Platform クラスターはどのくらいの頻度でアップグレードしますか?
これらはほんの一例にすぎませんが、組織の戦略を確実に成功させるためには、このような質問に対する回答が極めて重要です。
第3章 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2 へのサイドバイサイド移行およびアップグレードには、環境 A と 環境 B が必要です。環境 A は、図1.1「環境 A アーキテクチャーの概要」 に示されるように、メインのクラスターである必要があります。この環境は、以下で構成します。
- ラーレーの NC データセンターにある Red Hat Enterprise Linux 7 を実行する Ansible Tower 3.8.5 ノード 3 つ
- Red Hat Enterprise Linux 7 データベースノード 1 つ
- bastion ホスト (対応する分離ノードにアクセスするためジャンプホスト) 2 つ
- 分離ノード (サクラメントの CA データセンター) 2 つ
- 分離ノード (インド、ニューデリーのデータセンター) 2 つ
まず、環境 B は、図1.2「初期環境 B アーキテクチャーの概要」 に示すように単純化された Ansible Automation Platform 1.2 アーキテクチャーです。Ansible Automation Platform 2 へのアップグレードプロセス中に、Red Hat Enterprise Linux 8.4 サーバーのプールでクラスターが拡張され、以下が含まれるようになります。
- コントロールプレーンノードから直接アクセスできる実行ノード 2 つ
-
ホップノード 3 つ (
sacramento-hop、dublin-hopnew-delhi-hop) -
ホップノード
sacramento-hop経由でのみアクセス可能な実行ノード 2 つ -
ホップノード
dublin-hopおよびnew-delhi-hopを介してアクセス可能な実行ノード 2 つ
アップグレード後の最終的なクラスターのアーキテクチャーは、図1.4「拡張された環境 B アーキテクチャーの概要」 のようになります。
これらのノードは、物理サーバーである必要はありません。
3.1. 環境仕様 リンクのコピーリンクがクリップボードにコピーされました!
| ノードタイプ | Control | 実行 | ホップ | Database |
| CPU | 4 | 4 | 4 | 4 |
| RAM | 16 | 16 | 16 | 16 |
| ディスク | 40GB | 40GB | 40GB | 150GB+ |
| 注記 |
|
|
|
|
すべての自動化コントローラーデータは PostgreSQL データベースに保存されます。データベースストレージは、マネージドホストの数、ジョブ実行数、ファクトキャッシュに保存されているファクトの数、および個別ジョブのタスク数と共に増加します。たとえば、ホスト 250 台で 1 時間ごと (1 日に 24 回) に 20 個のタスクの Playbook を実行する場合は、毎週 800,000 を超えるイベントを保存します。
データベースに十分な容量が確保されていない場合は、以前のジョブ実行やファクトを定期的に消去する必要があります。詳細は、Management Jobs を参照してください。
3.2. ネットワーク要件 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2 では、コントロールプレーンジョブを実行するために割り当てられた Automation controller インスタンスとメッシュワーカーノード間の直接ネットワーク接続が必要です。
DMZ または分離されたネットワークの背後にある実行ノードにトラフィックをルーティングするホップノードの場合、Ansible Automation Platform クラスターは複数のネットワークにまたがることができます。ネットワーク管理者は、インストール目的ですべてのノードで ssh 接続が利用可能であることを確認する必要があります。このリファレンス環境では、ホップノードは ssh プロキシーとして機能し、それぞれの実行ノードに到達します。
Ansible Automation Platform ダッシュボードにアクセスするには、コントロールプレーンノードが存在するネットワークにアクセスできるブラウザーが必要です。Ansible Automation Platform ダッシュボードに外部からアクセスする場合は、コントロールプレーンノードにパブリック IP アドレスを追加してください。
ネットワーク管理者は、すべてのノードに専用の IP アドレスと適切な DNS レコードを提供することを推奨します。ネットワーク管理者は、静的 IP アドレスをノードに割り当て、DHCP サーバーを設定して、IP を無限リースで予約するか、割り当てられた IP アドレスが除外範囲の一部であることを確認する必要があります。これにより、DHCP サーバーがない場合でも、各ノードの IP アドレスが一定に保たれます。注記: このリファレンスアーキテクチャーの目的上、DHCP サーバーの設定、DNS レコードの設定、およびロードバランサーの設定は範囲外です。
このリファレンスアーキテクチャーの目的上、DHCP サーバーの設定、DNS レコードの設定、およびロードバランサーの設定は範囲外です。
ネットワーク管理者は、少なくとも次の数の IP アドレスを予約する必要があります。
- コントロールプレーンノードごとに 1 つの IP アドレス。
- 実行ノードごとに 1 つの IP アドレス。
- ホップノードごとに 1 つの IP アドレス
- データベースノードに 1 つの IP アドレス
このリファレンス環境は、サイトごとに 13 の IP アドレスを予約します。
次の表に、リファレンス環境の 環境 B の例を示します。
| 使用方法 | ホスト名 | IP |
| Automation Controller 1 | envb_controller1.example.com | 192.168.0.10 |
| Automation Controller 2 | envb_controller2.example.com | 192.168.0.11 |
| Automation Controller 3 | envb_controller3.example.com | 192.168.0.12 |
| コントロールプレーンデータベース | envb_database.example.com | 192.168.0.13 |
| 実行ノード 1 | envb_executionnode-1.example.com | 192.168.0.14 |
| 実行ノード 2 | envb_executionnode-2.example.com | 192.168.0.15 |
| ホップノード 1 | envb_hopnode-sacramento.example.com | 192.168.0.16 |
| ホップノード 2 | envb_hopnode-new-delhi.example.com | 192.168.0.17 |
| ホップノード 3 | envb_hopnode-dublin.example.com | 192.168.0.18 |
| 実行ノード 3 | envb_executionnode-3.example.com | 10.14.1.11 |
| 実行ノード 4 | envb_executionnode-4.example.com | 10.14.1.12 |
| 実行ノード 5 | envb_executionnode-5.example.com | 10.15.1.11 |
| 実行ノード 6 | envb_executionnode-6.example.com | 10.15.1.12 |
3.3. ノードの検証チェックリスト リンクのコピーリンクがクリップボードにコピーされました!
以下は、すべての要件の要約です。
- ❏ コントローラーノード、データベースノード、実行ノード、およびホップノード用に 16 GB のメモリー
- ❏ コントローラーノード、データベースノード、実行ノード、およびホップノード用の 4 つの CPU
- ❏ データベースノード用に 150 GB 以上のディスク容量
- ❏ データベースノード以外のノード用に 40 GB 以上のディスク容量
- ❏ DHCP 予約では、無限リースを使用して、静的 IP アドレスを持つクラスターをデプロイメント。
- ❏ すべてのノードの DNS レコード
- ❏ すべてのノードで Red Hat Enterprise Linux {rhel_version} 以降 64 ビット (x86) がインストール済み
- ❏ すべてのノードに Chrony を設定済み
ノード要件の詳細は、「環境仕様」 を参照してください。
3.4. Automation Controller 設定の詳細 リンクのコピーリンクがクリップボードにコピーされました!
このリファレンスアーキテクチャーは、Ansible Automation Platform 1.2 から Ansible Automation Platform 2 への移行およびアップグレードに重点を置いています。この設定は、包括的な Ansible Automation Platform ソリューションを提供してサイドバイサイド移行シナリオを説明することを目的としています。このリファレンスアーキテクチャーでカバーされている主要なソリューションコンポーネントには、以下が含まれます。
- Ansible Automation Platform 1.2
- Ansible Automation Platform 2
- Ansible Automation Platform インストーラー
- カスタム Python 仮想環境移行用の Ansible Playbook
3.4.1. OS 設定 リンクのコピーリンクがクリップボードにコピーされました!
3.4.1.1. Chrony 設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター内の各 Ansible Automation Platform ノードは NTP サーバーにアクセスできる必要があります。chronyd は、システムクロックを同期するためのデーモンです。クロックを NTP サーバーと同期できます。これにより、クラスターノードが検証を必要とする SSL 証明書を使用する場合、ノード間の日付と時刻が同期していなくても失敗しません。
Ansible Automation Platform クラスターの拡張に使用される 環境 B のすべてのノードで以下を実行します。
インストールされていない場合は、次のように
chronyをインストールします。dnf install chrony --assumeyes
# dnf install chrony --assumeyesCopy to Clipboard Copied! Toggle word wrap Toggle overflow viなどのテキストエディターで/etc/chrony.confファイルを編集します。vi /etc/chrony.conf
# vi /etc/chrony.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のパブリックサーバープールセクションを見つけ、適切なサーバーを含めるように変更します。必要なサーバーは 1 つだけですが、3 つを推奨します。サーバーと適切に同期するのにかかる時間を短縮するために、
iburstオプションが追加されました。# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server <ntp-server-address> iburst
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server <ntp-server-address> iburstCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
/etc/chrony.confファイル内にすべての変更を保存します。 ホストの起動時に
chronydデーモンが起動するように起動して有効にします。systemctl --now enable chronyd.service
# systemctl --now enable chronyd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow chronyd デーモンのステータスを確認します。
systemctl status chronyd.service
# systemctl status chronyd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.1.2. Red Hat Subscription Manager リンクのコピーリンクがクリップボードにコピーされました!
subscription-manager コマンドは、システムを Red Hat Network (RHN) に登録し、システムのサブスクリプションエンタイトルメントを管理します。--help オプションは、コマンドラインで使用可能なオプションをコマンドにクエリーするように指定します。--help オプションがコマンドディレクティブとともに発行された場合、特定のコマンドディレクティブで使用可能なオプションがリスト表示されます。
Red Hat Subscription Management を使用してシステムにパッケージを提供するには、最初にシステムをサービスに登録する必要があります。システムを登録するには、subscription-manager コマンドを使用して、register コマンドディレクティブを渡します。--username および --password オプションが指定されている場合、コマンドは RHN ネットワーク認証情報の入力を求めません。
以下に、subscription-manager を使用してシステムを登録する例を示します。
Ansible Automation Platform クラスターの拡張に使用するノードを含め、環境 B 内のすべてのノードで以下を実行する必要があります。
subscription-manager register --username [User] --password '[Password]' The system has been registered with id: abcd1234-ab12-ab12-ab12-481ba8187f60
# subscription-manager register --username [User] --password '[Password]'
The system has been registered with id: abcd1234-ab12-ab12-ab12-481ba8187f60
システムを登録したら、エンタイトルメントプールに接続する必要があります。このリファレンス環境の目的上、Red Hat Ansible Automation Platform は選択されたプールになります。Red Hat Ansible Automation Platform エンタイトルメントプールを特定してサブスクライブします。次のコマンドディレクティブが必要です。
subscription-manager attach --pool <pool_id> Successfully attached a subscription for: Red Hat Ansible Automation Platform, Premium (5000 Managed Nodes)
# subscription-manager attach --pool <pool_id>
Successfully attached a subscription for: Red Hat Ansible Automation Platform, Premium (5000 Managed Nodes)
subscription-manager repos --enable=ansible-automation-platform-2.1-for-rhel-8-x86_64-rpms
# subscription-manager repos --enable=ansible-automation-platform-2.1-for-rhel-8-x86_64-rpms
Ansible Automation Platform サブスクリプションの一部として、Automation controller、Private Automation Hub、およびその他の Ansible Automation Platform コンポーネントに RHEL を利用するために、10 個の Red Hat Enterprise Linux (RHEL) サブスクリプションを利用できます。
3.4.1.3. ユーザーアカウント リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2 をインストールする前に、デプロイメントプロセスの sudo 権限を持つ非 root ユーザーを作成することを推奨します。このユーザーは以下で使用されます。
- SSH 接続
- インストール時中のパスワードレス認証
- 特権昇格 (sudo) 権限
このリファレンス環境の目的上、ユーザー ansible が選択されていますが、任意のユーザー名を使用できます。
Ansible Automation Platform クラスター拡張に使用するノードなど、環境 B の すべて のノードで、ansible という名前のユーザーを作成し、ssh キーを生成します。
非 root ユーザーを作成します。
useradd ansible
# useradd ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansibleユーザーのパスワードを設定します。passwd ansible
# passwd ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansibleユーザーとしてsshキーを生成します。ssh-keygen -t rsa
$ ssh-keygen -t rsaCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansibleユーザーとしてsudoを使用する場合は、パスワード要件を無効にします。echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansible
# echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.1.4. SSH キーをすべてのノードにコピー リンクのコピーリンクがクリップボードにコピーされました!
ansible ユーザーを作成したら、ansible ユーザーとして、Ansible Automation Platform クラスターの拡張に使用するノードを含む 環境 B のすべてのノードに ssh キーをコピーします。これにより、Ansible Automation Platform のインストールが実行されたときに、パスワードなしですべてのノードへの ssh が可能になります。
これは、次のように ssh-copy-id コマンドを使用して実行できます。
ssh-copy-id ansible@hostname.example.com
$ ssh-copy-id ansible@hostname.example.com
クラウドプロバイダー内で実行している場合は、代わりに、すべてのノードに ansible ユーザーの公開鍵を含む ~/.ssh/authorized_keys ファイルを作成し、authorized_keys ファイルへのパーミッションとして、所有者 (ansible) だけに読み取りおよび書き込みの権限 (パーミッション 600) を設定する必要があります。
3.4.1.5. ファイアウォールの設定 リンクのコピーリンクがクリップボードにコピーされました!
ファイアウォールへのアクセスと制限は、Ansible Automation Platform 2 環境のセキュリティーを保護する上で重要な役割を果たします。Red Hat Enterprise Linux {rhel_version} を使用すると、デフォルトで動的ファイアウォールデーモンである firewalld が使用されます。firewalld は、ネットワークゾーンを割り当てて、ネットワークとそれに関連する接続およびインターフェイスに信頼レベルを割り当てることによって機能します。
Ansible Automation Platform 2 のインストールを成功させるために、適切なサービスとポートへのアクセスを許可するようにファイアウォール設定を設定することを推奨します。
Ansible Automation Platform クラスター拡張に使用されるノードを含む、環境 B 内の すべて のノードで、firewalld がインストールされ、起動され、有効になっていることを確認します。
firewalldパッケージをインストールします。dnf install firewalld --assumeyes
# dnf install firewalld --assumeyesCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldサービスを開始します。systemctl start firewalld
# systemctl start firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow Firewalldサービスを有効にします。systemctl enable firewalld
# systemctl enable firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. Ansible Automation Platform 設定の詳細 リンクのコピーリンクがクリップボードにコピーされました!
3.5.1. 実行ノードとホップノードのファイアウォール設定 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform を 2 に正常にアップグレードするための前提条件の 1 つとして、メッシュノード (実行およびホップノード) で自動化メッシュポートを有効にすることが挙げられます。すべてのノードのメッシュネットワークに使用されるデフォルトポートは 27199/tcp に設定されていますが、インベントリーファイル 内の各ノードの変数として receptor_listener_port を指定することで、別のポートを使用するように設定することもできます。インベントリーファイルの変更に関する詳細は、「環境 B の Ansible Automation Platform 2 へのアップグレード」 を参照してください。
このリファレンス環境では、すべての Ansible Automation Platform 2 コントローラーノードはノードタイプの制御として指定されます。コントロールノードがハイブリッドノード (デフォルトのノードタイプ) として指定されている場合、メッシュポート (デフォルト: 27199/tcp) を有効にする必要があります。
ホップおよび実行ノード内で、ansible ユーザーとして、インストールに使用する firewalld ポートを設定します。
firewalldが実行されていることを確認します。sudo systemctl status firewalld
$ sudo systemctl status firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow コントローラーデータベースノードに
firewalldポートを追加します (例: ポート 27199)。sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=27199/tcpCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldをリロードします。sudo firewall-cmd --reload
$ sudo firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow ポートが開いていることを確認します。
sudo firewall-cmd --list-ports
$ sudo firewall-cmd --list-portsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 インフラストラクチャーの移行 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 1.2 から Ansible Automation Platform 2 への移行を成功させるために、このリファレンス環境は Ansible Automation Platform インストーラーの機能を利用します。
Ansible Automation Platform インストーラーを使用すると、簡単なコマンドをいくつか使用して、最新の Ansible Automation Platform 2 にバックアップ、インポート、およびアップグレードできるようになります。
以下のセクションでは、そのプロセスのステップを説明します。
4.1. 環境 Aでの Ansible Automation Platform 1.2 のバックアップ リンクのコピーリンクがクリップボードにコピーされました!
環境 A の Ansible Automation Platform 1.2 環境にはすべてのデータが含まれているため、以下は 環境 A の Ansible Automation Platform インストーラーを使用してバックアップを作成します。
バックアップを作成する前に、現在実行中のジョブや実行予定のジョブがないことを確認してください。バックアップ後に収集されたデータはすべて 失われます。
環境 A 内で、以下を実行します。
ansibleユーザーとしてログインします。ssh ansible@enva_controller1.example.com
$ ssh ansible@enva_controller1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このリファレンス環境では、Ansible Automation Platform インストーラーディレクトリーおよびバイナリーを含むホストとして
enva_controller1を使用します。ansible-tower-setup-3.8.5-Xディレクトリーに移動します。cd /path/to/ansible-tower-setup-3.8.5-X
$ cd /path/to/ansible-tower-setup-3.8.5-XCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform インストーラーを実行してバックアップを作成します。
-
backup_destは、Ansible Automation Platform データベースのバックアップを保存する場所を提供します。 -
use_compressionは、Ansible Automation Platform データベースバックアップのサイズを縮小します。 -
@credentials.ymlは、ansible-vaultで暗号化されたパスワード変数とそれらの値を渡します。 -
--ask-vault-passは、暗号化されたcredentials.ymlファイルへのアクセスに使用されるパスワードを要求します。 -bは、バックアップ作成オプションを True に設定します。./setup.sh -e 'backup_dest=<mount_point>' -e 'use_compression=True' -e @credentials.yml -b
$ ./setup.sh -e 'backup_dest=<mount_point>' -e 'use_compression=True' -e @credentials.yml -bCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
この参照環境は、暗号化された認証情報を利用しており、プレーンテキストのパスワードは含まれていません。詳細は、付録C 暗号化された credentials.yml ファイルの作成ansible-vault を使用して認証情報を暗号化する方法について説明しています。
バックアッププロセスが完了するまでに時間がかかる場合があります。
4.2. 環境 Bへの Ansible Automation Platform 1.2 データベースのインポート リンクのコピーリンクがクリップボードにコピーされました!
環境 A からのバックアップが作成されて利用可能になったら、以下は、環境 B の Ansible Automation Platform インストーラーを使用して、バックアップされた Ansible Automation Platform データベースをインポートします。
環境 B 内で、以下を実行します。
ansibleユーザーとしてログインします。ssh ansible@envb_controller1.example.com
$ ssh ansible@envb_controller1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このリファレンス環境では、Ansible Automation Platform インストーラーディレクトリーおよびバイナリーを含むホストとして
envb_controller1を使用します。ansible-tower-setup-3.8.5-Xディレクトリーに移動します。cd /path/to/ansible-tower-setup-3.8.5-X
$ cd /path/to/ansible-tower-setup-3.8.5-XCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform インストーラーを実行して Ansible Automation Platform データベースをインポートします。
-
restore_backup_fileは、バックアップされた Ansible Automation Platform データベースの場所を指定します。 -
バックアッププロセス中に圧縮が使用されているため、
use_compressionは True に設定されています -rは復元データベースのオプションを True に設定します。./setup.sh -e ‘restore_backup_file=<mount_point>/tower-backup-latest.tar.gz -e ‘use_compression=True’ -e @credentials.yml -r -- --ask-vault-pass
$ ./setup.sh -e ‘restore_backup_file=<mount_point>/tower-backup-latest.tar.gz -e ‘use_compression=True’ -e @credentials.yml -r -- --ask-vault-passCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
この参照環境は、暗号化された認証情報を利用しており、プレーンテキストのパスワードは含まれていません。詳細は、付録C 暗号化された credentials.yml ファイルの作成ansible-vault を使用して認証情報を暗号化する方法について説明しています。
インポートプロセスの完了には時間がかかる場合があります。
4.3. 環境 B の Ansible Automation Platform 2 へのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform データベースのインポートに成功すると、移行プロセスの最終ステップとして、環境 B Ansible Automation Platform 1.2 環境を Ansible Automation Platform 2 にアップグレードし、図1.4「拡張された環境 B アーキテクチャーの概要」 に示されるように 環境 B のアーキテクチャーを展開します。
環境 B 内で、以下を実行します。
ansibleユーザーとしてログインします。ssh ansible@envb_controller1.example.com
$ ssh ansible@envb_controller1.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このリファレンス環境では、Ansible Automation Platform インストーラーディレクトリーおよびバイナリーを含むホストとして
envb_controller1を使用します。Ansible Automation Platform 2.1.1 セットアップ tar ansible-automation-platform-setup-2.1.1-1.tar.gz をダウンロードします。
注記非接続インストールの場合は、Ansible Automation Platform 2.1.1 Setup Bundle をダウンロードします。
ansible-automation-platform-setup-2.1.1-1.tar.gz を展開します。
tar zxvf ansible-automation-platform-setup-2.1.1-1.tar.gz
$ tar zxvf ansible-automation-platform-setup-2.1.1-1.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-automation-platform-setup-2.1.1-1 のディレクトリーに移動します。
cd ansible-automation-platform-setup-2.1.1-1/
$ cd ansible-automation-platform-setup-2.1.1-1/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform 1.2 インベントリーファイルを ansible-automation-platform-setup-2.1.1-1 ディレクトリーにコピーします。
cp /path/to/ansible-tower-setup-3.8.5-X/inventory .
$ cp /path/to/ansible-tower-setup-3.8.5-X/inventory .Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform インストーラーを使用してコピーされた Ansible Automation Platform 1.2 インベントリーファイルで Ansible Automation Platform 2 インストールインベントリー案を生成します。
./setup.sh
$ ./setup.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ansible-coreがまだインストールされていない場合は、このプロセス中にインストールされます。警告inventory.new.ini 案を作成すると、Ansible Automation Platform インストーラーがプロセスの初期段階で失敗することが予想されます。
想定されるエラータスクは以下のようになります。
TASK [ansible.automation_platform_installer.check_config_static : Detect pre-2.x inventory and offer a migration] *** fatal: [172.16.58.48 -> localhost]: FAILED! => {"changed": false, "msg": "The installer has detected that you are using an inventory format from a version prior to 4.0. We have created an example inventory based on your old style inventory. Please check the file `/home/ansible/aap_install-2.1.1/ansible-automation-platform-setup-bundle-2.1.1-2/inventory.new.ini` and make necessary adjustments so that the file can be used by the installer."}TASK [ansible.automation_platform_installer.check_config_static : Detect pre-2.x inventory and offer a migration] *** fatal: [172.16.58.48 -> localhost]: FAILED! => {"changed": false, "msg": "The installer has detected that you are using an inventory format from a version prior to 4.0. We have created an example inventory based on your old style inventory. Please check the file `/home/ansible/aap_install-2.1.1/ansible-automation-platform-setup-bundle-2.1.1-2/inventory.new.ini` and make necessary adjustments so that the file can be used by the installer."}Copy to Clipboard Copied! Toggle word wrap Toggle overflow inventory.new.ini
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記パスワードをプレーンテキストで保存することは推奨されないため、変数
admin_password、pg_password、およびregistry_passwordは inventory.new.ini ファイルの一部ではありません。代わりに、暗号化された credentials.yml ファイルが使用されます。inventory.new.iniが作成されたら、ファイルを変更して、ホップノードと実行ノードを含む 環境 B の拡張アーキテクチャーを含めます。拡張れた 環境 B の inventory.new.ini
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 実行環境イメージがダウンロードされ、インストールに含まれます。イメージをダウンロードするには適切な認証情報が必要です。
- 2
- registry_url にアクセスするためのユーザー認証情報。
- 3
- コントロールノードは、プロジェクトおよびインベントリーの更新およびシステムジョブを実行しますが、実行ジョブは実行しません。これらのノードでは実行機能は無効になります。
- 4
- 実行ノード間のピア関係の設定。
- 5
- ホップノードと実行ノード間のノードタイプとピア関係の設定
- 6
- 自動化コントローラーノードへの直接接続アクセスのある実行ノードのグループ。
- 7
- 対応する実行ノードにトラフィックをルーティングするホップノードのグループ。
- 8
- envb_hopnode-sacramento.example.com 経由でアクセス可能な実行ノードのグループ。
- 9
- envb_hopnode-new-delhi.example.com 経由でアクセス可能な実行ノードのグループ。
次のオプションを指定して
setup.shを実行し、Ansible Automation Platform 2 にアップグレードします。./setup.sh -i inventory.new.ini -e @credentials.yml -- --ask-vault-pass
$ ./setup.sh -i inventory.new.ini -e @credentials.yml -- --ask-vault-passCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Automation Platform ダッシュボード UI がすべての Automation Controller ノードからアクセスできることを確認します。
注記Automation controller のいずれかを介して Ansible Automation Platform ダッシュボードにアクセスするときに 502 エラーまたはセキュア接続に失敗した場合は、次のいずれかまたは両方の問題が原因である可能性があります。
- 証明書の不一致
-
nginxの SELinux コンテキストが誤っている
付録D アップグレード後の Playbook では、これらの問題を修正するための回避策を説明します。現在、修正が実装されており、今後のドットリリースで修正される予定です。
証明書の不一致についての問題は、Ansible Automation Platform のバージョン 2.1.2 以降で修正されています。
nginxの SELinux コンテキストが正しくない場合は、回避策の Ansible Playbook が必要です。詳細は、付録D アップグレード後の Playbook を参照してください。
このリファレンス環境は、* admin_password * registry_password * pg_password の変数に credentials.yml を使用します。
インベントリーファイルに設定できるさまざまな値の詳細は、インベントリーファイルの設定 を参照してください。
4.4. インスタンスおよびインスタンスグループの設定 リンクのコピーリンクがクリップボードにコピーされました!
アップグレードプロセスが完了したら、対応するインスタンスグループ (sacramento や new-delhi など) に、インスタンスを関連付ける必要があります。
- Administration→Instance Groupsを選択します。
- sacramento インスタンスグループをクリックします。
- Instances タブを選択します。
- 青い 割り当て ボタンをクリックします
インスタンスの 選択 ウィンドウで、以下を選択します。
- envb_executionnode-3.example.com
- envb_executionnode-4.example.com
- Save をクリックします。
new-delhi インスタンスグループのプロセスを繰り返し、以下のインスタンスを new-delhi インスタンスグループに関連付けます。
- envb_executionnode-5.example.com
- envb_executionnode-6.example.com
完了したら、default グループ内のインスタンスの関連付けを解除します。
- Administration→Instance Groupsを選択します。
- default インスタンスグループをクリックします。
- Instances タブを選択します。
以下のインスタンスのチェックボックスを選択します。
- envb_executionnode-3.example.com
- envb_executionnode-4.example.com
- envb_executionnode-5.example.com
- envb_executionnode-6.example.com
- Disassociateというラベルの付いた青いボタンをクリックします。
- 赤い Disassociate ボタンで、関連付けが解除されていることを確認します。
default インスタンスグループには、以下のインスタンスだけを含める必要があります。
- envb_executionnode-1.example.com
- envb_executionnode-2.example.com
インフラストラクチャーの移行が完了すると、Python 仮想環境をユーザーが構築した実行環境に移行することに焦点が切り替わります。
第5章 仮想環境の実行環境への移行 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Automation Platform 2 には、自動化コントロールプレーンと実行プレーンを完全に分離する、再考されたアーキテクチャーが付属しています。この新機能を使用すると、globe 全体で自動化を簡単にスケーリングでき、単一のデータセンターで自動化の実行にバインドされずに、できるだけソースに近いように自動化を実行できます。Ansible Automation Platform 1.2 と比較して、より動的、スケーラビリティー、回復性があり、柔軟性があります。
自動化実行環境の導入により、これらのコンテナーイメージは、Ansible Core、Ansible Content Collections、Python 依存関係、Red Hat Enterprise Linux UBI 8、および追加のパッケージ依存関係などの主要コンポーネントを含め、パッケージ化して実行するために必要なすべての自動化を可能にします。
この章では、Ansible Automation Platform 1.2 クラスター内のカスタム Python 仮想環境を、ユーザーが構築した自動化実行環境に移行することに焦点を当てます。
この 1 回限りの作業により、最新の Ansible Automation Platform 2 機能と、より少ない長期メンテナンスで複数のプラットフォームにわたって一貫した自動化を実行する機能を活用するための扉が開かれます。
ユーザーが構築した実行環境にアクセスするには、それらが Private Automation Hub またはコンテナーレジストリー内でホストされている必要があります。Private Automation Hub のインストール方法の詳細については Ansible Automation Platform 2.1 リファレンスアーキテクチャーのデプロイ を参照してください。
5.1. 仮想環境から実行環境への移行の自動化 リンクのコピーリンクがクリップボードにコピーされました!
Ansible コマンドを実行するだけでプロセスを自動化する補助的な Ansible Playbook を含めることで、簡素化しています。
すべてを行うには、以下の手動のプロセスを実行します。
- Ansible Automation Platform 1.2 環境にカスタム Python 仮想環境を備える
-
Python 仮想環境のカスタムリストを取得するための
awx-manageコマンドラインユーティリティーを使用する -
各 Python 仮想環境で
awx-manage export_custom_venvコマンドを実行して、インストールされている Python パッケージのリストを取得する -
awx-manage custom_venv_associationsコマンドを使用して Python 仮想環境の関連付けを確認する -
ansible-builderツールを使用して上記の情報をフィルタリングして実行環境を作成する
自動プロセスは、以下で構成されます。
- Ansible Automation Platform 1.2 環境にある各カスタム Python 仮想環境からパッケージの一覧を取得する
- 前のステップのパッケージリストを Ansible-2.9 のパッケージリストと比較する。[1] ベースの Ansible-2.9 実行環境に存在しないパッケージを見つける
- Ansible-2.9 実行環境をベースとして使用し、前のステップのリストから不足している依存関係を含む新しいカスタム実行環境を作成する
シナリオがどのように実行されるかを確認するには、以下の例を試してみます。
既存の Ansible Automation Platform 1.2 には、custom-venv1 および custom-venv2 という ラベルの付いた 2 つのカスタム Python 仮想環境があります。
redhat_cop.ee_utilities コレクション にパッケージ化されたロール virtualenv_migrate を使用して、Ansible Tower ノードへの ssh アクセスを介して Ansible Automation Platform 1.2 環境に対して実行し、(Ansible 2.9 実行環境) と比較する現在のベース実行環境の一部ではないパッケージとそのバージョンを抽出します。
redhat_cop.ee_utilities コレクションはコミュニティープロジェクトで、Red Hat では正式にサポートされていません。
それぞれの環境の Playbook およびインベントリーファイルのサンプルを以下に示します。
playbook.yml
Inventory
-
sshに必要なユーザーをもとに ansible_user=<ANSIBLE_USER> を Ansible Tower ノードに追加します。 -
この参照環境は、暗号化された認証情報を利用しており、プレーンテキストのパスワードは含まれていません。付録C 暗号化された credentials.yml ファイルの作成 の詳細は、
ansible-vaultを使用してレジストリーの認証情報を暗号化する方法を参照してください。暗号化された credentials.yml ファイルは、registry_passwordを指定するために使用されます。
このロールには、podman コマンドを実行するために sudo 権限が必要です。
Ansible Playbook のサンプル出力は、各カスタム Python 仮想環境に必要な追加パッケージのリストを示しています。この場合、custom-venv1 Python 仮想環境には、Ansible 2.9 実行環境にすでに含まれているものに加えて、次のパッケージが必要であることがわかります。
- certifi
- charset-normalizer
- enum34
- future
- solidfire-sdk-python
custom-venv2 Python 仮想環境には、標準の Ansible-2.9 実行環境に含まれるものに加えて、zabbix-api のみが必要でした。
Ansible 2.9 実行環境は、ほとんどの Ansible Automation Platform 1.2 環境が Ansible 2.9 を使用しているため、カスタム Python 仮想環境との比較に使用されます。こうすることで、後方互換性があるので移行が容易になります。
カスタム Python 仮想環境ごとにパッケージがキャプチャーされると、Ansible Playbook は、ローカルユーザー環境での実行環境の作成を自動化する redhat_cop.ee_utilities コレクション の一部である ee_builder ロールを使用します。
提供された Ansible Playbook を実行する前に、ローカルホストマシンに ansible-builder をインストールします。Playbook の実行により、カスタム Python 仮想環境と提供されたベース実行環境の間のパッケージの差異をもとに、ローカルマシン上に実行環境が作成されます。
5.1.1. Private Automation Hub へのプッシュ リンクのコピーリンクがクリップボードにコピーされました!
ローカル実行環境が整ったら、次の方法でそれらを Private Automation Hub にプッシュできます。
この参照アーキテクチャーでは、自動化実行環境の名前をカスタム Python 仮想環境の名前のままにし、簡素化しています。名前に変更が必要な場合は、実行環境を Private Automation Hub または選択したコンテナーレジストリーにプッシュする前に podman tag コマンドを使用します。
podman login [automation-hub-url] # Enter the username and password to access Private Automation Hub. podman tag [image-id] [automation-hub-url]/[container image name] podman push [automation-hub-url]/[container image name]
$ podman login [automation-hub-url]
# Enter the username and password to access Private Automation Hub.
$ podman tag [image-id] [automation-hub-url]/[container image name]
$ podman push [automation-hub-url]/[container image name]
詳細は、Private Automation Hub でのコンテナーの管理 を参照してください。
この作業が完了したら、コントローラーユーザーインターフェース内に Private Automation Hub のレジストリー認証情報を作成して、実行環境を Automation Controller に同期します。
Automation controller 内でレジストリー認証情報を作成するには、次のようにします。
- Resources→Credentials を選択します。
- Credentials 内で青い Add ボタンを選択します。
Create New Credentials ウィンドウで、以下を実行します。
- Name を指定します(例: My private automation hub credentials)。
- Credential Type でドロップダウンを選択し、Container Registry を選択します。
Type Details で以下を実行します。
- 認証 URL (例: pah.example.com) を指定します。
- Username フィールドに Private Automation Hub のユーザー名を入力します
- パスワードまたは トークン フィールドに Private Automation Hub のパスワードまたはトークンを入力します。
- Private Automation Hub 環境が SSL に対応している場合は、Verify SSL を選択します。
- Save をクリックします。
Automation controller 内で実行環境を使用できるようにするには、Private Automation Hub からイメージをプルする新しい実行環境を作成します。
Automation Controller 内で以下を実行します。
- Administration →Execution Environments を選択します。
- Execution Environments 内で、青色の Add ボタンを選択します
Create new execution environment ウィンドウで、以下を実行します。
- Name (例: my execution environment) を指定します。
- 実行環境のイメージの場所 (例: repo/project/image-name:tag) を指定します。
Registry credential の虫眼鏡を選択します。
- Private Automation Hub 認証情報など、Private Automation Hub の認証情報のラジオボタンをクリックします。
Automation controller 内で実行環境が使用可能になったため、既存のジョブテンプレートまたは新しく作成されたジョブテンプレートに対して使用できます。
後方互換性を確保する必要がないユーザーが構築する実行環境を新たに作成する場合には、ee-minimal の実行環境を、基盤の実行環境として使用し、新しいイメージを構築することを推奨します。
付録A 著者について リンクのコピーリンクがクリップボードにコピーされました!
付録B コントリビューター リンクのコピーリンクがクリップボードにコピーされました!
多くの時間を割いて、忍耐強くこのプロセスに協力してくださった次の方々に感謝申し上げます。その多大な貢献なしに、このドキュメントは実現しませんでした。
| コントリビューター | 役職 | 貢献内容 |
|---|---|---|
| Julen Landa Alustiza | シニアソフトウェア品質エンジニア | テクニカルレビュー |
| Craig Brandt | プリンシパルテクニカルマーケティングマネージャー | コンテンツレビュー |
付録C 暗号化された credentials.yml ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Ansible Automation Platform インストーラーに渡される、暗号化された credentials.yml ファイルを作成する方法について説明します。
使用するパスワードは、環境 A と 環境 B で同じでなければなりません。
最初の 環境 B Ansible Automation Platform 環境内で、以下を実行します。
credentials.yml ファイルを作成し、暗号化された認証情報を保存します。
cat credentials.yml
$ cat credentials.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow admin_password: my_long_admin_password pg_password: my_long_pg_password registry_password: my_long_registry_password
admin_password: my_long_admin_password pg_password: my_long_pg_password registry_password: my_long_registry_passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-vaultを使用した credentials.yml ファイルの暗号化ansible-vault encrypt credentials.yml
$ ansible-vault encrypt credentials.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow New Vault password: Confirm New Vault password: Encryption successful
New Vault password: Confirm New Vault password: Encryption successfulCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告admin_passwordおよびpg_password認証情報は、Ansible Automation Platform 1.2 環境 A で使用される値と一致する必要があります。警告暗号化された vault パスワードを安全な場所に保管します。
credentials.yml ファイルが暗号化されていることを確認します。
cat credentials.yml
$ cat credentials.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
暗号化された認証情報の作成はオプションですが、インベントリーファイル内にパスワードをプレーンテキストで保存しないことを推奨します。
暗号化された認証情報をすでに使用している場合は、新規に作成する代わりに credentials.yml ファイルを使用します。
付録D アップグレード後の Playbook リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、移行後にすべての Automation controller ノードで Automation controller UI にアクセスできない場合に、実行する必要がある Ansible Playbook を紹介します。この Playbook は、4章インフラストラクチャーの移行 セクションで説明されている SELinux コンテキストおよび証明書の不一致の問題に対応します。
以下の Ansible Playbook のコンテンツをコピーし、圧縮されていないインストーラーディレクトリー内の post_upgrade_playbook.yml というファイルに配置します。
このディレクトリーはインストーラーインベントリーファイルで設定され、この Playbook はインストーラーインベントリーを使用して Automation controller ノードにいくつかの変更を加えます。
post_upgrade_playbook.yml
コマンドを実行して、コントローラーノードで Playbook を実行します。
ansible-playbook -i inventory.new.ini post_upgrade_playbook.yml
$ ansible-playbook -i inventory.new.ini post_upgrade_playbook.yml
付録E Revision History リンクのコピーリンクがクリップボードにコピーされました!
| 改訂履歴 | ||
|---|---|---|
| 改訂 1.1-0 | 2022-04-29 | Roger Lopez |
| ||
| 改訂 1.0-0 | 2022-03-31 | Anshul Behl and Roger Lopez |
| ||