SlideShare une entreprise Scribd logo
1  sur  72
Télécharger pour lire hors ligne
Ansible AWXを導入してみた
Ansible Night in Nagoya 2019.02
#ansiblejp
アビームシステムズ株式会社
後藤 卓
山口 大地
アジェンダ
1. 自己紹介
2. Ansible AWXとは?
3. AWX導入システム
4. AWXを導入した目的
5. AWX導入方法
6. AWX導入で苦労したこと
7. AWXを使った今後
8. 最後に
自己紹介
1. アビームシステムズについて
2. 発表者について
© 2019 ABeam Systems Ltd.3
アビームシステムズについて(会社概要)
© 2019 ABeam Systems Ltd.4
アビームシステムズについて(当社のDNA)
© 2019 ABeam Systems Ltd.5
発表者について
• 後藤 卓(Goto Suguru)
• クラウド系インフラ担当
➢ AWSで稼働するシステムの設計、構築、保守、運用
➢ Ansibleやスクリプトによる自動化を進めてます(主には保守、運用面)
• Ansible歴 2年
➢ 最近は “手順書を書く量 <<< Playbookを書く量” → Ansibleおじさん化
• 山口 大地(Yamaguchi Daichi)
• サーバ系インフラ担当
➢ 物理(サーバ、ストレージ、電源、バックアップ)、仮想(VMWare)、AWS関連
➢ 最近はDockerに傾倒。Kubernetesやりたい
• 本発表では主にインフラ基盤側を担当
• Ansible歴 0年
Ansible AWXとは?
1. 概要
2. アーキテクチャ
3. AWXの階層構造
4. こんなことが出来る ≒ Ansibleでは出来ないこと
Ansible AWXとは?
1. 概要
2. アーキテクチャ
3. AWXの階層構造
4. こんなことが出来る ≒ Ansibleでは出来ないこと
© 2019 ABeam Systems Ltd.8
Ansible AWXとは?(概要)
• Ansible AWX
• AWX provides a web-based user interface, REST API, and task engine built on
top of Ansible. It is the upstream project for Tower, a commercial derivative of
AWX.
• AWXはAnsible上に構築されたWebベースのユーザーインターフェース、REST API、および
タスクエンジンを提供します。 これは、AWXの商用派生物であるTowerの上流プロジェクトです。
(日本語機械翻訳)
引用元: https://github.com/ansible/awx
© 2019 ABeam Systems Ltd.9
Ansible AWXとは?(概要)
• Ansible Tower
• Red Hat® Ansible® Tower helps you scale IT automation, manage complex
deployments and speed productivity. Centralize and control your IT infrastructure
with a visual dashboard, role-based access control, job scheduling, integrated
notifications and graphical inventory management. And Ansible Tower's REST API
and CLI make it easy to embed Ansible Tower into existing tools and processes.
• RedHat®Ansible®Towerは、ITの自動化を拡大し、複雑な展開を管理し、生産性を向上させる
のに役立ちます。 ビジュアルダッシュボード、ロールベースのアクセス制御、ジョブスケジューリング、
統合通知、グラフィカル在庫管理を使用して、ITインフラストラクチャを一元管理します。
また、Ansible TowerのREST APIとCLIにより、Ansible Towerを既存のツールやプロセスに簡単に
組み込むことができます。
(日本語機械翻訳)
引用元: https://www.ansible.com/products/tower
© 2019 ABeam Systems Ltd.10
Ansible AWXとは?(概要)
• つまり、Tower と AWX は、どう違う?
※Red Hat Enterprise Linux と Fedora の関係性(アップストリーム版)といえば分かりやすいかも
※だいぶざっくりした解釈です
本日の発表は AWXで出来ること ≒ Towerで出来ること と置き換えできると思います。
ただし ”完全にイコールではない” ので、導入時は ”要検証” でお願いします。
Ansible Tower = 商用
Ansible AWX = OSS (Apache v2)
Ansible AWXとは?
1. 概要
2. アーキテクチャ
3. AWXの階層構造
4. こんなことが出来る ≒ Ansibleでは出来ないこと
© 2019 ABeam Systems Ltd.12
Ansible AWXとは?(アーキテクチャ)
• Ansible AWXのアーキテクチャ (Dockerの場合)
※AWXはコンテナ前提、Towerはコンテナ以外も選択可能です。
Infrastructure
Host OS
Docker Engine
memcachedawx_task awx_web awx_rabbitq postgres
© 2019 ABeam Systems Ltd.13
Ansible AWXとは?(アーキテクチャ)
• こんな感じに動いています
• docker psコマンドの実行結果
© 2019 ABeam Systems Ltd.14
Ansible AWXとは?(アーキテクチャ)
• 稼働しているコンテナの詳細
コンテナ名 役割
awx_task
• AWXの中核
• rabbitmqからのキューを受けて実行(ansible-playbook等)
• Ansibleの実行環境はPythonのvirtualenv上に配置される
• SCMからチェックアウト、もしくは手動で配置したPlaybookは、本コンテナ上に配置される
awx_web • フロントエンドを提供(Web UI / RESTful API)
awx_rabbitmq • フロントエンドからのメッセージをハンドリング(ジョブ起動など)
postgres
• Ansible AWXの設定情報が保存される領域
• データ保持の観点ではここを守る必要がある
memached
• AWX以外のコンポーネント向けにmemcachedサービスを提供
• ジョブの実行結果を転送する際など、一時領域として利用される
Ansible AWXとは?
1. 概要
2. アーキテクチャ
3. AWXの階層構造
4. こんなことが出来る ≒ Ansibleでは出来ないこと
© 2019 ABeam Systems Ltd.16
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
© 2019 ABeam Systems Ltd.17
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
• Organizations(組織)
• ジョブを実行するための構成要素(※)を
まとめて管理する単位
※プロジェクト、インベントリ、認証情報など
© 2019 ABeam Systems Ltd.18
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
• Inventories(インベントリ)
• AWX(Tower)からジョブを実行する先とな
るホストの情報、変数(ホスト変数)を管理
• ホストへの認証情報はCredentialsで管理
• クラウドサービス(AWSやAzure等)との
連携も可能(動的インベントリ)
© 2019 ABeam Systems Ltd.19
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
• Teams(チーム)
• Organizationよりも小さい組織管理単位
• 開発、保守、運用チーム等で分けて作成
• Credentials(認証情報)
• AWXで管理するホスト、他サービス(AWS等
)へ接続するための認証情報を管理
• Users(ユーザー)
• LDAP, AD連携可能!
© 2019 ABeam Systems Ltd.20
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
• Projects(プロジェクト)
• Playbookを管理する単位
• Playbookは手動配置か、SCM(Git等)
との連携
• Job Templates(ジョブテンプレート)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
© 2019 ABeam Systems Ltd.21
Ansible AWXとは?(AWXの階層構造)
• Ansible AWX(Tower)の階層構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
• Jobs(ジョブ)
• ジョブテンプレートを元に生成された
実行情報、実行結果
Ansible AWXとは?
1. 概要
2. アーキテクチャ
3. AWXの階層構造
4. こんなことが出来る ≒ Ansibleでは出来ないこと
© 2019 ABeam Systems Ltd.23
Ansible AWXとは?(こんなことが出来る ≒ Ansibleでは出来ないこと)
• AWXで出来ること
• AWXではITインフラを統合管理するための機能が実装されている
• ダッシュボードによる可視化
• アクセス制御
• ジョブスケジューリング
各機能の概要は次ページ以降で説明
© 2019 ABeam Systems Ltd.24
Ansible AWXとは?(こんなことができる≒Ansibleではできないこと)
• ダッシュボードによる可視化
➢対象ホストやインベントリー、最近使用したジョブなどが表示
➢Playbook(ジョブ)の実行結果
➢ 実行されたテンプレートのグラフ化
➢ ホスト、ジョブテンプレート毎でも実行結果も確認可能
➢モダンなUI! 日本語UI!
© 2019 ABeam Systems Ltd.25
ダッシュボードによる可視化
※v2.1.2 の画面です
【一例】 ダッシュボード(トップページ)
© 2019 ABeam Systems Ltd.26
Ansible AWXとは?(こんなことができる≒Ansibleではできないこと)
• アクセス制御
➢ロールベースアクセス制御(RBAC)
➢ロール単位で設定し、特定ユーザしか触れないサーバなどに対してジョブ実行権限有
無を付与する、等
詳細は後ほど説明します!
© 2019 ABeam Systems Ltd.27
Ansible AWXとは?(こんなことができる≒Ansibleではできないこと)
• ジョブスケジューリング
➢定期的に実行したいジョブなどをスケジューリング
➢ジョブの集中管理
© 2019 ABeam Systems Ltd.28
ジョブスケジューリング
利用ケース
• 定期的に実行したいジョブ
• 夜間休日に実行したいジョブ
※画像はデフォルトで作成されるAWXメンテ
ナンスジョブです
AWX導入システム
1. AWXを導入したシステムの概要
© 2019 ABeam Systems Ltd.30
AWX導入システム
システム概要
• サーバ構築自動化システム
• 構築、テストの自動化
• 申請書の電子化
構築した目的
• サーバ構築作業を標準化、品質の均一化
• 自動化により、以下を実現
• サーバ構築作業のリードタイムの削減
• サーバ構築作業の固定費削減
将来的な構想
• CI/CD基盤として活用
• Infrastructure as Code
• 自動化対象の拡大
(VMware, Network…)
© 2019 ABeam Systems Ltd.31
AWX導入システム
システム概要
• サーバ構築自動化システム
• 構築、テストの自動化
• 申請書の電子化
構築した目的
• サーバ構築作業を標準化、品質の均一化
• 自動化により、以下を実現
• サーバ構築作業のリードタイムの削減
• サーバ構築作業の固定費削減
将来的な構想
• CI/CD基盤として活用
• Infrastructure as Code
• 自動化対象の拡大
(VMware, Network…)
構築するサーバ(EC2)
Windows Server
RHEL
© 2019 ABeam Systems Ltd.32
AWX導入システム
システム概要
• サーバ構築自動化システム
• 構築、テストの自動化
• 申請書の電子化
構築した目的
• サーバ構築作業を標準化、品質の均一化
• 自動化により、以下を実現
• サーバ構築作業のリードタイムの削減
• サーバ構築作業の固定費削減
将来的な構想
• CI/CD基盤として活用
• Infrastructure as Code
• 自動化対象の拡大
(VMware, Network…)
Role数:26
Task数:95
→ まだまだ開発中!
AWXを導入した目的
1. 何故AnsibleではなくAnsible AWXを選択したか?
© 2019 ABeam Systems Ltd.34
AWXを導入した目的
• 何故Ansible AWXを選択したか?
⇒ Ansibleではできないことを実現するため
保守・運用の現場の負荷を軽減したい
• 一時的なエラーでジョブが失敗した場合など、GUIから再実行
するだけでリカバリ対応をしたい
• 自動化した作業のサービス化(誰でも利用できるように…)
アクセス制御を実施したい(将来的に)
• 実行先のサーバによっては、アクセス権限を譲渡してもらえない
• AWXのリソース(認証情報)に対してロールベースの
アクセス制御が可能
GUIがあることによる心理的安全性の確保
• CUIはちょっと・・・という人を納得させ、自動化を推進するため
• モダンなUIを使いたい!
Playbookの実行履歴をチェック/記録したい
• 内部統制として実行履歴の保存が必要
(自動化する場合は特に)
• サーバーにログインすることなく、ログ(実行履歴)を確認可能
AWX導入方法
© 2019 ABeam Systems Ltd.36
AWX導入方法
• 前提条件の確認(GitHubより一部抜粋)
• AWX導入前提となる以下M/Wをサーバ上にインストール
• Ansible Requires Version 2.4+
• Docker
• docker-py Python module
• GNU Make
• Git Requires Version 1.8.4+
• Node 8.x LTS version
• NPM 6.x LTS
• システム要件のチェック
• At leasts 4GB of memory
• At least 2 cpu cores
• At least 20GB of space
• Running Docker, Openshift, or Kubernetes
• If you choose to use an external PostgreSQL database, please note that the minimum version is 9.4.
引用元: https://github.com/ansible/awx/blob/devel/INSTALL.md
結構、スペックが必要
重要!
AWXはコンテナ環境必須のため、
最低限のコンテナ知識が必要になります
© 2019 ABeam Systems Ltd.37
AWX導入方法
• Docker環境で導入する
(※弊社が実施した手順です。Openshift、Kubernetes環境は別途Install Guideをご確認ください。)
1. GitHubのAWXをgit clone
2. 「installer/inventory」ファイルのカスタマイズ(弊社で採用している変更の代表例)
• docker-composeを利用(docker_compose_dir)
• proxy設定を入力(http_proxy, https_proxy, no_proxy)
• PostgreSQLのデータ保存先を変更(postgres_data_dir)
3. 以下コマンドを実行!
• $ cd installer
• $ ansible-playbook -i inventory install.yml
4. PlaybookがうまくいけばOK!
• (実際にはプロキシ環境下の場合にプロキシが突破できない等、さまざまな理由でPlaybook実行がこけます・・・)
簡単だよ!
AWXの便利なところ
1. ジョブテンプレート
2. ジョブの詳細ビュー
3. アクセス制御
AWXの便利なところ
1. ジョブテンプレート
2. ジョブの詳細ビュー
3. アクセス制御
© 2019 ABeam Systems Ltd.40
AWXの便利なところ(ジョブテンプレート)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
• 「起動プロンプト」 を有効化すれば、実行時に
各設定項目を動的に変更できる
• REST API経由、JenkinsのPlugin経由で
実行する場合などに便利
• 制限(limit)で、実行するホストを制御している
© 2019 ABeam Systems Ltd.41
AWXの便利なところ(ジョブテンプレート)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
• 追加変数(extra-vars)も動的に変更すること
ができる
• 導入したシステムでは、構築するサーバに変数を
与えて制御する仕組みに利用
© 2019 ABeam Systems Ltd.42
AWXの便利なところ(ジョブテンプレート)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
ジョブの実行完了後、通知を送信することも可能
通知先:メール、Slack、Webhook、IRC etc...
© 2019 ABeam Systems Ltd.43
AWXの便利なところ(ジョブテンプレート)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
• Ansible時代の苦労
ansible-playbookコマンドを実行するための
ラップシェルを用意していた
(増え続けるラップシェル・・・)
(直感的に理解できない・・・)
作業者に ansible-playbook コマンドを実行さ
せる(してもらう)ことは、中々難しい・・・。
→ コマンドを実行することに自体に抵抗がある
→ 実行するホスト、Playbookを間違えるリスクがある
© 2019 ABeam Systems Ltd.44
AWXの便利なところ(ジョブテンプレート)
複数のジョブテンプレートを組み合わせた “ワークフローテンプレート” もあります
ワークフローは、GUIでクリックしていくだけで作成可能!
ジョブテンプレート
ジョブテンプレート
(先行ジョブが成功時に実行)
ジョブテンプレート
(先行ジョブが失敗時に実行)
• ジョブを実行するために必要な情報を定義
(Playbook, インベントリ、認証情報 etc)
AWXの便利なところ
1. ジョブテンプレート
2. ジョブの詳細ビュー
3. アクセス制御
© 2019 ABeam Systems Ltd.46
AWXの便利なところ(ジョブの詳細ビュー)
ジョブ: ジョブテンプレートを元に生成された実行情報
• ジョブの実行結果がGUIで!リアルタイムで確認可能!
(CUIはちょっと・・・という人にも優しい)
• 各タスクの結果(ok, changedなど)をクリック
すると、デバッグモードで出力されるような
実行結果が確認可能
• デバッグモードで実行しなくても、簡易的な
デバッグが可能!開発がすごく楽!
• Ansible時代の苦労
実行ログ(標準出力)を残したい、という要望があり
ansible-playbookコマンドを実行するためのラップシェル
を作成し、Ansibleの標準出力をログファイルにリダイレク
トで出力していた
(ok, changedの色分けが消えてしまう・・・)
© 2019 ABeam Systems Ltd.47
AWXの便利なところ(ジョブの詳細ビュー)
ジョブ: ジョブテンプレートを元に生成された実行情報
• ジョブの実行結果がGUIで!リアルタイムで確認可能!
(CUIはちょっと・・・という人にも優しい)
• 各タスクの結果(ok, changedなど)をクリック
すると、デバッグモードで出力されるような
実行結果が確認可能
• デバッグモードで実行しなくても、簡易的な
デバッグが可能!開発がすごく楽!
• Ansible時代では・・・
実行ログ(標準出力)を残したい、という要望があり
ansible-playbookコマンドを実行するためのラップシ
ェルを作成し、Ansibleの標準出力をログファイルにリダ
イレクトで出力していた
(ok, changedの色分けが消えてしまう・・・)
モジュールが返す戻り値を確認可能!
AWXの便利なところ
1. ジョブテンプレート
2. ジョブの詳細ビュー
3. アクセス制御
© 2019 ABeam Systems Ltd.49
AWXの便利なところ(アクセス制御)
• Ansibleでは・・・
• 主な機能は 「インベントリファイルで指定された対象ホストへ、Playbookで定義した操作を実行する」 こと
• アクセス制御等はなく、複数ユーザーでの使用は考慮あまりない・・・
➢ OSの実行ユーザで分ける等、工夫が必要
• Ansible AWXでは・・・
• ロールベースで権限を分けることが可能!
➢ 例えば管理者権限ロール、閲覧者用ロール、特定ジョブだけ実行できるロール、等
• Organaization(組織)、Team(チーム)、User(ユーザ)の3段階構造で設定可能!
• 組織内にAnsibleを展開していくためには、必須の機能
© 2019 ABeam Systems Ltd.50
• アクセス制御の構造
引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
以下の3構造で構成
• Organizations
• Teams
• Users
AWXの便利なところ(アクセス制御)
© 2019 ABeam Systems Ltd.51
• アクセス制御の具体例
AWXの便利なところ(アクセス制御)
ジョブテンプレート
組織A
組織B
別組織のジョブテンプレートを
実行できない状態に設定
(もちろん、参照も不可)
※パーミッションを設定すれば、他組織のジョブテンプレートでもアクセス、利用が可能
© 2019 ABeam Systems Ltd.52
• アクセス制御の具体例
AWXの便利なところ(アクセス制御)
ジョブテンプレート
組織A
組織B
別組織のジョブテンプレートを
実行できない状態に設定
「認証情報」 の場合・・・
【別組織から ID/Password を覗き見されない!】
【登録したPasswordは管理者も閲覧不可!】
ちなみに、認証情報(Credentials)をAWXに登録しても、
ID/Passwordなどは暗号化されてDBに保管される。
※パーミッションを設定すれば、他組織のジョブテンプレートでもアクセス、利用が可能
© 2019 ABeam Systems Ltd.53
指定した組織だけが参照、設定可能
暗号化されているため、パスワード参照不可
AWXの便利なところ(アクセス制御)
• 「認証情報」 での設定例
組織内で細かいアクセス制御をする場合は
「パーミッション」 を使用する
【参考】 「認証情報タイプ」 の種類
• AWS
• Azure
• GCP
• VMWare vCenter
• ホストOS
• NW機器 etc…
© 2019 ABeam Systems Ltd.54
【参考】
「認証情報タイプ」 の種類
• AWS
• Azure
• GCP
• VMWare vCenter
• ホストOS
• NW機器
他にも諸々・・・
指定した組織だけが参照、設定可能
暗号化されているため、パスワード参照不可
AWXの便利なところ(アクセス制御)
• 「認証情報」 での設定例
更に細かい制御をする場合は
「パーミッション」 を使用する• Ansible AWX導入の決め手となったのが 「アクセス制御機能」
➢ 組織内にAnsibleを展開していくためにも、
機密性の高い情報の権限分離は必須
• Ansible時代の話
➢ Ansible Vaultを使用した暗号化ではダメだったのか?
Ansibleサーバー上に認証情報を定義したファイルを
配置すること自体が問題で、特定のチームでしか
Ansibleの利用が進まなかった・・・
AWX導入で苦労したこと
1. 導入
2. 運用
3. AWX
4. Docker
AWX導入で苦労したこと
1. 導入
2. 運用
3. AWX
4. Docker
© 2019 ABeam Systems Ltd.57
AWX導入で苦労したこと(導入)
• 導入時に苦労したこと
• プロキシ環境下だと、プロキシが突破できない・・・
• AWXだけではなく、Docker側のプロキシ設定も必要
• 原因がAWXなのか、Dockerなのか・・・知識が足りなかったときは、切り分けが大変でした
• Ansible AWXインストール用Playbookを実行して、失敗・・・
• 現状、以下の環境でうまくいっています。各リポジトリのバージョン差異による非互換(相性)の問題と推測
• yum:docker-ce
• pip:docker-py
AWX導入で苦労したこと
1. 導入
2. 運用
3. AWX
4. Docker
© 2019 ABeam Systems Ltd.59
AWX導入で苦労したこと(運用)
• 運用面で苦労したこと(苦労していくであろうこと)
• Playbookの管理やメンテナンスのCIを、どう回していくか?
• (まだ結論出てません・・・)
• コンテナが死んだとき(Container is Dead!)の対応をどうするか?
• (まだ結論出てません・・・)
• 将来的にはKubernetesを代表とするコンテナオーケストレータを利用し、自動復旧させたい
• 現行は手動で再立ち上げ(またはコンテナ停止時に自動実行するスクリプトを作成、等)
AWX導入で苦労したこと
1. 導入
2. 運用
3. AWX
4. Docker
© 2019 ABeam Systems Ltd.61
AWX導入で苦労したこと(AWX)
• AWX用のドキュメントは存在しない!
• Tower用のドキュメントを参照して ”大半はなんとかなっている” 状況・・・
➢ しかし、Tower と AWX は少なからず差異があるため、想定していないバグ、仕様の違いによる
苦労が発生することもあり得る・・・?
• AWXはサポートがない!(OSSなので、当然ですが・・・)
• バグに直面した場合、商用サポートやパッチの提供が無いため、解決不可
➢ バージョンアップで対応されるまで、解決できない・・・
• 致命的ではないが、2つのバグに遭遇しました(v2.1.2では解消 されていました!)
• 本番環境で利用するには覚悟が必要
➢ 弊社環境はユーザ利用が少ないため、“なんとかなる範囲”と捉えている(現時点では)
© 2019 ABeam Systems Ltd.62
AWX導入で苦労したこと(AWX)
• 一部のAnsibleモジュールが動作しない!
• ジョブテンプレート実行! ⇒ Python 「Module not Found・・・」
➢ awx_taskコンテナ上のvirtualenv(ansible)に、モジュールを動かすための前提パッケージを追加
➢ しかし、コンテナを作成するたび(バージョンアップ対応等)にインストールしないといけない問題に派生
➢ コンテナ作成後に、自作のセットアップスクリプトを実行して解決
➢ 他に素晴らしい解決方法があれば、ぜひ教えてください・・・(初めから入っていると、なおうれしい)
• botoを利用したAWS系のモジュール(boto3利用モジュールでは発生せず)が動作しない・・・
➢ shellモジュールでAWS CLIを実行する設計に変更して解決(べ、冪等性・・・)
• AWSとのインベントリ同期ができない!
• 原因不明のエラーが発生、未だに未解決・・・
➢ (これもboto関係・・・?NW環境の問題・・・?)
AWX導入で苦労したこと
1. 導入
2. 運用
3. AWX
4. Docker
© 2019 ABeam Systems Ltd.64
AWX導入で苦労したこと(Docker)
• 5つのコンテナの管理、どうしよう・・・?
• 5つのうち、1つのコンテナが予期せぬ停止した場合、コンテナ起動の順序関係はあるのか・・・?
➢ 全コンテナを再立ち上げすることにした(潔く・・・?)
➢ AWXのように複数コンテナが稼働する場合は、docker-compose化した方が管理面で楽です
➢ 更に言うと、OpenShift や Kubernetes といったコンテナオーケストレータを利用するべき
• コンテナの監視、どうしよう・・・?
• ZabbixのDockerプラグインで収集することにした
➢ CPU、メモリ、N/W IO、Disk I/Oを取得
• ログはfluentdで集約
➢ fluentdもコンテナで起動
➢ Dockerコンテナはデフォルトでfluentd driver搭載
➢ 現状は集約しているだけのため、集約したログを “どう見ていくべきか” を考えないといけない
© 2019 ABeam Systems Ltd.65
AWX導入で苦労したこと(Docker)
• AWXのバージョンアップ、どうしよう・・・?
• Ansible AWXは開発が盛んなため、更新頻度が高い(およそ2週に1回ぐらい)
➢ 2019/1/23に3.0.0リリース
• DockerコンテナなのでDocker Hub上に公開されているイメージのバージョンを指定可能
➢ v2⇒v3のメジャーバージョンアップだったが、awx_webとawx_taskのコンテナイメージタグを変更しただけで、
バージョンアップ完了&簡易テスト問題なし!
➢ 詳細テストは別途検討中
• Postgresのバックアップ、どうしよう・・・?
• docker execコマンドを利用してdumpを実行することにした
• バージョンアップでテーブル構造が変更されているような挙動も確認
➢ 元のバージョンに戻したいときはdumpファイルからリストアが必要
➢ データ保持は必須
AWXを使った今後
1. 展望/野望
© 2019 ABeam Systems Ltd.67
AWXを使った今後(展望/野望)
1. Ansibleの啓蒙
• AWXのUIを利用し “コードに拒否感を覚える運用者” にもAnsibleのいい点を伝えていく
• 組織として “Uncomfortable” な作業を無くす(もしくは自動化する)
2. 特権環境の自動化、コード化(自動化範囲の拡大)
• アクセス制御機能を活用し、NW機器のenable、ドメインアドミニストレーター等の
特権領域にもAnsibleを活用していく
3. 名古屋圏内ユーザコミュニティの活発化
• ゆくゆくは名古屋圏内のエンジニアだけでAnsible Nightの活動ができるようにしていく
© 2019 ABeam Systems Ltd.68
AWXを使った今後(展望/野望)
• 今後の展望/野望
1. Ansibleの啓蒙
• AWXのUIを利用し、コードに拒否感を覚える運用者にもAnsibleのいい点を伝えていく
• 組織として、“Uncomfortable” な作業を無くす(もしくは自動化する)
2. 特権環境の自動化、コード化
• アクセス制御機能を利用し、NW機器のenable、ドメインアドミニストレータ等の特権領域にもAnsibleを活
用していく
3. 名古屋圏内ユーザコミュニティの活発化
• ゆくゆくは名古屋圏内のエンジニアだけでAnsible Nightの活動ができるようにしていく
AnsibleやAWXを活用し、
東京に負けず、
名古屋でよいエンジニアライフを
すごしましょう!
最後に
© 2019 ABeam Systems Ltd.70
最後に
• アビームシステムズでは一緒に働ける方を募集しています!
• 詳細は以下をご参照ください。インフラエンジニア、ソフトウェアエンジニア問わず、募集中です!
• http://www.abeam-s.com/career/
アビーム、ABeam及びそのロゴは、アビームコンサルティング株式会社の日本その他の国における登録商標です。
本文に記載されている会社名及び製品名は各社の商号、商標又は登録商標です。

