#ansibleautomates
齊藤 秀喜(twitter:@saito_hideki)
レッドハット株式会社
Ansible Automation Platform プロダクトアップデート
~ AAP2.0とアップストリームの技術動向 ~
Copyright © 2021 Red Hat, Inc.
自己紹介
氏名: 齊藤 秀喜(Twitter: @saito_hideki)
所属: カスタマーエクスペリエンス&エンゲージメント/レッドハット株式会社
仕事: シニアソフトウェアメンテナンスエンジニア(Ansible Automation Platform)
趣味: Ansibleのトラブルシュート
Red Hat Ansible Automation Platform 2.0
Early Access版
Copyright © 2021 Red Hat, Inc.
はじめに
2021年7月15日にリリースされた、Red Hat Ansible Automation Platform v2.0(Early Access)の速報
と、利用しているOSSの現状をまとめてご紹介します。
❖ Red Hat Ansible Automation Platform 2.0 Early Access版 (AAP2.0) (20分)
❖ AAP2.0に関連するOSSプロダクトアップデート
➢ 実行環境 ★ (10分)
➢ 開発ツール
➢ コンテンツ提供
❖ Q&A (15分)
Copyright © 2021 Red Hat, Inc.
Red Hat Ansible Automation Platform 2.0 Early Access版
Early Access版は、Red Hat Customer Portalからダウンロードすることができます。
Ansible Automation Platformとしての完全な機能が提供されていますが、まだまだ実験的
な意味合いが強く、最終的には2021年9月29-30日に開催されているAnsibleFestで今後の
ロードマップが公式発表となる予定です。
* AnsibleFest 2021(https://www.ansible.com/ansiblefest)
* ダウンロード: https://access.redhat.com/downloads/
Early Access版についての詳細や注意点は、以下のリンクで紹介されています。
* https://access.redhat.com/articles/6179101
※Early Access版の情報取得にはRed Hat Customer Portalのアカウントが必要です
Copyright © 2021 Red Hat, Inc.
AAP2.0を構成するOSSプロダクト
AAP 2.0を構成する主要コンポーネントと、主要なOSSのAnsibleプロダクトのバージョンと
の対比を表にすると、以下のような構成となります。
AAP 2.0 Component OSS Product
Ansible Engine ansible
Ansible Automation Controller(旧Ansible Tower) awx
Ansible Runner ansible-runner
Ansible Execution Environment(ee) awx-ee
Private Automation Hub galaxy_ng
Copyright © 2021 Red Hat, Inc.
AAP2.0の変更点
AAP1.xからの変更点は多数ありますが、大きなアップデートとしては以下の5点です。
1. Ansible Engineのバージョンアップ
2. Automation Controller のジョブ実行環境の刷新(コンテナ化)
3. Automation Controller UIの刷新
4. コントロールプレーンのロジックの見直しによるパフォーマンスの向上
5. Isolated Nodeの廃止
Copyright © 2021 Red Hat, Inc.
Ansible Engineのバージョンアップ
Ansible Engineのansible-coreバージョンが最新リリースの2.11.2となりました。
従来のAAP1.xで利用されていた2.9.xも引き続きサポートされます。
ansible-core 2.11.2(デフォルトのジョブ実行環境)には、以下のCollectionsがビルトインさ
れています(https://access.redhat.com/articles/4993781)。
amazon.aws ansible.controller ansible.netcommon ansible.network ansible.posix
ansible.security ansible.utils ansible.windows arista.eos cisco.asa
cisco.ios cisco.iosxr cisco.nxos cloud.common frr.frr
ibm.qradar junipernetworks.junos kubernetes.core openvswitch.openvswitch redhat.insights
redhat.openshift redhat.rhel_system_roles redhat.rhv redhat.satellite servicenow.itsm
splunk.es trendmicro.deepsec vmware.vmware_rest vyos.vyos
Copyright © 2021 Red Hat, Inc.
Automation Controller のジョブ実行環境の刷新(1/4)
Automation ControllerのAnsible実行環境が、Pythonのvirtualenvからコンテナベースの実
行環境(Execution Environment)に変更となりました。
従来のbubblewrapを利用した実行環境は安全で軽量ですが、virtualenvによる実行環境を
ベースとしていたことで、無視できないトラブルも抱えていました。
例をあげると、
1. カスタマイズした実行環境作成時に発生するライブラリの競合、バージョンの不一致、
不適切なファイル権限の設定、システムワイドへの意図しないインストール等々
2. システム移行などのタイミングで、実行環境を再作成する際の再現性
実行環境のコンテナ化により、安全性を確保しつつ、実行環境の可搬性も確保できるように
なりました。
Copyright © 2021 Red Hat, Inc.
Automation Controller のジョブ実行環境の刷新(2/4)
AAP2.0では、インストール時点で以下の4つのコンテナ接続情報が登録されています。
2.は特別なコンテナとしてロックされており、全てのコンテナが存在しない場合の、代替の
ジョブ実行環境として予約されています。そのため、利用者はUI経由でこれを削除したり、
設定を変更することができません。
1. Ansible Engine 2.9 execution environment
-> 従来のAnsible 2.9(2021年7月15日時点では2.9.23)を利用したジョブ実行環境
2. Control Plane Execution Environment
-> Project Updateなどでコントロールプレーンが利用するジョブ実行環境
3. Default execution environment
-> ユーザが作成したジョブテンプレートが利用するデフォルトのジョブ実行環境
4. Minimal execution environment
-> Collectionsを含まない軽量なジョブ実行環境
利用者が独自にカスタマイズしたコンテナイメージも利用可能となっています。
Copyright © 2021 Red Hat, Inc.
AAP1.x
AAP2.0
Automation Controller のジョブ実行環境の刷新(3/4)
receptor container(ee)
ansible-runner
ansible-playbook
virtualenv:/var/lib/awx/venv/ansible
system-wide: ansible-playbook
Copyright © 2021 Red Hat, Inc.
Automation Controller のジョブ実行環境の刷新(4/4)
コンテナベースでの実行環境への移行にともなって、Private Automation Hubにプライベートコンテナレ
ジストリとしての機能が追加されました。
Private Automation Hubを利用すれば、インターネット接続に制約のある環境に配置されたAutomation
Controllerに対して、Collectionsのリポジトリや、コンテナイメージを提供することができます。
※一度配置したコンテンツは現状削除できません
Copyright © 2021 Red Hat, Inc.
Automation Controller UIの刷新
WebUIであるダッシュボードは、他のRed Hat製品と共通のデザインとなりました。
Copyright © 2021 Red Hat, Inc.
コントロールプレーンのロジックの見直しによるパフォーマンスの向上
AAP2.0では、ジョブ実行関連のデータベーステーブル構造とハンドリング部分のロジックを
改善しました。これによって、AAP1.xでボトルネックとなることの多かった、ジョブイベン
トデータの処理時間が大幅に改善されています。
また、データベースであるPostgreSQLのバージョンもv10からv12に変更されています。
レコード
...
...
...
...
イベントテーブル
レコード
...
...
...
...
レコード
...
...
...
...
レコード
...
...
...
...
イベントテーブルB イベントテーブルC
イベントテーブルA
パーティショニング
による負荷軽減
Copyright © 2021 Red Hat, Inc.
Isolated Nodeの廃止
AAP2.0では、ジョブの実行環境がコンテナ化されました。そのため、Ansible Runnerと
virtualenv環境を利用していた、従来のIsolated Nodeモデルは利用できなくなりました。
次期バージョンのAAP2.1では、更に別の手段が提供される可能性はありますが、現時点での
代替手段としては、2つの選択肢があります。
A. ジャンプホストを利用する
https://docs.ansible.com/ansible-tower/latest/html/administration/tipsandtricks.html
B. コンテナグループを利用する(OpenShift/Kubernetes環境が必要)
https://docs.ansible.com/ansible-tower/latest/html/administration/external_execution_envs.html
AAP2.0に関連するOSSプロダクトアップデート
Copyright © 2021 Red Hat, Inc.
Ansible配下のOSSプロダクト
Ansibleプロジェクトには、数多くのOSSプロダクトが存在しています。
活発に開発が行われているプロダクトもあれば、忘れ去られてしまって、すでにメンテナンスされていな
いものまで多種多様です。
ここでは、それらを用途別やリポジトリツリー別にカテゴライズし、AAP2.0に関連しているものを中心に
Ansible配下のOSSプロジェクトを俯瞰しつつ、現時点での役割と機能、最新のバージョン情報、ソース
コードリポジトリやドキュメントの所在などの情報をご紹介します。
Copyright © 2021 Red Hat, Inc.
現在のAnsibleのプロダクト群は、用途別に以下の3つのカテゴリに分類できます。
※1 ダウンストリーム版:Ansible Automation Controller(旧Ansible Tower)
※2 Execution Environment(awx-ee, network-ee, cloud-ee)
※3 ダウンストリーム版:Ansible Private Automation Hub
Ansibleの主なアップストリームプロジェクト
● ansible
● ansible-navigator
● ansible-runner
● awx ※1
● awx-operator
● ee ※2
● receptor
実行環境
● ansible-builder
● ansible-lint
● molecule
開発ツール
● ansible-collections/*
● galaxy_ng ...※3
● workshops
コンテンツ提供環境
Copyright © 2021 Red Hat, Inc.
Ansibleのソースコードリポジトリ
現在のAnsibleのプロダクト群のGitHubリポジトリは、大きく3つに分割されています。
# Organization URL Repositories
[1] ansible https://github.com/ansible 189
[2] ansible-collections https://github.com/ansible-collections 94
[3] ansible-community https://github.com/ansible-community 71
Copyright © 2021 Red Hat, Inc.
Ansibleのプロジェクト
現在のAnsibleのプロダクト群のGitHubリポジトリは、大きく3つに分割されています。
(他にも、ここに紹介していない多くのプロダクト群が存在しています)
● ansible
● ansible-builder
● ansible-navigator
● ansible-runner
● awx
● awx-operator
● ee
● galaxy_ng
● receptor
● workshops
[1]ansible
● ansible-collections/*
[2]collections
● ansible-lint
● molecule
[3]community
Copyright © 2021 Red Hat, Inc.
現在の動向
以降では、用途別に分類した各カテゴリ毎の現在の状況をご紹介します。
❏ 実行環境
❏ 開発ツール
❏ コンテンツ提供環境
プロダクトアップデート
~ 実行環境 ~
Copyright © 2021 Red Hat, Inc.
実行環境(CLI/TUI)
Ansibleプロジェクトで提供しているTUIおよびCLIツールは3つです。ansible-navigatorが新たに加わり
ました。
ansible-navigator
ansible-runner
ansible
container(ee)
ansible
Managed node
Managed node
Managed node
Managed node
Managed node
Users
Control node
Copyright © 2021 Red Hat, Inc.
Ansible
現在のAnsibleのロードマップはansible-coreとAnsibleとして、それぞれ公開されています。
[ansible-core]
* ansibleのCLI(ansible-playbookなど)と、コアモジュール/プラグイン群
* v2.10.xではansible-baseだったがv2.11でansible-coreに改称された
* 2021年7月時点での最新版は v2.11.2, v2.10.11
* ロードマップ
https://docs.ansible.com/ansible-core/devel/roadmap/ansible_core_roadmap_index.html
[Ansible]
* ansible-core(base)とcollectionsを含んでパッケージ化されたリリース
* バージョン3系がansible-base v2.10.x、4系がansible-core v2.11と一緒に提供される
* 2021/7月時点での最新版は v4.2.0(ansible-core v2.11.2), v3.4.0(ansible-base v2.10.11)
* Ansible 2.9系はコア部分の機能追加は実施されず、セキュリティフィックスのみとなっている
* ロードマップ
https://docs.ansible.com/ansible/latest/roadmap/ansible_roadmap_index.html
Copyright © 2021 Red Hat, Inc.
Ansible Runner
AWXやAnsible Navigatorなどの他のツールから、ansible-playbookコマンドを起動するためのラン
チャーとして利用されます。
Ansible Runnerは、v1とv2で実行環境の仕組みが大きく異なっており、コンテナベースの実行環境に対応
しているのはv2系となっています。
* AAP1.2.x(Ansible Tower 3.8.x)では v1系が採用されている
* AAP2.0ではv2系が採用され、コンテナベースでの実行環境を利用するよう変更された
* 2021年7月時点での最新版は v1.4.6, v2.0.1
* v2.0.1では、コンテナバックエンドとしてPodmanとDockerを選択可能
* ソースコードリポジトリ: https://github.com/ansible/ansible-runner.git
* ドキュメント: https://ansible-runner.readthedocs.io/en/latest/
Copyright © 2021 Red Hat, Inc.
Ansible Navigator
Ansible Navigatorは、新たにAnsibleプロジェクトに加わった、テキストベースのansible-coreユーザイ
ンターフェイスです。
開発が始まったばかりのプロジェクトですが、AWXとAnsibleの中間のイメージで、TUIとして若干リッチ
なユーザインターフェイスを提供してくれます。
* 2021年7月時点での最新版は v1.0.0
* ソースコード:
https://github.com/ansible/ansible-navigator.git
* デモ動画:
https://www.youtube.com/watch?v=J9PBKi8ydi4
Copyright © 2021 Red Hat, Inc.
AWX
AWXは、Ansible Automation Controllerの先行開発版としての位置付けで、OSSプロジェクトとして公
開されています。
現在のバージョンでは、OpenShiftおよびKubernetes上での動作を想定しており、従来のローカル環境で
のDockerコンテナ起動はサポートされていません。
* OpenShiftおよびKubernetes環境上にデプロイされる
* インストーラが、Ansible Playbookからawx-operatorに変更された
* 2021年7月時点での最新版は v19.2.2
* ソースコード: https://github.com/ansible/awx.git
Copyright © 2021 Red Hat, Inc.
AWX Execution Environment(ee)
ansible-coreの実行環境となるコンテナです。
Receptor、Ansible Runner、Ansibleがインストールされたコンテナで、Ansibleプロジェクトが公開して
いるeeは、quay.ioから入手することができます。
Ansible Builderを利用すれば、利用者がカスタマイズしたeeのコンテナイメージを作成することもできま
すが、ドキュメントやビルド環境の整備待ちという状態で、現時点でチャレンジするには若干敷居が高い
状況です。
* Ansibleコミュニティイメージレジストリ: https://quay.io/organization/ansible
* Red Hat公式イメージレジストリ: https://registry.redhat.io/
* ドキュメント:
https://docs.ansible.com/automation-controller/latest/html/userguide/execution_environments.html
Copyright © 2021 Red Hat, Inc.
AWXのジョブ実行フロー
awxでのAnsible Playbook実行環境を整理すると、このような構成図となります。
AAP2.0のOpenShift環境への対応は、現時点ではまだ発表されていませんが、恐らく同様のアーキテク
チャとなるものと思われます。
Managed
node
Users
OpenShift/Kubernetes Project
awx pod awx-postgresql pod
awx-web
awx-task
redis
postgres
R
automation-job
awx-ee
Copyright © 2021 Red Hat, Inc.
AWXとReceptor(1/2)
現在AWXは、専用の実行環境であるautomation-jobコンテナ経由でジョブを実行します。
AWXのジョブ実行処理は、awx-taskコンテナ->awx-eeコンテナ->automation-jobコンテナという流れ
で、Receptorを利用して中継されます。
Receptorは、Pythonを中心として実装されているAnsibleプロジェクトの中では珍しく、Go言語で実装さ
れています。
* コントローラと実行環境(ee)を接続するメッシュネットワークを構築することを目的としている
* Ansible Playbookの実行にはAnsible Runnerを利用する
* 2021年7月時点での最新版は v1.0.0
* ソースコード: https://github.com/ansible/receptor.git
* 参考資料: https://www.slideshare.net/h-saito/ansible-fest-2020
Copyright © 2021 Red Hat, Inc.
AWXとReceptor(2/2)
awx-taskがジョブ実行用にautomation-jobを生成し、awx-ee経由でPlaybookを実行します。
awx pod
automation-job-<ID>
container
31
Managed
node
awx-task
container
Task scheduler
receptor
awx-ee
container
receptor
ansible-runner
ansible-playbook
Copyright © 2021 Red Hat, Inc.
eeのカスタマイズ
AWXのPlaybook実行環境も、これまでのvirtualenvからeeコンテナに移行しています。
awx-eeを参考につつ、Ansible Builderを利用して、ユーザが自身の環境にあわせてカスタマイズしたコン
テナイメージを作成することができます。カスタマイズのベースにはansible-runnerコンテナイメージを
利用ます。
* awx-ee: https://github.com/ansible/awx-ee.git
* ベースイメージ: https://quay.io/repository/ansible/awx-ee
プロダクトアップデート
~ 開発ツール ~
Copyright © 2021 Red Hat, Inc.
Ansible Builder
AnsibleとAnsible Runnerがコンテナベースの実行環境への対応にともなって、利用者が自身の環境にあ
わせてカスタマイズしたコンテナ実行環境できるよう、カスタムコンテナイメージをビルドするための
ツールとして、Ansible Builderが提供されています。
AWXやAnsible Runner v2が利用するExecution Environmentコンテナも、Ansible Builderでビルドされ
たイメージから起動されています。
* コンテナイメージ作成時のバックエンドとしてPodmanとDockerを選択可能
* 2021年7月時点での最新版はv1.0.1
* カスタムコンテナのベースイメージ: https://quay.io/repository/ansible/ansible-runner
* ソースコード: https://github.com/ansible/ansible-builder.git
* ドキュメント: https://ansible-builder.readthedocs.io/en/latest/
プロダクトアップデート
~ コンテンツ提供環境 ~
Copyright © 2021 Red Hat, Inc.
Galaxy NG
Ansibleが利用するCollectionsリポジトリを公開するためのポータルサイトを提供します。
AAPが提供するPrivate Automation Hubのベースとなっています。
* Pulp(https://pulpproject.org/)のプラグインとして実装されている
* 2021年7月時点での最新版はv4.3.2
* 次期リリースv4.4.0に向けて、HA構成、コンテンツの削除といった機能追加を予定している
* ソースコード: https://github.com/ansible/galaxy_ng.git
* ロードマップ: https://github.com/ansible/galaxy_ng/blob/master/ROADMAP.rst
まとめ
Copyright © 2021 Red Hat, Inc.
まとめ
本セッションでは、AAP2.0 Early Access版の速報と、それに関連するOSSの現状について
ご紹介しました。
AAPのロードマップについては、これまで通りAnsibleFest(2021年9月29〜30日)で発表さ
れる予定です。是非ご参加ください。
* AnsibleFest 2021(https://www.ansible.com/ansiblefest)
Ansible automationplatform product updates 2021

Ansible automationplatform product updates 2021

  • 1.
    #ansibleautomates 齊藤 秀喜(twitter:@saito_hideki) レッドハット株式会社 Ansible AutomationPlatform プロダクトアップデート ~ AAP2.0とアップストリームの技術動向 ~
  • 2.
    Copyright © 2021Red Hat, Inc. 自己紹介 氏名: 齊藤 秀喜(Twitter: @saito_hideki) 所属: カスタマーエクスペリエンス&エンゲージメント/レッドハット株式会社 仕事: シニアソフトウェアメンテナンスエンジニア(Ansible Automation Platform) 趣味: Ansibleのトラブルシュート
  • 3.
    Red Hat AnsibleAutomation Platform 2.0 Early Access版
  • 4.
    Copyright © 2021Red Hat, Inc. はじめに 2021年7月15日にリリースされた、Red Hat Ansible Automation Platform v2.0(Early Access)の速報 と、利用しているOSSの現状をまとめてご紹介します。 ❖ Red Hat Ansible Automation Platform 2.0 Early Access版 (AAP2.0) (20分) ❖ AAP2.0に関連するOSSプロダクトアップデート ➢ 実行環境 ★ (10分) ➢ 開発ツール ➢ コンテンツ提供 ❖ Q&A (15分)
  • 5.
    Copyright © 2021Red Hat, Inc. Red Hat Ansible Automation Platform 2.0 Early Access版 Early Access版は、Red Hat Customer Portalからダウンロードすることができます。 Ansible Automation Platformとしての完全な機能が提供されていますが、まだまだ実験的 な意味合いが強く、最終的には2021年9月29-30日に開催されているAnsibleFestで今後の ロードマップが公式発表となる予定です。 * AnsibleFest 2021(https://www.ansible.com/ansiblefest) * ダウンロード: https://access.redhat.com/downloads/ Early Access版についての詳細や注意点は、以下のリンクで紹介されています。 * https://access.redhat.com/articles/6179101 ※Early Access版の情報取得にはRed Hat Customer Portalのアカウントが必要です
  • 6.
    Copyright © 2021Red Hat, Inc. AAP2.0を構成するOSSプロダクト AAP 2.0を構成する主要コンポーネントと、主要なOSSのAnsibleプロダクトのバージョンと の対比を表にすると、以下のような構成となります。 AAP 2.0 Component OSS Product Ansible Engine ansible Ansible Automation Controller(旧Ansible Tower) awx Ansible Runner ansible-runner Ansible Execution Environment(ee) awx-ee Private Automation Hub galaxy_ng
  • 7.
    Copyright © 2021Red Hat, Inc. AAP2.0の変更点 AAP1.xからの変更点は多数ありますが、大きなアップデートとしては以下の5点です。 1. Ansible Engineのバージョンアップ 2. Automation Controller のジョブ実行環境の刷新(コンテナ化) 3. Automation Controller UIの刷新 4. コントロールプレーンのロジックの見直しによるパフォーマンスの向上 5. Isolated Nodeの廃止
  • 8.
    Copyright © 2021Red Hat, Inc. Ansible Engineのバージョンアップ Ansible Engineのansible-coreバージョンが最新リリースの2.11.2となりました。 従来のAAP1.xで利用されていた2.9.xも引き続きサポートされます。 ansible-core 2.11.2(デフォルトのジョブ実行環境)には、以下のCollectionsがビルトインさ れています(https://access.redhat.com/articles/4993781)。 amazon.aws ansible.controller ansible.netcommon ansible.network ansible.posix ansible.security ansible.utils ansible.windows arista.eos cisco.asa cisco.ios cisco.iosxr cisco.nxos cloud.common frr.frr ibm.qradar junipernetworks.junos kubernetes.core openvswitch.openvswitch redhat.insights redhat.openshift redhat.rhel_system_roles redhat.rhv redhat.satellite servicenow.itsm splunk.es trendmicro.deepsec vmware.vmware_rest vyos.vyos
  • 9.
    Copyright © 2021Red Hat, Inc. Automation Controller のジョブ実行環境の刷新(1/4) Automation ControllerのAnsible実行環境が、Pythonのvirtualenvからコンテナベースの実 行環境(Execution Environment)に変更となりました。 従来のbubblewrapを利用した実行環境は安全で軽量ですが、virtualenvによる実行環境を ベースとしていたことで、無視できないトラブルも抱えていました。 例をあげると、 1. カスタマイズした実行環境作成時に発生するライブラリの競合、バージョンの不一致、 不適切なファイル権限の設定、システムワイドへの意図しないインストール等々 2. システム移行などのタイミングで、実行環境を再作成する際の再現性 実行環境のコンテナ化により、安全性を確保しつつ、実行環境の可搬性も確保できるように なりました。
  • 10.
    Copyright © 2021Red Hat, Inc. Automation Controller のジョブ実行環境の刷新(2/4) AAP2.0では、インストール時点で以下の4つのコンテナ接続情報が登録されています。 2.は特別なコンテナとしてロックされており、全てのコンテナが存在しない場合の、代替の ジョブ実行環境として予約されています。そのため、利用者はUI経由でこれを削除したり、 設定を変更することができません。 1. Ansible Engine 2.9 execution environment -> 従来のAnsible 2.9(2021年7月15日時点では2.9.23)を利用したジョブ実行環境 2. Control Plane Execution Environment -> Project Updateなどでコントロールプレーンが利用するジョブ実行環境 3. Default execution environment -> ユーザが作成したジョブテンプレートが利用するデフォルトのジョブ実行環境 4. Minimal execution environment -> Collectionsを含まない軽量なジョブ実行環境 利用者が独自にカスタマイズしたコンテナイメージも利用可能となっています。
  • 11.
    Copyright © 2021Red Hat, Inc. AAP1.x AAP2.0 Automation Controller のジョブ実行環境の刷新(3/4) receptor container(ee) ansible-runner ansible-playbook virtualenv:/var/lib/awx/venv/ansible system-wide: ansible-playbook
  • 12.
    Copyright © 2021Red Hat, Inc. Automation Controller のジョブ実行環境の刷新(4/4) コンテナベースでの実行環境への移行にともなって、Private Automation Hubにプライベートコンテナレ ジストリとしての機能が追加されました。 Private Automation Hubを利用すれば、インターネット接続に制約のある環境に配置されたAutomation Controllerに対して、Collectionsのリポジトリや、コンテナイメージを提供することができます。 ※一度配置したコンテンツは現状削除できません
  • 13.
    Copyright © 2021Red Hat, Inc. Automation Controller UIの刷新 WebUIであるダッシュボードは、他のRed Hat製品と共通のデザインとなりました。
  • 14.
    Copyright © 2021Red Hat, Inc. コントロールプレーンのロジックの見直しによるパフォーマンスの向上 AAP2.0では、ジョブ実行関連のデータベーステーブル構造とハンドリング部分のロジックを 改善しました。これによって、AAP1.xでボトルネックとなることの多かった、ジョブイベン トデータの処理時間が大幅に改善されています。 また、データベースであるPostgreSQLのバージョンもv10からv12に変更されています。 レコード ... ... ... ... イベントテーブル レコード ... ... ... ... レコード ... ... ... ... レコード ... ... ... ... イベントテーブルB イベントテーブルC イベントテーブルA パーティショニング による負荷軽減
  • 15.
    Copyright © 2021Red Hat, Inc. Isolated Nodeの廃止 AAP2.0では、ジョブの実行環境がコンテナ化されました。そのため、Ansible Runnerと virtualenv環境を利用していた、従来のIsolated Nodeモデルは利用できなくなりました。 次期バージョンのAAP2.1では、更に別の手段が提供される可能性はありますが、現時点での 代替手段としては、2つの選択肢があります。 A. ジャンプホストを利用する https://docs.ansible.com/ansible-tower/latest/html/administration/tipsandtricks.html B. コンテナグループを利用する(OpenShift/Kubernetes環境が必要) https://docs.ansible.com/ansible-tower/latest/html/administration/external_execution_envs.html
  • 16.
  • 17.
    Copyright © 2021Red Hat, Inc. Ansible配下のOSSプロダクト Ansibleプロジェクトには、数多くのOSSプロダクトが存在しています。 活発に開発が行われているプロダクトもあれば、忘れ去られてしまって、すでにメンテナンスされていな いものまで多種多様です。 ここでは、それらを用途別やリポジトリツリー別にカテゴライズし、AAP2.0に関連しているものを中心に Ansible配下のOSSプロジェクトを俯瞰しつつ、現時点での役割と機能、最新のバージョン情報、ソース コードリポジトリやドキュメントの所在などの情報をご紹介します。
  • 18.
    Copyright © 2021Red Hat, Inc. 現在のAnsibleのプロダクト群は、用途別に以下の3つのカテゴリに分類できます。 ※1 ダウンストリーム版:Ansible Automation Controller(旧Ansible Tower) ※2 Execution Environment(awx-ee, network-ee, cloud-ee) ※3 ダウンストリーム版:Ansible Private Automation Hub Ansibleの主なアップストリームプロジェクト ● ansible ● ansible-navigator ● ansible-runner ● awx ※1 ● awx-operator ● ee ※2 ● receptor 実行環境 ● ansible-builder ● ansible-lint ● molecule 開発ツール ● ansible-collections/* ● galaxy_ng ...※3 ● workshops コンテンツ提供環境
  • 19.
    Copyright © 2021Red Hat, Inc. Ansibleのソースコードリポジトリ 現在のAnsibleのプロダクト群のGitHubリポジトリは、大きく3つに分割されています。 # Organization URL Repositories [1] ansible https://github.com/ansible 189 [2] ansible-collections https://github.com/ansible-collections 94 [3] ansible-community https://github.com/ansible-community 71
  • 20.
    Copyright © 2021Red Hat, Inc. Ansibleのプロジェクト 現在のAnsibleのプロダクト群のGitHubリポジトリは、大きく3つに分割されています。 (他にも、ここに紹介していない多くのプロダクト群が存在しています) ● ansible ● ansible-builder ● ansible-navigator ● ansible-runner ● awx ● awx-operator ● ee ● galaxy_ng ● receptor ● workshops [1]ansible ● ansible-collections/* [2]collections ● ansible-lint ● molecule [3]community
  • 21.
    Copyright © 2021Red Hat, Inc. 現在の動向 以降では、用途別に分類した各カテゴリ毎の現在の状況をご紹介します。 ❏ 実行環境 ❏ 開発ツール ❏ コンテンツ提供環境
  • 22.
  • 23.
    Copyright © 2021Red Hat, Inc. 実行環境(CLI/TUI) Ansibleプロジェクトで提供しているTUIおよびCLIツールは3つです。ansible-navigatorが新たに加わり ました。 ansible-navigator ansible-runner ansible container(ee) ansible Managed node Managed node Managed node Managed node Managed node Users Control node
  • 24.
    Copyright © 2021Red Hat, Inc. Ansible 現在のAnsibleのロードマップはansible-coreとAnsibleとして、それぞれ公開されています。 [ansible-core] * ansibleのCLI(ansible-playbookなど)と、コアモジュール/プラグイン群 * v2.10.xではansible-baseだったがv2.11でansible-coreに改称された * 2021年7月時点での最新版は v2.11.2, v2.10.11 * ロードマップ https://docs.ansible.com/ansible-core/devel/roadmap/ansible_core_roadmap_index.html [Ansible] * ansible-core(base)とcollectionsを含んでパッケージ化されたリリース * バージョン3系がansible-base v2.10.x、4系がansible-core v2.11と一緒に提供される * 2021/7月時点での最新版は v4.2.0(ansible-core v2.11.2), v3.4.0(ansible-base v2.10.11) * Ansible 2.9系はコア部分の機能追加は実施されず、セキュリティフィックスのみとなっている * ロードマップ https://docs.ansible.com/ansible/latest/roadmap/ansible_roadmap_index.html
  • 25.
    Copyright © 2021Red Hat, Inc. Ansible Runner AWXやAnsible Navigatorなどの他のツールから、ansible-playbookコマンドを起動するためのラン チャーとして利用されます。 Ansible Runnerは、v1とv2で実行環境の仕組みが大きく異なっており、コンテナベースの実行環境に対応 しているのはv2系となっています。 * AAP1.2.x(Ansible Tower 3.8.x)では v1系が採用されている * AAP2.0ではv2系が採用され、コンテナベースでの実行環境を利用するよう変更された * 2021年7月時点での最新版は v1.4.6, v2.0.1 * v2.0.1では、コンテナバックエンドとしてPodmanとDockerを選択可能 * ソースコードリポジトリ: https://github.com/ansible/ansible-runner.git * ドキュメント: https://ansible-runner.readthedocs.io/en/latest/
  • 26.
    Copyright © 2021Red Hat, Inc. Ansible Navigator Ansible Navigatorは、新たにAnsibleプロジェクトに加わった、テキストベースのansible-coreユーザイ ンターフェイスです。 開発が始まったばかりのプロジェクトですが、AWXとAnsibleの中間のイメージで、TUIとして若干リッチ なユーザインターフェイスを提供してくれます。 * 2021年7月時点での最新版は v1.0.0 * ソースコード: https://github.com/ansible/ansible-navigator.git * デモ動画: https://www.youtube.com/watch?v=J9PBKi8ydi4
  • 27.
    Copyright © 2021Red Hat, Inc. AWX AWXは、Ansible Automation Controllerの先行開発版としての位置付けで、OSSプロジェクトとして公 開されています。 現在のバージョンでは、OpenShiftおよびKubernetes上での動作を想定しており、従来のローカル環境で のDockerコンテナ起動はサポートされていません。 * OpenShiftおよびKubernetes環境上にデプロイされる * インストーラが、Ansible Playbookからawx-operatorに変更された * 2021年7月時点での最新版は v19.2.2 * ソースコード: https://github.com/ansible/awx.git
  • 28.
    Copyright © 2021Red Hat, Inc. AWX Execution Environment(ee) ansible-coreの実行環境となるコンテナです。 Receptor、Ansible Runner、Ansibleがインストールされたコンテナで、Ansibleプロジェクトが公開して いるeeは、quay.ioから入手することができます。 Ansible Builderを利用すれば、利用者がカスタマイズしたeeのコンテナイメージを作成することもできま すが、ドキュメントやビルド環境の整備待ちという状態で、現時点でチャレンジするには若干敷居が高い 状況です。 * Ansibleコミュニティイメージレジストリ: https://quay.io/organization/ansible * Red Hat公式イメージレジストリ: https://registry.redhat.io/ * ドキュメント: https://docs.ansible.com/automation-controller/latest/html/userguide/execution_environments.html
  • 29.
    Copyright © 2021Red Hat, Inc. AWXのジョブ実行フロー awxでのAnsible Playbook実行環境を整理すると、このような構成図となります。 AAP2.0のOpenShift環境への対応は、現時点ではまだ発表されていませんが、恐らく同様のアーキテク チャとなるものと思われます。 Managed node Users OpenShift/Kubernetes Project awx pod awx-postgresql pod awx-web awx-task redis postgres R automation-job awx-ee
  • 30.
    Copyright © 2021Red Hat, Inc. AWXとReceptor(1/2) 現在AWXは、専用の実行環境であるautomation-jobコンテナ経由でジョブを実行します。 AWXのジョブ実行処理は、awx-taskコンテナ->awx-eeコンテナ->automation-jobコンテナという流れ で、Receptorを利用して中継されます。 Receptorは、Pythonを中心として実装されているAnsibleプロジェクトの中では珍しく、Go言語で実装さ れています。 * コントローラと実行環境(ee)を接続するメッシュネットワークを構築することを目的としている * Ansible Playbookの実行にはAnsible Runnerを利用する * 2021年7月時点での最新版は v1.0.0 * ソースコード: https://github.com/ansible/receptor.git * 参考資料: https://www.slideshare.net/h-saito/ansible-fest-2020
  • 31.
    Copyright © 2021Red Hat, Inc. AWXとReceptor(2/2) awx-taskがジョブ実行用にautomation-jobを生成し、awx-ee経由でPlaybookを実行します。 awx pod automation-job-<ID> container 31 Managed node awx-task container Task scheduler receptor awx-ee container receptor ansible-runner ansible-playbook
  • 32.
    Copyright © 2021Red Hat, Inc. eeのカスタマイズ AWXのPlaybook実行環境も、これまでのvirtualenvからeeコンテナに移行しています。 awx-eeを参考につつ、Ansible Builderを利用して、ユーザが自身の環境にあわせてカスタマイズしたコン テナイメージを作成することができます。カスタマイズのベースにはansible-runnerコンテナイメージを 利用ます。 * awx-ee: https://github.com/ansible/awx-ee.git * ベースイメージ: https://quay.io/repository/ansible/awx-ee
  • 33.
  • 34.
    Copyright © 2021Red Hat, Inc. Ansible Builder AnsibleとAnsible Runnerがコンテナベースの実行環境への対応にともなって、利用者が自身の環境にあ わせてカスタマイズしたコンテナ実行環境できるよう、カスタムコンテナイメージをビルドするための ツールとして、Ansible Builderが提供されています。 AWXやAnsible Runner v2が利用するExecution Environmentコンテナも、Ansible Builderでビルドされ たイメージから起動されています。 * コンテナイメージ作成時のバックエンドとしてPodmanとDockerを選択可能 * 2021年7月時点での最新版はv1.0.1 * カスタムコンテナのベースイメージ: https://quay.io/repository/ansible/ansible-runner * ソースコード: https://github.com/ansible/ansible-builder.git * ドキュメント: https://ansible-builder.readthedocs.io/en/latest/
  • 35.
  • 36.
    Copyright © 2021Red Hat, Inc. Galaxy NG Ansibleが利用するCollectionsリポジトリを公開するためのポータルサイトを提供します。 AAPが提供するPrivate Automation Hubのベースとなっています。 * Pulp(https://pulpproject.org/)のプラグインとして実装されている * 2021年7月時点での最新版はv4.3.2 * 次期リリースv4.4.0に向けて、HA構成、コンテンツの削除といった機能追加を予定している * ソースコード: https://github.com/ansible/galaxy_ng.git * ロードマップ: https://github.com/ansible/galaxy_ng/blob/master/ROADMAP.rst
  • 37.
  • 38.
    Copyright © 2021Red Hat, Inc. まとめ 本セッションでは、AAP2.0 Early Access版の速報と、それに関連するOSSの現状について ご紹介しました。 AAPのロードマップについては、これまで通りAnsibleFest(2021年9月29〜30日)で発表さ れる予定です。是非ご参加ください。 * AnsibleFest 2021(https://www.ansible.com/ansiblefest)