Slide 1

Slide 1 text

Red Hat Ansible Automation Platform 2.1 製品説明資料(技術編) レッドハット株式会社 テクニカルセールス本部 パートナーソリューションアーキテクト部 アソシエイトプリンシパルソリューションアーキテクト 岡野 浩史 最終更新:2022年 3月

Slide 2

Slide 2 text

2 アジェンダ ・自動化の課題と導入の際のポイント ・Ansible Automation Platform の価値 ・AAP 2.1 What's New ・AAP 2.1 への移行関して

Slide 3

Slide 3 text

理想的なインフラ管理 人はもう『そこ』にはいない... 自動化以前〜自動化1.0 自動化 2.0 の世界 人が作業 (機械で補助する) 機械が作業 (人が管理する)

Slide 4

Slide 4 text

実態 - ほぼ全ての顧客は自動化1.0の状態 Automation Day ワークショップ結果より(4社の実例)

Slide 5

Slide 5 text

従来のインフラ管理が抱える課題(サイロ化) 手順書 手作業 システムX システムY システムZ 自動化 ツールB スクリプト 自動化 ツールA 自動化 ツールC ツールがバラバラ 再利用できない自動化 どの作業もあの人しか わからない・できない ブラックボックス化 ボトルネック化 横展開が不可能 標準化を阻害 全体の効率低下 自動化を進めても・・・ 自動化の効果が出ない。広がらない。本気で取り組まれない。 ネットワーク サーバー ストレージ スキルセットの違いに よる自動化レベル差 手順書 手作業 手順書 手作業

Slide 6

Slide 6 text

自動化で効果を出すための3つのポイント ポイント2 自動化のサービス化 ポイント3 インフラCI化 ポイント1 自動化の標準化 ● 自動化を手順の置き換えで はなく、サービスとして利 用者に提供する。 ● 作業に登場する「登場人物 」を減らすことで、調整そ のものが発生しない状態に する。 ● 「人と人」の対話によって 品質を上げてきた従来の方 法から、「人とシステム」 の対話へと切り替える。 ● 事前の調整や前提の説明等 の「対話のための状態同期 コスト」を最適化する。 ● 自動化の対象ごとにバラバ ラの開発物、利用方法とな っていた自動化を、標準化 された自動化の開発と活用 が可能な状態にする。 ● 自動化2.0への移行難易度を 下げる。 自動化2.0を実現するためのアプローチ 自動化1.0の課題を解決し 2.0への移行を加速する インフラ運用担当者は 『サービス開発』へ 作業をボタン化し サービスとして提供 まずは『共通言語』 ✔ ✔ 機能面特化のため一部のみ紹介

Slide 7

Slide 7 text

Ansible Automation Platform の価値 ~ 『対象外』を作らない強力かつ理解しやすいツール ~

Slide 8

Slide 8 text

『標準化』に要求されるツールの性質 〜 Ansible Automation Platform の特徴 ① 〜 8 Simple Powerful Agentless 誰もが読める標準化 された自動化言語 多様な制御対象を 統一的手法で自動化 追加も簡単 セキュリティ懸念無し 低い学習コスト 例外なし 導入が容易

Slide 9

Slide 9 text

Ansible Automation Platform (AAP) 構成要素 インベントリー Playbook モジュール Collections Playbook (YAML形式のファイル) − 何をするか手順(task)を記述する インベントリーファイル − 対象となるサーバ群を記述する モジュール (ミニプログラム) − パラメータを渡すことで特定の動作 をするミニプログラム GUI 権限管理 Job管理 Database RestAPI Ansible Automation Controller API SSH, NETCONF SSH, WinRM ネットワーク サーバー クラウド Simple Powerful Agentless Git 9

Slide 10

Slide 10 text

10 Automation Controller UI

Slide 11

Slide 11 text