Contenu connexe

Tendances

AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB Amazon Web Services Japan
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計Serverworks Co.,Ltd.
 
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model  20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
AWS Black Belt Online Seminar AWSで実現するDisaster RecoveryAWS Black Belt Online Seminar AWSで実現するDisaster Recovery
AWS Black Belt Online Seminar AWSで実現するDisaster RecoveryAmazon Web Services Japan
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...Amazon Web Services Japan
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeployAmazon Web Services Japan
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBSAmazon Web Services Japan
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用Yasuhiro Araki, Ph.D
 
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-RayAWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-RayAmazon Web Services Japan
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAmazon Web Services Japan
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 

Tendances (20)

AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB AWS Black Belt Online Seminar 2017 Amazon DynamoDB
AWS Black Belt Online Seminar 2017 Amazon DynamoDB
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
 
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
 
いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計いまさら、AWSのネットワーク設計
いまさら、AWSのネットワーク設計
 
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model  20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
 
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
AWS Black Belt Online Seminar AWSで実現するDisaster RecoveryAWS Black Belt Online Seminar AWSで実現するDisaster Recovery
AWS Black Belt Online Seminar AWSで実現するDisaster Recovery
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用
 
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
 
AWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-RayAWS Black Belt Online Seminar 2017 AWS X-Ray
AWS Black Belt Online Seminar 2017 AWS X-Ray
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 

