2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
コンテナ化された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のツールを見かけるけど、どういう役割なんだろう?」みたいなところがわからなかったら、このタイミングで整理してもらえたら幸いです。
以上です。ご清聴ありがとうございました。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05