--- - name: Apacheのインストールと起動 #Playbook の説明 hosts: app #app グループが対象(インベントリ) become: yes #権限昇格の有無(プラグインで提供) tasks: #実行する手順の内容 - name: httpd のインストール #実行時に処理毎に表示される名前 yum: name: httpd state: latest - name: httpd を起動 service: name: httpd state: running モジュール 実行順序 TARGET セクション タスク セクション AAP の特徴 - Simple ① 〜 標準化を促進する簡単な言語 〜 Ansibleプレイブック 11

Slide 12

Slide 12 text

12 Example become plugin: --- - name: install and start apache hosts: web become: yes Example filter plugins: {{ some_variable | to_nice_json }} {{ some_variable | to_nice_yaml }} Ansible プラグイン ・Ansible のコア機能を拡張するコードの一部 ・外部ファイルとのアクセスや画面出力など便利 な機能を提供 AAP の特徴 - Simple ② 〜 プラグイン (使い易さを高める拡張機能)〜

Slide 13

Slide 13 text

13 クラウド ストレージ オーケストレー ション ファイアウォール 構成管理 アプリケーション のデプロイ プロビジョニング 削除 継続的なデプロイ セキュリティと 準拠 ロードバランサー アプリケーション コンテナ 仮想化環境 サーバー etc... ネットワークデバイス AAP の特徴 - Powerful ① 〜 自動化対象の IT プラットフォームの例 〜

Slide 14

Slide 14 text

AAP の特徴 - Powerful ② 〜 多くのIT機器を対象とした自動化が可能 〜 14 100+ ネットワーク セキュリティ インフラストラクチャー クラウド 非常に多くの認定プ ラットフォーム

Slide 15

Slide 15 text

- name: latest index.html file ... template: src: files/index.html dest: /var/www/html/ AAP の特徴 - Powerful ③ 〜 モジュール詳細 〜 Ansible モジュール ・Ansible の中核的な機能 ・Playbook のタスクの中で実行時に呼び出さ れ対象ノードに作用する(動作イメージとし ては Playbook と対象ノードを橋渡しする ラッパーとして作用する) ・通常 Python* (Windows では Powershell) で記述されるが基本的に言語の制限はない *Playbook を書く際に Python を理解している必要はありません。 モジュールの使い方 (Playbook の書き方) を理解していれば大丈夫です。

Slide 16

Slide 16 text

--- - name: install and start apache hosts: web roles: - common - webservers AAP の特徴 - Powerful ④ 〜 Ansible roles (自動化利用の促進) 〜 Ansible roles ・Playbook を再利用しやすい形に分解・定義 ・タスクと変数を再利用可能な構造にグループ化 ・roles 化しておくことで、自分だけではなく同 じような自動化を行いたい他の人と共用可能

Slide 17

Slide 17 text

『サービス化』に要求されるツールの性質 〜 Ansible Automation Platform の特徴② 〜 17 Interface Control Delegation 使い易い共通インター フェースで複雑な作業 を簡単にサービス化 ワークフローで 自動化サービスを連結 必要な人に権限を委譲 必要な人が自動化サー ビスを実行 サービスの作成 サービスの連結 必要な人が実行

Slide 18

Slide 18 text

洗練された GUI で誰でも簡単に操作できます CLI も充実!! Controller CLI (AWX) コマンド! # awx job_templates launch 外部ソフトウェアとの連携 には RESTAPI 完備 https://docs.ansible.com/automation-controller/latest/html/controllercli/usage.html AAP の特徴 - 使い易いインターフェース

Slide 19

Slide 19 text

”プロジェクト” による Playbook ディレクトリの管理と権限の委譲 Playbook ディレクトリ: /var/lib/awx/projects/<各プロジェクト>/ App 用 Playbook AWS 用 Playbook Network 用 Playbook VMware 用 Playbook 利用オーナーを決めて利用権限を委譲する!! AAP の特徴 - 使用権限を委譲(プロジェクト)

Slide 20

Slide 20 text

App 用 Playbook AWS 用 Playbook Network 用 Playbook VMware 用 Playbook ”プロジェクト” による Playbook ディレクトリの管理と権限の委譲 Playbook ディレクトリ: /var/lib/awx/projects/<各プロジェクト>/ AAP の特徴 - 使用権限を委譲(プロジェクト) 利用オーナーを決めて利用権限を委譲する!!