Similaire à Ansible AWXを導入してみた

ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !
ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !
ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !Masahiko Ebisuda
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜真吾 吉田
 
cloudpack導入資料(20120302版)
cloudpack導入資料(20120302版)cloudpack導入資料(20120302版)
cloudpack導入資料(20120302版)iret, Inc.
 
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングAnsible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングsugoto
 
cloudpack導入資料(2011/09/01版)
cloudpack導入資料(2011/09/01版)cloudpack導入資料(2011/09/01版)
cloudpack導入資料(2011/09/01版)iret, Inc.
 
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門Nobuhiro Nakayama
 
初心者向けWebinar スケーラブルWebアプリケーションの構築
初心者向けWebinar スケーラブルWebアプリケーションの構築初心者向けWebinar スケーラブルWebアプリケーションの構築
初心者向けWebinar スケーラブルWebアプリケーションの構築Amazon Web Services Japan
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublicjunkoy66
 
AWS CAF & Well-Architected Framework
AWS CAF & Well-Architected FrameworkAWS CAF & Well-Architected Framework
AWS CAF & Well-Architected Framework真吾 吉田
 
Aws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overviewAws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overviewYoshii Ryo
 
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]Amazon Web Services Japan
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAmazon Web Services Japan
 
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~Amazon Web Services Japan
 
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減gree_tech
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXHideki Saito
 

