2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
コンテナ化されたAnsible実行環境の周辺ツールまとめ(全1記事)
リンクをコピー
記事をブックマーク
よこち氏:では私のほうから、「コンテナ化されたAnsible実行環境の周辺ツールまとめ」の話をします。「Ansible」を知っている方も多いかなとは思いますが、Pythonで作られているIT自動化ツール。サーバーとかクラウドとか、ネットワーク機器の設定とかを自動化できるようなツールです。
ここ数年、特に2021年ぐらいから「Ansibleの実行環境と呼ばれるものはコンテナ化して扱おう」というような流れが来ていて、それに伴っていろいろなツールも出てきているので、そのあたりをサラッとにはなりますが、いくつか紹介をしたいと思います。
あらためて、私、よこちと申します。エーピーコミュニケーションズに所属していて、ふだんはネットワークの自動化の支援を業務でやっています。
主観を含みますが、そもそも「じゃあ、なんでコンテナ化が進んできたんでしたっけ?」という背景を説明します。
冒頭でお話ししたとおりAnsibleはPythonで作られているので、venvを作って、その中でpip install ansibleとか入れていって、必要なパッケージとかも入れていって、venvごとに区切っていたのが今までのやり方でした。これは今も普通にぜんぜんできます。
これだとポータビリティがあまり高くないというか、「あっちで動いたのがこっちで動かない」ということがたまにある感じでした。
「じゃあ、これをもう、いっそのことコンテナ化しちゃいましょうよ」みたいなことが、2021年ぐらいからけっこう加速していきました。(スライドを示して)右の図で書いたようなところですね。丸ごとコンテナで隔離するみたいな使い方が進んできました。
「Ansibleの世界で」という話にはなるんですが、けっこう重要なのが、こういったAnsibleの実行に必要な諸々ですね。本当に諸々を入れたイメージのことを、Ansibleの世界ではExecution Environment、長いのでよくEEとか、日本語で「実行環境」と呼んだりします。
「じゃあ、このあたりをひっくるめたツールって、どんなのが出てきた?」というところを、1枚の図で示しています。全体像ですね。先ほど言ったAnsibleの実行に必要なイメージ、Execution Environment、EEですね。
「じゃあEEを誰が作るのか?」という話でいうと、「ansible-builder」というツールがあります。これがビルドしてくれるツールです。
「じゃあ、誰が使うんですか?」というと、この「ansible-navigator」とか、「Automation Controller」というツールがEEを使う側で、EEを経由して、サーバーとかネットワーク機器にいろいろなPlaybookを流し込んで設定をするというイメージになっています。
今3つツールが出てきたので、それぞれ見ていきます。まずEEを作る側ですね。ansible-builder。これは実行環境のコンテナイメージをビルドするツールです。ビルドするツール。一言で言うとそれだけですね。
「どんな仕組みでやっていくんですか?」というと、execution-environment.ymlというビルドの定義ファイルを用意しておいて、それでビルドをポチッ、コマンドをポンッてやると、それに合った内容がビルドされる、イメージがポコッとできるようなイメージです。
「Podman」でいうとContainerfile、「Docker」でいうとDockerfileみたいなものが、このexecution-environment.ymlです。長いですね。
「じゃあ、中身どんな感じですか?」ということで、簡単なサンプルを持ってきました。(スライドを示して)これがexecution-environment.ymlの中です。いっぱいオプションがありますが、抜粋して説明します。
わりと重要なのはベースイメージですね。「どんなイメージをベースに使いますか?」という話と、「じゃあ、Ansibleのバージョンはどれ入れましょうか?」とか。あと、内部的に使われるんですが、「『ansible-runner』を入れるんですか?」と。いや、入れないといけないんですが、指定をしたりとか。
あとAnsibleならではというところだと、「どういうコレクション……」。(コレクションは)モジュール群みたいなものですね。「コレクションを入れるんですか?」と指定をしたり。あと、コレクションによっては「このPythonパッケージが必要ですよ」みたいに依存している場合があるので、明示的に指定が必要な場合は、こういうのを入れておく。
あと、最後にシステムパッケージ。今回の場合だと「dnf install なになに」で、「なになにをインストールしたい場合は、ここで指定をしておく」というかたちですね。DockerfileとかContainerfileのYAML版で、それのAnsibleフレンドリーなやつになっています。
これを用意した上で、「ansible-builder build」コマンドでタグ付けてビルドをやると、ちょっと時間がかかって、イメージがポコッとできる。出来上がったイメージは、外見としては本当にただのイメージなので、イメージ一覧を表示すると、「あっ、なんかできたな」となります。Ansibleの世界では、これをExecution Environmentと呼ぶようなかたちになっています。これがビルドするansible-builderの話でした。
今度は使う側ですね。まずはansible-navigator。これはEE経由でPlaybookを実行してくれるツールです。
これもやはり設定ファイルみたいなものがあって、その中で「じゃあどのEEを使いますか?」と。デフォルトで設定もされてはいますが、お好みのEEを設定して、それ経由でPlaybookを実行すると、指定されたEEとその中のAnsibleを使ってPlaybookを実行するようなものになっています。
内部的には、もうちょっと細かくいろいろなツールが使われていますが、意識するのは、「ガワ」というか、人とのインターフェイスであるansible-navigatorになってくるかなと思います。
設定ファイルと呼んでいたものは、なくてもデフォルトである程度動きはします。(スライドを示して)よく使うのはたぶんこのあたりかなと思います。利用するイメージですね。ここだと、先ほどビルドしたやつというようなシナリオで書いています。
「さっき作ったこのEEを使ってくれよな」という指定をしつつ、ログ設定的なものとか、時刻の設定とかをして。このあたりはオプションですが、こういうものを使った上で、「じゃあ、ansible-navigator、実行」とやるとこんなものになります。
Ansibleを古くから使っている方にとっては逆になじみがないかなとは思いますが、ansible-navigatorって、デフォルトだとTUI(ターミナルユーザーインターフェイス)になっていて。ちょっとグラフィカルみたいな感じになっていて。
実行した結果をサマリーからどんどんディテールにドリルダウン表示していくと、「このタスクのログ、どうなっているのか」みたいな結果を追っていくようなことができるようになっています。「いやいや、やはりCLIで普通に使いたいよ」という場合も普通にできます。
モード変更するオプションがあって、「-m stdout」とやると、わりとおなじみのPlaybook実行ログが出てくるようなものになっています。
もう1個、EEを使う側として紹介したかったのが、Automation Controllerというものです。これはGUIのプロダクトです。AnsibleをGUI経由で実行できるような、Red Hat社の有償のプロダクトになっています。
ログ管理とかRBACとかAPIみたいな機能があります。昔のバージョンだと「Ansible Tower」と呼んでいたものですね。EE対応版になったタイミングで、Automation Controller 4.xというバージョンになりました。
このツールもGUI上で「じゃあ、どのEE使うんですか?」という名前を設定して。「じゃあ、そのEEを実際使いますよ」というジョブ単位があるんですが、「このPlaybookはこのEEで実行してください」という定義も一緒にセットで定義してあげて、(そうすることで)実際実行というかたちになります。
今、3つほど紹介しました。(スライドを示して)まず、こちらの図でサマリーができるかなと思います。EEを作る側としてはansible-builder、EEを使う側としてはansible-navigatorとAutomation Controllerという3つのツールを紹介しました。
このあたりは2021年ぐらいからいろいろなツール、がポコポコ新しいものが出てきたかたちになっているので、「なんか最近似たような名前のAnsibleのツールを見かけるけど、どういう役割なんだろう?」みたいなところがわからなかったら、このタイミングで整理してもらえたら幸いです。
以上です。ご清聴ありがとうございました。
関連タグ:
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.15
若手がごろごろ辞める会社で「給料を5万円アップ」するも効果なし… 従業員のモチベーションを上げるために必要なことは何か
2025.01.14
コンサルが「理由は3つあります」と前置きする理由 マッキンゼー流、プレゼンの質を向上させる具体的Tips
2025.01.07
資料は3日前に完成 「伝え方」で差がつく、マッキンゼー流プレゼン準備術
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.10
プレゼンで突っ込まれそうなポイントの事前準備術 マッキンゼー流、顧客や上司の「意思決定」を加速させる工夫
2025.01.08
職場にいる「嫌われた上司」がたどる末路 よくあるダメな嫌われ方・良い嫌われ方の違いとは
2024.06.03
「Willハラスメント」にならず、部下のやりたいことを聞き出すコツ 個人の成長と組織のパフォーマンス向上を両立するには
2025.01.14
目標がなく悩む若手、育成を放棄する管理職… 社員をやる気にさせる「等級制度」を作るための第一歩
安野たかひろ氏・AIプロジェクト「デジタル民主主義2030」立ち上げ会見
2025.01.16 - 2025.01.16
国際コーチング連盟認定のプロフェッショナルコーチ”あべき光司”先生新刊『リーダーのためのコーチングがイチからわかる本』発売記念【オンラインイベント】
2024.12.09 - 2024.12.09
NEXT Innovation Summit 2024 in Autumn特別提供コンテンツ
2024.12.24 - 2024.12.24
プレゼンが上手くなる!5つのポイント|話し方のプロ・資料のプロが解説【カエカ 千葉様】
2024.08.31 - 2024.08.31
育て方改革第2弾!若手をつぶす等級制度、若手を育てる等級制度~等級設定のポイントから育成計画策定まで~
2024.12.18 - 2024.12.18