Slide 21

Slide 21 text

管理対象ノードに対するアクセス権限を一括管理 必要な人に必要な権限を委譲する ネットワーク サーバー クラウド ネットワーク 管理者 サーバー 管理者 クラウド 管理者 IT 管理者 Automation Controller で権限を委譲 ログイン 情報 使用権限 AAP の特徴 - 使用権限を委譲(認証情報) ※一例としてプロジェクトと認証情報のみ例を出しましたが『テンプレート』や『インベントリー』 など様々なオブジェクトに対し権限の委譲が可能です。

Slide 22

Slide 22 text

22 LB閉塞 バックアップ アプリ更新 動作確認 作業の 調整&確認 クラウド 管理者 アプリ 管理者 NW 管理者 LB開放 スタート LB閉塞 バックアップ アプリ更新 動作確認 LB開放 動作確認 動作不良の場合 バックアップか らリストア 動作確認 リストア LB開放 動作確認 実行権限 アプリ 管理者 実行権限 オーナー 実行権限 オーナー 実行権限 実行権限 オーナー 変数を使った柔軟な対象機 器毎の設定内容の最適化 作業の 調整&確認 スタートボタン を押すだけ ・・・ジョブテンプレート ワークフロー作成 AAP の特徴 - ワークフローでサービスを連結

Slide 23

Slide 23 text

23 ワークフローでは Playbook の実行だけではなく『承認』プロセスも追加できます! メールや Slack 等を使った承認者への通知(承認・拒否入力の依頼)も可能! Tips - ワークフローに承認処理も追加可能

Slide 24

Slide 24 text

24 AAP - その他の面白い機能 〜 Automation Controller オブジェクトをコード化!? 〜 Playbook 開発 Controller モジュール プロジェクト インベントリ テンプレート 認証情報 ansible.controller module https://console.redhat.com/ansible/automation-hub/repo/published/ansible/controller ➢ Automation Controller のオブジェクトそのものを Playbook で作成... ➢ Automation Controller の全オブジェクトを Git で管理しませんか!? オブジェクトの移行も楽々です♪ オブジェクト 移行 Automation Controller のオブジェクトをコード化

Slide 25

Slide 25 text

25 AAP - その他の面白い機能 〜 Webhook 機能を利用した GitOps 〜 Playbook ネットワーク サーバー クラウド Ver:2.3 Ver:2.2 Ver:2.3 Playbook の更新 を検知してJobを 自動的に起動 Playbook 開発 & 対象機器の構成管理 ➢ GitHub / GitLab の Webhook にも対応しています! ➢ Playbook 更新をトリガーとしてジョブテンプレート / ワークフローが起動!!

Slide 26

Slide 26 text

AAP 2.1 What's New ~ 使い易く拡張性に富んだコントローラーへと進化 ~

Slide 27

Slide 27 text

27 AAP 2.1 - 新たな価値の提供 ➢ 実行環境のコンテナ化 (AAP 1.x では python の virtualenv) 複数の python モジュールや依存関係の管理と移行が容易に 『private automation hub』で一括管理・利用 ➢ automation controller の機能分割実装が可能に(automation mesh) ・Execution ノード・・・ジョブ実行のみ担当 ・Hop ノード・・・Isolation されたネットワークへのホップのみ担当 ...etc 旧 contoller と比較して、スケーリングが容易かつ、遅延のあるリモート ネットワーク上のノードも一括管理が可能に

Slide 28

Slide 28 text

28 AAP 2.1 概要 - 要求されるシステム ・2021年12月2日 リリース ・最小の CPU/Memory 要件は以下の通り。AAP 1.2 から大きく変更と なっているのでご注意下さい ・OSは RHEL 8.4 or Later のみサポート Control / Execution / Hop Automation hub CPU 4 minimum 2 minimum RAM 16Gb minimum 8Gb minimum OS Red Hat Enterprise Linux 8.4 or later 64-bit (x86) ← Ansible 2.11* - ※マニュアル上は 2.11 ですが、実行環境には Ansible 2.12 がバンドルされています。 Disk要件など、詳細はこちらをご確認ください