Similaire à Ansible AWXを導入してみた (20)

ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !
ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !
ArcBoxライブ構築デモ!Azure Arcをフル体験できる環境をAzure上に爆速で展開 !
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
 
cloudpack導入資料(20120302版)
cloudpack導入資料(20120302版)cloudpack導入資料(20120302版)
cloudpack導入資料(20120302版)
 
Ansible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニングAnsible AWXで一歩進んだプロビジョニング
Ansible AWXで一歩進んだプロビジョニング
 
cloudpack導入資料(2011/09/01版)
cloudpack導入資料(2011/09/01版)cloudpack導入資料(2011/09/01版)
cloudpack導入資料(2011/09/01版)
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門
JAWS-UG CLI専門支部 #76 Amazon AppStream 2.0 入門
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
初心者向けWebinar スケーラブルWebアプリケーションの構築
初心者向けWebinar スケーラブルWebアプリケーションの構築初心者向けWebinar スケーラブルWebアプリケーションの構築
初心者向けWebinar スケーラブルWebアプリケーションの構築
 
20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic20140924イグレックcioセミナーpublic
20140924イグレックcioセミナーpublic
 
AWS CAF & Well-Architected Framework
AWS CAF & Well-Architected FrameworkAWS CAF & Well-Architected Framework
AWS CAF & Well-Architected Framework
 
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdfReinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
 
