2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
コンテナ化された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.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略