Slide 29

Slide 29 text

29 ・AAP 1.2 (Tower 3.8) → AAP 2.1 (automation controller 4.1) ・ansible 2.9.x → 2.12.x へ ➢ 2.9.x 環境と同じ実行環境が提供される(1.2からのUpgradeに便利♬) ➢ AAP 1.2 のEOL は 2022年11月18日です! 既存UserはUpgrade の準備をお願いします。(_._) https://access.redhat.com/support/policy/updates/ansible-automation-platform AAP version automation controller version execution environments ansible navigator version ansible builder version private automation hub version RHEL-provided PostgreSQL version 2.1 4.1 core 2.12, ee-minimal, ee-supported, ee-2.9* 1.1.0 1.0.1 4.4 12 1.2 3.8 (Tower) Ansible Engine 2.9 N/A N/A 4.2 10 Full Support GA Maintenance Support 1 ends Maintenance Support 2 ends EOL AAP 2.1 2021年12月2日 2022年6月2日 2022年12月2日 2023年6月2日 AAP 1.2 2019年11月18日 2021年5月18日 2021年11月18日 2022年11月18日 AAP 2.1 概要 - バージョン・ライフサイクル New New New

Slide 30

Slide 30 text

30 AAP 2.1 Component AAP 1.2 ansible core (2.12.2 約 70 モジュール / コンテナで提供) 2.9.x (3,000+α モジュール / OS インストール) ansible automation controller 4.1 Ansible Tower 3.8 ansible runner (v2:コンテナ対応) v1 ansible execution environment (コンテナ化された実行環境) N/A (virtualenv) private automation hub (コンテナ対応) Collections/Galaxy Sync (コンテナ非対応) ansible-navigator (TUI:コンテナ実行環境対応) N/A ansible-builder (独自のコンテナ実行環境の作成) N/A automation mesh Isolated Node ポイントは3つ ・コンテナ化された実行環境 ・ansible-core 2.12.x は実行環境内(コンテナ)で提供 ・Isolated Node → Automation Mesh へ AAP 2.1 概要 - 刷新されたコンポーネント一覧

Slide 31

Slide 31 text

31 コンポーネント詳細 - execution environment (ee) ~ virtualenv → コンテナベースの実行環境へ ~ 機器毎、担当者毎に設定されていた virtualenv の実行環境がコンテナベースに! ・複数の環境がベースOSと分離されより堅牢・安全に ・実行環境の可搬性と共有化などの利便性が大幅に拡大! ・『ansible』も実行環境の中で提供! OSには直接インストールされません!! AAP 1.2 virtualenv AAP 2.1コンテナ化された実行環境 ansible-runner ansible container(ee) ansible Managed node Managed node Managed node Users Ansible Tower / Automation Controller AAP 1.2 AAP 2.1 Managed node

Slide 32

Slide 32 text

32 実行環境詳細 1. Supported execution environment AAP 2.1 環境でデフォルト利用が想定される実行環境 ・ansible core : 2.12.x ・モジュール : 2.12 のコアモジュール (約70種類)* 及び collections の認定コンテンツ**の 中で "Supported by Red Hat" となっているもの(約30種類)が含まれる ・Python 依存パッケージ:Compatibility execution environment と同等のものが含まれる 2. Compatibility execution environment 旧 AAP 1.2 と互換性の高い実行環境。AAP 1.2 → 2.1 への移行時の強い味方♬ ・ansible engine : 2.9.27 (2022年3月4日時点) ・モジュール : ansible engine に含まれるモジュール群 (3,000+) コミュニティモジュールも含む ・ Python 依存パッケージ:コミュニティモジュールに必要なもの含め数多く含まれる 3. Minimal execution environment Collections を含まない必要最低限のジョブ実行環境(カスタマイズ際のベースイメージ) Ansible Engine 2.9 Default Minimal 実行環境は Red Hat Ecosystem Catalog で提供! 2022年 3月4日現在以下の3種類が提供 *Ansible Builtin : https://docs.ansible.com/ansible-core/2.12/collections/ansible/builtin/index.html **Ansible Automation Platform Certified Content : https://access.redhat.com/articles/3642632

