2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
コンテナ化された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.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