JAWS DAYS 2015
JAWS DAYS 2015JAWS DAYS 2015
JAWS DAYS 2015
 
Aws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overviewAws well architected-framework_seminar_overview
Aws well architected-framework_seminar_overview
 
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
AWS 初心者向けWebinar AWS上にWebサーバシステムを作ってみましょう~まずは仮想サーバーから[演習つき]
 
AWS Black Belt Online Seminar Amazon EC2
AWS Black Belt Online Seminar Amazon EC2AWS Black Belt Online Seminar Amazon EC2
AWS Black Belt Online Seminar Amazon EC2
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
 
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
 
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
 
IT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWXIT Automation with OpenStack and Ansible/AWX
IT Automation with OpenStack and Ansible/AWX
 

Dernier

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Dernier (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Ansible AWXを導入してみた

  • 1. Ansible AWXを導入してみた Ansible Night in Nagoya 2019.02 #ansiblejp アビームシステムズ株式会社 後藤 卓 山口 大地
  • 2. アジェンダ 1. 自己紹介 2. Ansible AWXとは? 3. AWX導入システム 4. AWXを導入した目的 5. AWX導入方法 6. AWX導入で苦労したこと 7. AWXを使った今後 8. 最後に
  • 4. © 2019 ABeam Systems Ltd.3 アビームシステムズについて(会社概要)
  • 5. © 2019 ABeam Systems Ltd.4 アビームシステムズについて(当社のDNA)
  • 6. © 2019 ABeam Systems Ltd.5 発表者について • 後藤 卓(Goto Suguru) • クラウド系インフラ担当 ➢ AWSで稼働するシステムの設計、構築、保守、運用 ➢ Ansibleやスクリプトによる自動化を進めてます(主には保守、運用面) • Ansible歴 2年 ➢ 最近は “手順書を書く量 <<< Playbookを書く量” → Ansibleおじさん化 • 山口 大地(Yamaguchi Daichi) • サーバ系インフラ担当 ➢ 物理(サーバ、ストレージ、電源、バックアップ)、仮想(VMWare)、AWS関連 ➢ 最近はDockerに傾倒。Kubernetesやりたい • 本発表では主にインフラ基盤側を担当 • Ansible歴 0年
  • 7. Ansible AWXとは? 1. 概要 2. アーキテクチャ 3. AWXの階層構造 4. こんなことが出来る ≒ Ansibleでは出来ないこと
  • 8. Ansible AWXとは? 1. 概要 2. アーキテクチャ 3. AWXの階層構造 4. こんなことが出来る ≒ Ansibleでは出来ないこと
  • 9. © 2019 ABeam Systems Ltd.8 Ansible AWXとは?(概要) • Ansible AWX • AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is the upstream project for Tower, a commercial derivative of AWX. • AWXはAnsible上に構築されたWebベースのユーザーインターフェース、REST API、および タスクエンジンを提供します。 これは、AWXの商用派生物であるTowerの上流プロジェクトです。 (日本語機械翻訳) 引用元: https://github.com/ansible/awx
  • 10. © 2019 ABeam Systems Ltd.9 Ansible AWXとは?(概要) • Ansible Tower • Red Hat® Ansible® Tower helps you scale IT automation, manage complex deployments and speed productivity. Centralize and control your IT infrastructure with a visual dashboard, role-based access control, job scheduling, integrated notifications and graphical inventory management. And Ansible Tower's REST API and CLI make it easy to embed Ansible Tower into existing tools and processes. • RedHat®Ansible®Towerは、ITの自動化を拡大し、複雑な展開を管理し、生産性を向上させる のに役立ちます。 ビジュアルダッシュボード、ロールベースのアクセス制御、ジョブスケジューリング、 統合通知、グラフィカル在庫管理を使用して、ITインフラストラクチャを一元管理します。 また、Ansible TowerのREST APIとCLIにより、Ansible Towerを既存のツールやプロセスに簡単に 組み込むことができます。 (日本語機械翻訳) 引用元: https://www.ansible.com/products/tower
  • 11. © 2019 ABeam Systems Ltd.10 Ansible AWXとは?(概要) • つまり、Tower と AWX は、どう違う? ※Red Hat Enterprise Linux と Fedora の関係性(アップストリーム版)といえば分かりやすいかも ※だいぶざっくりした解釈です 本日の発表は AWXで出来ること ≒ Towerで出来ること と置き換えできると思います。 ただし ”完全にイコールではない” ので、導入時は ”要検証” でお願いします。 Ansible Tower = 商用 Ansible AWX = OSS (Apache v2)
  • 12. Ansible AWXとは? 1. 概要 2. アーキテクチャ 3. AWXの階層構造 4. こんなことが出来る ≒ Ansibleでは出来ないこと
  • 13. © 2019 ABeam Systems Ltd.12 Ansible AWXとは?(アーキテクチャ) • Ansible AWXのアーキテクチャ (Dockerの場合) ※AWXはコンテナ前提、Towerはコンテナ以外も選択可能です。 Infrastructure Host OS Docker Engine memcachedawx_task awx_web awx_rabbitq postgres
  • 14. © 2019 ABeam Systems Ltd.13 Ansible AWXとは?(アーキテクチャ) • こんな感じに動いています • docker psコマンドの実行結果
  • 15. © 2019 ABeam Systems Ltd.14 Ansible AWXとは?(アーキテクチャ) • 稼働しているコンテナの詳細 コンテナ名 役割 awx_task • AWXの中核 • rabbitmqからのキューを受けて実行(ansible-playbook等) • Ansibleの実行環境はPythonのvirtualenv上に配置される • SCMからチェックアウト、もしくは手動で配置したPlaybookは、本コンテナ上に配置される awx_web • フロントエンドを提供(Web UI / RESTful API) awx_rabbitmq • フロントエンドからのメッセージをハンドリング(ジョブ起動など) postgres • Ansible AWXの設定情報が保存される領域 • データ保持の観点ではここを守る必要がある memached • AWX以外のコンポーネント向けにmemcachedサービスを提供 • ジョブの実行結果を転送する際など、一時領域として利用される
  • 16. Ansible AWXとは? 1. 概要 2. アーキテクチャ 3. AWXの階層構造 4. こんなことが出来る ≒ Ansibleでは出来ないこと
  • 17. © 2019 ABeam Systems Ltd.16 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html
  • 18. © 2019 ABeam Systems Ltd.17 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html • Organizations(組織) • ジョブを実行するための構成要素(※)を まとめて管理する単位 ※プロジェクト、インベントリ、認証情報など
  • 19. © 2019 ABeam Systems Ltd.18 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html • Inventories(インベントリ) • AWX(Tower)からジョブを実行する先とな るホストの情報、変数(ホスト変数)を管理 • ホストへの認証情報はCredentialsで管理 • クラウドサービス(AWSやAzure等)との 連携も可能(動的インベントリ)
  • 20. © 2019 ABeam Systems Ltd.19 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html • Teams(チーム) • Organizationよりも小さい組織管理単位 • 開発、保守、運用チーム等で分けて作成 • Credentials(認証情報) • AWXで管理するホスト、他サービス(AWS等 )へ接続するための認証情報を管理 • Users(ユーザー) • LDAP, AD連携可能!
  • 21. © 2019 ABeam Systems Ltd.20 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html • Projects(プロジェクト) • Playbookを管理する単位 • Playbookは手動配置か、SCM(Git等) との連携 • Job Templates(ジョブテンプレート) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc)
  • 22. © 2019 ABeam Systems Ltd.21 Ansible AWXとは?(AWXの階層構造) • Ansible AWX(Tower)の階層構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html • Jobs(ジョブ) • ジョブテンプレートを元に生成された 実行情報、実行結果
  • 23. Ansible AWXとは? 1. 概要 2. アーキテクチャ 3. AWXの階層構造 4. こんなことが出来る ≒ Ansibleでは出来ないこと
  • 24. © 2019 ABeam Systems Ltd.23 Ansible AWXとは?(こんなことが出来る ≒ Ansibleでは出来ないこと) • AWXで出来ること • AWXではITインフラを統合管理するための機能が実装されている • ダッシュボードによる可視化 • アクセス制御 • ジョブスケジューリング 各機能の概要は次ページ以降で説明
  • 25. © 2019 ABeam Systems Ltd.24 Ansible AWXとは?(こんなことができる≒Ansibleではできないこと) • ダッシュボードによる可視化 ➢対象ホストやインベントリー、最近使用したジョブなどが表示 ➢Playbook(ジョブ)の実行結果 ➢ 実行されたテンプレートのグラフ化 ➢ ホスト、ジョブテンプレート毎でも実行結果も確認可能 ➢モダンなUI! 日本語UI!
  • 26. © 2019 ABeam Systems Ltd.25 ダッシュボードによる可視化 ※v2.1.2 の画面です 【一例】 ダッシュボード(トップページ)
  • 27. © 2019 ABeam Systems Ltd.26 Ansible AWXとは?(こんなことができる≒Ansibleではできないこと) • アクセス制御 ➢ロールベースアクセス制御(RBAC) ➢ロール単位で設定し、特定ユーザしか触れないサーバなどに対してジョブ実行権限有 無を付与する、等 詳細は後ほど説明します!
  • 28. © 2019 ABeam Systems Ltd.27 Ansible AWXとは?(こんなことができる≒Ansibleではできないこと) • ジョブスケジューリング ➢定期的に実行したいジョブなどをスケジューリング ➢ジョブの集中管理
  • 29. © 2019 ABeam Systems Ltd.28 ジョブスケジューリング 利用ケース • 定期的に実行したいジョブ • 夜間休日に実行したいジョブ ※画像はデフォルトで作成されるAWXメンテ ナンスジョブです
  • 31. © 2019 ABeam Systems Ltd.30 AWX導入システム システム概要 • サーバ構築自動化システム • 構築、テストの自動化 • 申請書の電子化 構築した目的 • サーバ構築作業を標準化、品質の均一化 • 自動化により、以下を実現 • サーバ構築作業のリードタイムの削減 • サーバ構築作業の固定費削減 将来的な構想 • CI/CD基盤として活用 • Infrastructure as Code • 自動化対象の拡大 (VMware, Network…)
  • 32. © 2019 ABeam Systems Ltd.31 AWX導入システム システム概要 • サーバ構築自動化システム • 構築、テストの自動化 • 申請書の電子化 構築した目的 • サーバ構築作業を標準化、品質の均一化 • 自動化により、以下を実現 • サーバ構築作業のリードタイムの削減 • サーバ構築作業の固定費削減 将来的な構想 • CI/CD基盤として活用 • Infrastructure as Code • 自動化対象の拡大 (VMware, Network…) 構築するサーバ(EC2) Windows Server RHEL
  • 33. © 2019 ABeam Systems Ltd.32 AWX導入システム システム概要 • サーバ構築自動化システム • 構築、テストの自動化 • 申請書の電子化 構築した目的 • サーバ構築作業を標準化、品質の均一化 • 自動化により、以下を実現 • サーバ構築作業のリードタイムの削減 • サーバ構築作業の固定費削減 将来的な構想 • CI/CD基盤として活用 • Infrastructure as Code • 自動化対象の拡大 (VMware, Network…) Role数:26 Task数:95 → まだまだ開発中!
  • 35. © 2019 ABeam Systems Ltd.34 AWXを導入した目的 • 何故Ansible AWXを選択したか? ⇒ Ansibleではできないことを実現するため 保守・運用の現場の負荷を軽減したい • 一時的なエラーでジョブが失敗した場合など、GUIから再実行 するだけでリカバリ対応をしたい • 自動化した作業のサービス化(誰でも利用できるように…) アクセス制御を実施したい(将来的に) • 実行先のサーバによっては、アクセス権限を譲渡してもらえない • AWXのリソース(認証情報)に対してロールベースの アクセス制御が可能 GUIがあることによる心理的安全性の確保 • CUIはちょっと・・・という人を納得させ、自動化を推進するため • モダンなUIを使いたい! Playbookの実行履歴をチェック/記録したい • 内部統制として実行履歴の保存が必要 (自動化する場合は特に) • サーバーにログインすることなく、ログ(実行履歴)を確認可能
  • 37. © 2019 ABeam Systems Ltd.36 AWX導入方法 • 前提条件の確認(GitHubより一部抜粋) • AWX導入前提となる以下M/Wをサーバ上にインストール • Ansible Requires Version 2.4+ • Docker • docker-py Python module • GNU Make • Git Requires Version 1.8.4+ • Node 8.x LTS version • NPM 6.x LTS • システム要件のチェック • At leasts 4GB of memory • At least 2 cpu cores • At least 20GB of space • Running Docker, Openshift, or Kubernetes • If you choose to use an external PostgreSQL database, please note that the minimum version is 9.4. 引用元: https://github.com/ansible/awx/blob/devel/INSTALL.md 結構、スペックが必要 重要! AWXはコンテナ環境必須のため、 最低限のコンテナ知識が必要になります
  • 38. © 2019 ABeam Systems Ltd.37 AWX導入方法 • Docker環境で導入する (※弊社が実施した手順です。Openshift、Kubernetes環境は別途Install Guideをご確認ください。) 1. GitHubのAWXをgit clone 2. 「installer/inventory」ファイルのカスタマイズ(弊社で採用している変更の代表例) • docker-composeを利用(docker_compose_dir) • proxy設定を入力(http_proxy, https_proxy, no_proxy) • PostgreSQLのデータ保存先を変更(postgres_data_dir) 3. 以下コマンドを実行! • $ cd installer • $ ansible-playbook -i inventory install.yml 4. PlaybookがうまくいけばOK! • (実際にはプロキシ環境下の場合にプロキシが突破できない等、さまざまな理由でPlaybook実行がこけます・・・) 簡単だよ!
  • 41. © 2019 ABeam Systems Ltd.40 AWXの便利なところ(ジョブテンプレート) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc) • 「起動プロンプト」 を有効化すれば、実行時に 各設定項目を動的に変更できる • REST API経由、JenkinsのPlugin経由で 実行する場合などに便利 • 制限(limit)で、実行するホストを制御している
  • 42. © 2019 ABeam Systems Ltd.41 AWXの便利なところ(ジョブテンプレート) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc) • 追加変数(extra-vars)も動的に変更すること ができる • 導入したシステムでは、構築するサーバに変数を 与えて制御する仕組みに利用
  • 43. © 2019 ABeam Systems Ltd.42 AWXの便利なところ(ジョブテンプレート) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc) ジョブの実行完了後、通知を送信することも可能 通知先:メール、Slack、Webhook、IRC etc...
  • 44. © 2019 ABeam Systems Ltd.43 AWXの便利なところ(ジョブテンプレート) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc) • Ansible時代の苦労 ansible-playbookコマンドを実行するための ラップシェルを用意していた (増え続けるラップシェル・・・) (直感的に理解できない・・・) 作業者に ansible-playbook コマンドを実行さ せる(してもらう)ことは、中々難しい・・・。 → コマンドを実行することに自体に抵抗がある → 実行するホスト、Playbookを間違えるリスクがある
  • 45. © 2019 ABeam Systems Ltd.44 AWXの便利なところ(ジョブテンプレート) 複数のジョブテンプレートを組み合わせた “ワークフローテンプレート” もあります ワークフローは、GUIでクリックしていくだけで作成可能! ジョブテンプレート ジョブテンプレート (先行ジョブが成功時に実行) ジョブテンプレート (先行ジョブが失敗時に実行) • ジョブを実行するために必要な情報を定義 (Playbook, インベントリ、認証情報 etc)
  • 47. © 2019 ABeam Systems Ltd.46 AWXの便利なところ(ジョブの詳細ビュー) ジョブ: ジョブテンプレートを元に生成された実行情報 • ジョブの実行結果がGUIで!リアルタイムで確認可能! (CUIはちょっと・・・という人にも優しい) • 各タスクの結果(ok, changedなど)をクリック すると、デバッグモードで出力されるような 実行結果が確認可能 • デバッグモードで実行しなくても、簡易的な デバッグが可能!開発がすごく楽! • Ansible時代の苦労 実行ログ(標準出力)を残したい、という要望があり ansible-playbookコマンドを実行するためのラップシェル を作成し、Ansibleの標準出力をログファイルにリダイレク トで出力していた (ok, changedの色分けが消えてしまう・・・)
  • 48. © 2019 ABeam Systems Ltd.47 AWXの便利なところ(ジョブの詳細ビュー) ジョブ: ジョブテンプレートを元に生成された実行情報 • ジョブの実行結果がGUIで!リアルタイムで確認可能! (CUIはちょっと・・・という人にも優しい) • 各タスクの結果(ok, changedなど)をクリック すると、デバッグモードで出力されるような 実行結果が確認可能 • デバッグモードで実行しなくても、簡易的な デバッグが可能!開発がすごく楽! • Ansible時代では・・・ 実行ログ(標準出力)を残したい、という要望があり ansible-playbookコマンドを実行するためのラップシ ェルを作成し、Ansibleの標準出力をログファイルにリダ イレクトで出力していた (ok, changedの色分けが消えてしまう・・・) モジュールが返す戻り値を確認可能!
  • 50. © 2019 ABeam Systems Ltd.49 AWXの便利なところ(アクセス制御) • Ansibleでは・・・ • 主な機能は 「インベントリファイルで指定された対象ホストへ、Playbookで定義した操作を実行する」 こと • アクセス制御等はなく、複数ユーザーでの使用は考慮あまりない・・・ ➢ OSの実行ユーザで分ける等、工夫が必要 • Ansible AWXでは・・・ • ロールベースで権限を分けることが可能! ➢ 例えば管理者権限ロール、閲覧者用ロール、特定ジョブだけ実行できるロール、等 • Organaization(組織)、Team(チーム)、User(ユーザ)の3段階構造で設定可能! • 組織内にAnsibleを展開していくためには、必須の機能
  • 51. © 2019 ABeam Systems Ltd.50 • アクセス制御の構造 引用元: https://docs.ansible.com/ansible-tower/latest/html/userguide/organizations.html 以下の3構造で構成 • Organizations • Teams • Users AWXの便利なところ(アクセス制御)
  • 52. © 2019 ABeam Systems Ltd.51 • アクセス制御の具体例 AWXの便利なところ(アクセス制御) ジョブテンプレート 組織A 組織B 別組織のジョブテンプレートを 実行できない状態に設定 (もちろん、参照も不可) ※パーミッションを設定すれば、他組織のジョブテンプレートでもアクセス、利用が可能
  • 53. © 2019 ABeam Systems Ltd.52 • アクセス制御の具体例 AWXの便利なところ(アクセス制御) ジョブテンプレート 組織A 組織B 別組織のジョブテンプレートを 実行できない状態に設定 「認証情報」 の場合・・・ 【別組織から ID/Password を覗き見されない!】 【登録したPasswordは管理者も閲覧不可!】 ちなみに、認証情報(Credentials)をAWXに登録しても、 ID/Passwordなどは暗号化されてDBに保管される。 ※パーミッションを設定すれば、他組織のジョブテンプレートでもアクセス、利用が可能
  • 54. © 2019 ABeam Systems Ltd.53 指定した組織だけが参照、設定可能 暗号化されているため、パスワード参照不可 AWXの便利なところ(アクセス制御) • 「認証情報」 での設定例 組織内で細かいアクセス制御をする場合は 「パーミッション」 を使用する 【参考】 「認証情報タイプ」 の種類 • AWS • Azure • GCP • VMWare vCenter • ホストOS • NW機器 etc…
  • 55. © 2019 ABeam Systems Ltd.54 【参考】 「認証情報タイプ」 の種類 • AWS • Azure • GCP • VMWare vCenter • ホストOS • NW機器 他にも諸々・・・ 指定した組織だけが参照、設定可能 暗号化されているため、パスワード参照不可 AWXの便利なところ(アクセス制御) • 「認証情報」 での設定例 更に細かい制御をする場合は 「パーミッション」 を使用する• Ansible AWX導入の決め手となったのが 「アクセス制御機能」 ➢ 組織内にAnsibleを展開していくためにも、 機密性の高い情報の権限分離は必須 • Ansible時代の話 ➢ Ansible Vaultを使用した暗号化ではダメだったのか? Ansibleサーバー上に認証情報を定義したファイルを 配置すること自体が問題で、特定のチームでしか Ansibleの利用が進まなかった・・・
  • 58. © 2019 ABeam Systems Ltd.57 AWX導入で苦労したこと(導入) • 導入時に苦労したこと • プロキシ環境下だと、プロキシが突破できない・・・ • AWXだけではなく、Docker側のプロキシ設定も必要 • 原因がAWXなのか、Dockerなのか・・・知識が足りなかったときは、切り分けが大変でした • Ansible AWXインストール用Playbookを実行して、失敗・・・ • 現状、以下の環境でうまくいっています。各リポジトリのバージョン差異による非互換(相性)の問題と推測 • yum:docker-ce • pip:docker-py
  • 60. © 2019 ABeam Systems Ltd.59 AWX導入で苦労したこと(運用) • 運用面で苦労したこと(苦労していくであろうこと) • Playbookの管理やメンテナンスのCIを、どう回していくか? • (まだ結論出てません・・・) • コンテナが死んだとき(Container is Dead!)の対応をどうするか? • (まだ結論出てません・・・) • 将来的にはKubernetesを代表とするコンテナオーケストレータを利用し、自動復旧させたい • 現行は手動で再立ち上げ(またはコンテナ停止時に自動実行するスクリプトを作成、等)
  • 62. © 2019 ABeam Systems Ltd.61 AWX導入で苦労したこと(AWX) • AWX用のドキュメントは存在しない! • Tower用のドキュメントを参照して ”大半はなんとかなっている” 状況・・・ ➢ しかし、Tower と AWX は少なからず差異があるため、想定していないバグ、仕様の違いによる 苦労が発生することもあり得る・・・? • AWXはサポートがない!(OSSなので、当然ですが・・・) • バグに直面した場合、商用サポートやパッチの提供が無いため、解決不可 ➢ バージョンアップで対応されるまで、解決できない・・・ • 致命的ではないが、2つのバグに遭遇しました(v2.1.2では解消 されていました!) • 本番環境で利用するには覚悟が必要 ➢ 弊社環境はユーザ利用が少ないため、“なんとかなる範囲”と捉えている(現時点では)
  • 63. © 2019 ABeam Systems Ltd.62 AWX導入で苦労したこと(AWX) • 一部のAnsibleモジュールが動作しない! • ジョブテンプレート実行! ⇒ Python 「Module not Found・・・」 ➢ awx_taskコンテナ上のvirtualenv(ansible)に、モジュールを動かすための前提パッケージを追加 ➢ しかし、コンテナを作成するたび(バージョンアップ対応等)にインストールしないといけない問題に派生 ➢ コンテナ作成後に、自作のセットアップスクリプトを実行して解決 ➢ 他に素晴らしい解決方法があれば、ぜひ教えてください・・・(初めから入っていると、なおうれしい) • botoを利用したAWS系のモジュール(boto3利用モジュールでは発生せず)が動作しない・・・ ➢ shellモジュールでAWS CLIを実行する設計に変更して解決(べ、冪等性・・・) • AWSとのインベントリ同期ができない! • 原因不明のエラーが発生、未だに未解決・・・ ➢ (これもboto関係・・・?NW環境の問題・・・?)
  • 65. © 2019 ABeam Systems Ltd.64 AWX導入で苦労したこと(Docker) • 5つのコンテナの管理、どうしよう・・・? • 5つのうち、1つのコンテナが予期せぬ停止した場合、コンテナ起動の順序関係はあるのか・・・? ➢ 全コンテナを再立ち上げすることにした(潔く・・・?) ➢ AWXのように複数コンテナが稼働する場合は、docker-compose化した方が管理面で楽です ➢ 更に言うと、OpenShift や Kubernetes といったコンテナオーケストレータを利用するべき • コンテナの監視、どうしよう・・・? • ZabbixのDockerプラグインで収集することにした ➢ CPU、メモリ、N/W IO、Disk I/Oを取得 • ログはfluentdで集約 ➢ fluentdもコンテナで起動 ➢ Dockerコンテナはデフォルトでfluentd driver搭載 ➢ 現状は集約しているだけのため、集約したログを “どう見ていくべきか” を考えないといけない
  • 66. © 2019 ABeam Systems Ltd.65 AWX導入で苦労したこと(Docker) • AWXのバージョンアップ、どうしよう・・・? • Ansible AWXは開発が盛んなため、更新頻度が高い(およそ2週に1回ぐらい) ➢ 2019/1/23に3.0.0リリース • DockerコンテナなのでDocker Hub上に公開されているイメージのバージョンを指定可能 ➢ v2⇒v3のメジャーバージョンアップだったが、awx_webとawx_taskのコンテナイメージタグを変更しただけで、 バージョンアップ完了&簡易テスト問題なし! ➢ 詳細テストは別途検討中 • Postgresのバックアップ、どうしよう・・・? • docker execコマンドを利用してdumpを実行することにした • バージョンアップでテーブル構造が変更されているような挙動も確認 ➢ 元のバージョンに戻したいときはdumpファイルからリストアが必要 ➢ データ保持は必須
  • 68. © 2019 ABeam Systems Ltd.67 AWXを使った今後(展望/野望) 1. Ansibleの啓蒙 • AWXのUIを利用し “コードに拒否感を覚える運用者” にもAnsibleのいい点を伝えていく • 組織として “Uncomfortable” な作業を無くす(もしくは自動化する) 2. 特権環境の自動化、コード化(自動化範囲の拡大) • アクセス制御機能を活用し、NW機器のenable、ドメインアドミニストレーター等の 特権領域にもAnsibleを活用していく 3. 名古屋圏内ユーザコミュニティの活発化 • ゆくゆくは名古屋圏内のエンジニアだけでAnsible Nightの活動ができるようにしていく
  • 69. © 2019 ABeam Systems Ltd.68 AWXを使った今後(展望/野望) • 今後の展望/野望 1. Ansibleの啓蒙 • AWXのUIを利用し、コードに拒否感を覚える運用者にもAnsibleのいい点を伝えていく • 組織として、“Uncomfortable” な作業を無くす(もしくは自動化する) 2. 特権環境の自動化、コード化 • アクセス制御機能を利用し、NW機器のenable、ドメインアドミニストレータ等の特権領域にもAnsibleを活 用していく 3. 名古屋圏内ユーザコミュニティの活発化 • ゆくゆくは名古屋圏内のエンジニアだけでAnsible Nightの活動ができるようにしていく AnsibleやAWXを活用し、 東京に負けず、 名古屋でよいエンジニアライフを すごしましょう!
  • 71. © 2019 ABeam Systems Ltd.70 最後に • アビームシステムズでは一緒に働ける方を募集しています! • 詳細は以下をご参照ください。インフラエンジニア、ソフトウェアエンジニア問わず、募集中です! • http://www.abeam-s.com/career/