Slide 33

Slide 33 text

33 Tips 実行環境に含まれるもの(例) ~ Supported execution environment に含まれるもの ~ デフォルト ee にビルトインされるCollection 群 含まれる依存パッケージ群 (参考)https://access.redhat.com/articles/3642632

Slide 34

Slide 34 text

34 Tower 3.8 AAP 2.1 Automation Controller 実行環境を使った Playbook の実行 ~ automation controller 編 ~

Slide 35

Slide 35 text

35 Ansible 2.9 Default Minimal ジョブ実行時など必要に応じて registry.redhat.io から 自動的にダウンロード 実行環境は Automation Controller にインストール時に定義(ダウンロードは初回利用時) ジョブテンプレート(もしくはプロジェクト)で指定して実行するのみ、簡単です♪ 実行環境を使った Playbook の実行 ~ automation controller 編 ~ registry.redhat.io への認証 情報もインストール時に定義

Slide 36

Slide 36 text

36 ansible-navigator ansible-runner ansible container(ee) ansible Managed node Managed node Managed node Managed node Managed node Users Control node ansible-navigator ・AAP2.1 とは別インストールですが、非常に多機能な CLI / TUI ツール ・実行環境コンテナの詳細確認 ・実行環境コンテナを利用した Playbook の実行と json での実行 Log の保存 etc. 実行環境を使った Playbook の実行 ~ ansible-navigator 編 ~

Slide 37

Slide 37 text

37 $ ansible-navigator images $ ansible-navigator -m stdout run httpd-inst.yml -i hosts --eei registry.redhat.io/ansible-automation-platform-20-early-access/ee-29-rhel8 json の実行ログ 実行環境を使った Playbook の実行 ~ ansible-navigator 編 ~

Slide 38

Slide 38 text

38 ansible-navigator - 実行環境の閲覧 ~ ansilbe-navigator より ~ デフォルト ee にビルトインされるCollection 群 含まれる依存パッケージ群 (参考)https://access.redhat.com/articles/3642632

Slide 39

Slide 39 text

39 ansible-navigator - 実行環境の閲覧 ~ ansilbe-navigator より ~ デフォルト ee にビルトインされるCollection 群 含まれる依存パッケージ群 (参考)https://access.redhat.com/articles/3642632

Slide 40

Slide 40 text

40 Tips : ansible-navigator 実行時のオプション 非常に多機能なツールで様々なオプションが提供されています。 $ ansible-navigator {subcommand} subcommands(抜粋) run・・・実行環境を使った playbook の実行 (-i インベントリーの指定) images・・・実行環境の閲覧 Option(抜粋) --eei・・・playbook 実行時の実行環境の指定 --eev・・・コンテナにマウントするパスの指定(カレントパスはマウント済み) --ee・・・実行環境利用有無の指定(false の場合は ansible インストールが必要) -m・・・TUI/CLI の指定(デフォルトは TUI) デフォルト動作は ansible-navigator.yml で設定。詳細は以下ご確認ください。 https://ansible-navigator.readthedocs.io/en/latest/settings/

Slide 41

Slide 41 text

41 ansible core 2.12.x - コアモジュール モジュールの提供は約70個(2.9.xでは 3,000+) ・AAP 2.1 では、ansible は実行環境の中で提供されています。 現時点では、『ansible engine 2.9.27』 と『 ansible core 2.12.1』の 2 種 Ansible core 2.12 でコアモジュールとして提供されているモジュールは約70個。debug, service, setup, template, yum などは含まれますが、firewalld, Network, Cloud などは含まれません。* Ansible Builtin https://docs.ansible.com/ansible-core/2.12/collections/ansible/builtin/index.html

Slide 42

Slide 42 text

