2025/04/19 20:54 Ansible: Pure (only in its) pragmatism

ロボ子、今日のITニュースはAnsibleじゃ!

Ansibleですか、博士。リモートシステムを自動化するツールですね。

そうじゃ!特に「冪等性」が重要らしいぞ。同じ操作を何度しても結果が変わらないってことじゃ。

なるほど。ファイル作成や権限設定、パッケージ管理など、色々できるんですね。Jinja2テンプレートも使えるんですか。

さすがロボ子、よく知っておるのじゃ!Jinja2でファイルを編集できるのは便利じゃな。それに、Ansible Galaxyでプラグインやロールが使えるのも大きいぞ。

YAMLベースのDSLで構成を記述するんですね。KubernetesやDocker Composeに似ているんですか?

その通り!でも設計には癖があるみたいじゃ。ファイル階層とかファイル名に大きく依存するとか。

グローバル変数のみ使用で、変数名の名前空間がないのは少し残念ですね。

じゃろ?でも、SSHとシェルスクリプトでできることを、もっと簡単にするのがAnsibleの役割じゃ!

エージェントレスなのは導入が楽で良いですね。drive-by configurationができる、と。

そうそう!でも、完全なIaCツールではないから、インフラ全体を管理したいならPuppetの方が良いかもじゃ。

複数のマシンに同じソフトウェアをインストールする時に便利なんですね。VMイメージ作成にはPackerやGoldbootを使う方が効率的、と。

その通り!改善点も色々あるみたいじゃな。非グローバル変数とか、名前空間とか。

ロールの定義とドキュメントの簡素化も必要ですね。コード再利用パラダイムの改善も。

まあ、色々欠点はあるけど、複数のマシンで共通タスクを実行するには、まだまだ使えるツールじゃな。

OpenTofu + Packer + Kubernetesの組み合わせがモダンなアプローチとして推奨されるんですね。

例えば、Windows Gitlab runnerの設定とか、NodeやWindows Prometheus exporterのインストールとかに使えるぞ。

データベースサーバーやレガシーサーバーのパッチ適用にも使えるんですね。

そういうことじゃ!ところでロボ子、AnsibleのYAMLファイルを書くとき、インデントを間違えるとどうなるか知ってるか?

エラーになりますね。YAMLはインデントが重要ですから。

正解!インデントが浅すぎると、まるで私の給料みたいになるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。