【あんしぶる】

Ansible(アンシブル) とは?

最終更新:
💡 サーバーの設定作業を自動でやってくれる「構成管理の司令塔」

構成管理や環境構築を自動化するオープンソースツール。YAMLのPlaybookに処理を記述し、SSHなどで対象に接続してモジュールを実行する。

📌 このページのポイント
手順と対象を指定して、まとめて設定管理する側PlaybookYAMLで手順を書くInventory対象のサーバー一覧サーバーA設定を実行サーバーB設定を実行SSHなどSSHなど専用の常駐エージェントは不要接続・認証・必要な実行環境は用意する
Linux系の対象に接続する例です。多くのモジュールは対象側のPythonを使い、再実行時の変更はモジュールや手順によって異なります。
ひよこ ひよこ
Ansibleって何がうれしいの?手動でサーバー設定すればいいじゃん。
ペンギン先生 ペンギン先生
複数のサーバーへの設定手順をコードとして共有・再実行できるのが利点だよ。ただし結果は権限や環境、使うモジュールにも依存するので、手順を書けば常に同じ結果になるわけではないんだ。
ひよこ ひよこ
対象サーバーにAnsibleを入れるの?
ペンギン先生 ペンギン先生
常駐する専用エージェントは不要だよ。Linux系の対象には通常SSHで接続し、多くのモジュールは対象側のPythonを使う。認証・権限・接続やモジュールの前提条件は準備が必要なんだ。
ひよこ ひよこ
冪等性って何?
ペンギン先生 ペンギン先生
同じ状態を繰り返し指定しても余計な変更をしない性質だよ。多くのモジュールは目的の状態なら変更しない。でも、すべてのモジュールやPlaybookが冪等ではないから、再実行時の挙動を確かめよう。
ひよこ ひよこ
AnsibleとTerraformってどう使い分けるの?
ペンギン先生 ペンギン先生
サーバー内の構成を整えるのか、クラウド資源を作るのか、管理したい対象を先に決めよう。Ansibleでも資源の作成はできるので、単純に作成用・設定用と固定せず、対応モジュールやチームの運用に合わせて担当を決めるといいね。
もっと詳しく知りたい人へ

同じPlaybookを再実行しても必ず安全なの?

保証されません。公式資料も、すべてのモジュールやPlaybookが冪等ではないと明記しています。使うモジュールの仕様と入力を確認し、検証環境で再実行時の変更を確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Ansible」って出てきたら「手順と対象をコードで指定し、サーバーの設定を自動化するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Ansible」 = (SF用語)超光速通信装置
💬 開発者Michael DeHaanは「エンダーのゲーム」に由来し、遠距離通信よりも複数の船を一度に制御する場面を意識して命名したと説明している。

参考資料

← 用語集にもどる