42 実行環境の作成 - ansible-builder build_arg_defaults: #ベースの実行環境を指定 EE_BASE_IMAGE: 'registry.redhat.io/.../ee-minimal-rhel8:latest' #Build に使う実行環境を指定 EE_BUILDER_IMAGE: 'registry.redhat.io/.../ansible-builder-rhel8:latest' dependencies: galaxy: requirements.yml ---> インストールする Collections を記載 python: requirements.txt ---> インストールする Python 依存関係を記載 system: bindep.txt ---> 必要なOSパッケージを記載 --- collections: - ansible.posix - community.vmware ・実行環境の作成・カスタマイズの機能を提供 ・AAP 2.1 とは別インストールの CLI ツール requirements.yml (module) execution-environment.yml (作成する実行環境の定義ファイル)の例 $ ansible-builder build -t new-ee:0.0.1 ベース 追加パッケージ +

Slide 43

Slide 43 text

43 実行環境の収集と共有 - Private Automation Hub AAP2.1で必要とされる 2 つの機能をプライベート環境下で提供 ・コンテナ化された実行環境を管理するレジストリの一括管理と提供 ・Collections や Galaxy で提供される Ansible モジュールなどの収集・提供 cloud.redhat.com / galaxy (collections etc.) private Automation Hub 実行環境 registry.redhat.io / quay.io (実行環境) ansible-builder Collections カスタム実行環境 automation controller ansible-navigator 収集 提供

Slide 44

Slide 44 text

44 実行環境の収集と共有 - Private Automation Hub ・UI は automation controller など他の Red Hat ソフトウェアと統一 ・実行環境を直接、もしくは間接的に(podman pull / push)収集 ・インストールは automation controller 同様で setup.sh で行う

Slide 45

Slide 45 text

45 Isolated ノードは Automation mesh へ進化!! 項目 AAP1.2 (Isolatedノード) AAP 2.1.1 (Automation mesh) コントローラとの接続方法 SSHによる接続 Isolated ノードで sshd を起動(Port:22) Receptorメッシュネットワーク ExecutionノードとHopノードでreceptorを起動(Port:27199) 実行環境 Pythonのvirtualenv podmanコンテナ 実行環境の更新 各Isolatedノードのvirtualenvを手動更新 更新済のコンテナイメージを実行時に利用 ※コンテナレジストリが必要 実行環境の分離 Bubblewrap + virtualenv コンテナ実行環境による分離 カスタム実行環境への対応 各Isolatedノード上にvirtualenvを手動作成 コントローラから任意の実行環境を指定 ジョブ実行の中継 多段SSHを利用したjumphost Receptorを利用した安定した中継 従来の Isolated ノードに比べ管理性が大幅に向上

Slide 46

Slide 46 text

46 Isolated ノードは Automation mesh へ進化!! ~ AAP 2.1 ノードの種類 ~ ・AAP2.1 のアーキテクチャを構成するノードは以下の4タイプ。 ・インストールプログラム(setup.sh)が参照するインベントリファイルで指定 # ノードタイプ 役割 [1] Control ダッシュボードやAPI、そしてジョブスケジューラのようなバックグラウンドプ ロセスのみを実行します。ジョブの実行は[2]に送信 [2] Execution 受信したジョブテンプレートをコンテナ化された実行環境内で実行 [3] Hybrid [1]の機能と[2]の機能をもちます。旧 Ansible Towerノードに相当 [4] Hop [1][3]からのジョブ実行処理を[2]に向けて転送

Slide 47

Slide 47 text

47 Isolated ノードは Automation mesh へ進化!! ~ AAP 2.1 ノードと構成例① ~ ハイブリッドノードのみで構成 (旧 Ansible Tower も同様の構成が可能) ・ジョブの実行はジョブテンプレートで指定した インスタンスグループのメンバーであるHybrid ノードにスケジュールされる。(AAP2.1以前の 基本アーキテクチャと同じ) ・各Hybridノードはコントロールプレーンとユー ザージョブ実行の両方を担当 Hybrid #0 DB Hybrid #1 ee Hybrid #3 ee ee Instance Group #1 Instance Group #2 Hybrid #2 ee Managed Node Managed Node

Slide 48

Slide 48 text

48 Tips : inventory ファイル記述例① ~ AAP 2.1 ノードと構成例① ~ [automationcontroller] aac00.example.com aac01.example.com aac02.example.com aac03.example.com [database] db00.example.com ...以下略...

Slide 49

Slide 49 text

49 Isolated ノードは Automation mesh へ進化!! ~ AAP 2.1 ノードと構成例② ~ Hybrid = Control + Execution に分離。ジョブは Execution ノードで実行 Managed Node が増えてきた時のパフォーマンス拡張が容易に ・Control ノードはコントロールプ レーンのみ実行 ・ジョブの実行はインスタンスグルー プで指定された Execution ノードが 担当(旧 AAP1.2 の Isolated Node に構成としては近い) ・実行環境は Control と Execution ノードにダウンロードされる ・Control ノードの実行環境は管理 ジョブ実行用に必要 ・Control と Execution のノード間は ssh ではなく receptor で通信 ・Execution ノードを増やすことによ り柔軟にパフォーマンス拡張が可能 Ctl #0 DB Instance Group #1 Instance Group #2 Managed Node Managed Node Ctl #1 Ctl #2 Exe #0 ee Exe #1 ee Exe #2 ee Exe #3 ee Receptor (27199) ee ee ee

Slide 50

Slide 50 text

50 Tips : inventory ファイル記述例② ~ AAP 2.1 ノードと構成例② ~ [automationcontroller] aac00.example.com node_type=control peers=execution_nodes aac01.example.com node_type=control peers=execution_nodes aac02.example.com node_type=control peers=execution_nodes [execution_nodes] ee00.example.com node_type=execution ee01.example.com node_type=execution ee02.example.com node_type=execution ee03.example.com node_type=execution [database] db00.example.com ...以下略... peerは、送信元 (src) 側に to で指定します。

Slide 51

Slide 51 text

51 Isolated ノードは Automation mesh へ進化!! ~ AAP 2.1 ノードと構成例③ ~ Control ノードと Execution ノード間に Hop ノードをはさんだ形 ネットワークが多段に Isolation されている場合に有用 ・Control ノード Managed ノードが 多段で Isolation されている場合は、 間に Hop ノードをはさみ、ジョブを 転送する ・各ノード間は Receptor によって通 信される Ctl #0 DB Managed Node Ctl #1 Ctl #2 Hop #0 Hop #1 Receptor (27199) Exe #0 ee Exe #1 ee Exe #3 ee Receptor (27199) ee ee ee

Slide 52

Slide 52 text

52 Tips : inventory ファイル記述例③ ~ AAP 2.1 ノードと構成例③ ~ [automationcontroller] aac00.example.com node_type=control peers=hop00.example.com,hop01.example.com aac01.example.com node_type=control peers=hop00.example.com,hop01.example.com aac02.example.com node_type=control peers=hop00.example.com,hop01.example.com [execution_nodes] hop00.example.com node_type=hop peers=ee00.example.com,ee01.example.com,ee02.example.com hop01.example.com node_type=hop peers=ee00.example.com,ee01.example.com,ee02.example.com ee00.example.com node_type=execution ee01.example.com node_type=execution ee02.example.com node_type=execution [database] db00.lab.fgrep.org ...以下略... peerは、送信元 (src) 側に to で指定します。

Slide 53

Slide 53 text

53 Automation mesh ネットワーク構成(例) AAP2.1 Execution AAP2.1 Control インターネット registry.redhat.io (EE) cloud.redhat.com (collections etc.) Private Automation Hub EE、Collections など入手 インターネット接続無し Receptor Receptor https port:27199 EE Playbook実行 ※ Hop は多段のIsolationの際に利用...など Controller / Execution / Hop の接続は Receptor (Port:27199) が行う EE は (Control / Hybrid / Execution ノード に必要となる。このため Private Automation Hubと接続すると良い インターネット接続無し EE https

Slide 54

Slide 54 text

AAP 2.1 への移行に関して ~ 注意点と実施方法 ~

Slide 55

Slide 55 text

55 AAP 1.2 から AAP 2.1へ - 考慮点① ~ 利用モジュールと Playbook の記述方法 ~ 先述の通りAAP 2.1 ではモジュールの提供方法が変わります! ・利用しているモジュールが提供されているか?また入手方法(Collections / Galaxy) ・Playbook / インベントリーの記述方法の違い(モジュール名 / localhost 記述の動作) について確認する ※Collections はモジュール名そのものが異なる ・初期は、『AAP2.1』+『2.9の実行環境』+『既存の Playbook』を利用しながら徐々 に2.12の環境に移行すると導入のハードルはぐっと下がります。 - firewalld: service: https permanent: yes state: enabled - ansible.posix.firewalld: service: https permanent: yes state: enabled Ansible 2.12 posix (firewalld) Ansible 2.9 (firewalld) 以下のファイルを使って一括定義も可能です https://github.com/ansible/ansible/blob/stable-2.12/lib/ansible/config/ansible_builtin_runtime.yml

Slide 56

Slide 56 text

[[email protected] ~]# awx-manage export_custom_venv /paty/to/venv # Virtual environment contents: aiohttp==3.7.4.post0 async-timeout==3.0.1 attrs==21.2.0 chardet==4.0.0 idna==3.2 idna-ssl==1.1.0 multidict==5.1.0 psutil==5.8.0 python-memcached==1.59 six==1.16.0 typing-extensions==3.10.0.2 yarl==1.6.3 56 AAP 1.2 から AAP 2.1へ - 考慮点② ~ virtualenv の実行環境コンテナへの移行 ~ ・移行元の virtualenv 環境の "pip freeze" を表示 ・requirements.txt にコピーして ansible-builder で実行環境を作成! aiohttp==3.7.4.post0 async-timeout==3.0.1 attrs==21.2.0 chardet==4.0.0 idna==3.2 idna-ssl==1.1.0 multidict==5.1.0 psutil==5.8.0 python-memcached==1.59 six==1.16.0 typing-extensions==3.10.0.2 yarl==1.6.3 requirements.txt

Slide 57

Slide 57 text

57 AAP1.2 からAAP2.1へのアップグレードパスは 2 つの方法がサポートされていま す。条件がありますので最適な方法を選択します。 1.インプレースアップグレード (./setup.sh) 移行元が RHEL8.4 (or later) + AAP 1.2 であることが条件 これより古い場合はあらかじめ上記バージョンに上げておく必要あり ・RHEL 7.x → RHEL 8 へのインプレースアップグレードはこちら ・Ansible Tower 3.7 以前 (既にEOLですが...) → 3.8 (AAP 1.2) に上げる際は、 サブスクリプション適応方法が変わっている可能性があります、こちらご参照 ください。 AAP 1.2 から AAP 2.1へ - 考慮点③ ~ アップグレード方法について ~

Slide 58

Slide 58 text

58 2.バックアップリストア (./setup.sh -b → ./setup.sh -r) 既存 OS が CentOS などで新規で AAP 2.1 環境を構築する場合の手法 但しバックアップリストアは同一 AAP バージョン間のみサポート! つまり以下のような手順となります。 ・新たに RHEL 8.4 (or later) をインストールする ・上記環境に AAP 1.2 をインストールする (./setup.sh) ・旧 AAP 1.2 環境をバックアップする (./setup.sh -b) ・新規インストールした AAP 1.2 環境にリストアする (./setup.sh -r) ・AAP 2.1 にインプレースアップグレードする AAP 1.2 から AAP 2.1へ - 考慮点③ ~ アップグレード方法について ~

Slide 59

Slide 59 text

59 赤帽エンジニアブログもご参照ください! ・Ansible Automation Platform 2.1 のご紹介 Part1 ・Ansible Automation Platform 2.1 のご紹介 Part2 - アップグレード編(その1) ・2022年のAnsibleとわたし ・Ansible Automation Platform 2.1 がリリースされました ...など AAP2.1 の情報

Slide 60

Slide 60 text

Thank you Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500.