MENU

Ansible — SSHだけで動くシンプルな構成管理ツール

Ansible アイキャッチ
Ansible

Ansibleは2012年、米Ansible社(後にRed Hat、現IBM傘下)が公開した構成管理・自動化ツールです。「エージェントレス」を売りに、対象サーバへSSHで接続してPythonスクリプトを送り込んで実行する仕組みで、Puppet・Chefなど既存の構成管理ツールに比べて圧倒的に導入が簡単という点が広く支持されました。現在はオープンソースの「Ansible Community」と商用「Red Hat Ansible Automation Platform」が並走しています。

目次

この記事の目次

  1. Ansibleの中核要素
  2. エージェントレスという選択
  3. Ansibleの典型的な利用シーン
  4. AnsibleとTerraformの使い分け
  5. まとめ

Ansibleの中核要素

Ansibleの中核要素

Ansibleの操作はPlaybookと呼ばれるYAMLファイルに、対象ホスト・実行するモジュール・パラメータを記述します。「user モジュールでuser を作る」「copy モジュールで設定ファイルを配布する」「service モジュールでサービスを再起動する」といった操作の組み合わせで構成管理を表現します。

Inventoryはホスト一覧(INI形式またはYAML)で、グループや変数も定義可能。「webサーバ群にこのPlaybookを当てる」「DBサーバ群にはこちらを当てる」といった運用が自然にできます。

エージェントレスという選択

エージェントレスという選択

Ansibleが「シンプル」と言われる最大の理由は、対象サーバ側に専用エージェントを入れる必要がないこと。管理サーバから SSH 接続できて Python が動けば、それだけでAnsibleが使えます。新規導入時の初期コストが小さく、PoCから本番運用へスムーズに進める利点があります。

反面、エージェント型のPuppet/Chefと比べると「常に状態を監視して自動修復」のような継続的な制御は不得意。Ansible は「実行されたタイミングだけ収束させる」モデルなので、運用設計はそれを前提に組む必要があります。

Ansibleの典型的な利用シーン

Ansibleの典型的な利用シーン

Ansibleは「サーバ群を一斉に同じ状態にする」用途に最も力を発揮します。OS設定、SSL証明書配布、ユーザ管理、ミドルウェアセットアップ、デプロイなど、オンプレ・クラウド問わずインフラ運用の自動化全般で使われます。

意外と知られていないのがネットワーク機器対応で、Cisco、Juniper、Aristaなどのスイッチ/ルータ設定もAnsibleで自動化できます。ネットワーク自動化分野でAnsibleが標準ツールになっているのはこの強さゆえです。

AnsibleとTerraformの使い分け

AnsibleとTerraformの使い分け

TerraformとAnsibleはしばしば並列に語られますが、得意分野が違います。Terraformは「クラウド上のリソース(VPC、EC2、DBインスタンスなど)を作る」のが本職、Ansibleは「作られたサーバの中の設定をする」のが本職です。

実務ではTerraformでインフラを作り、Ansibleで中身を整える、という分業が定番。コンテナ時代になってからAnsibleの守備範囲は若干縮小しましたが、VM中心のレガシー環境やネットワーク機器との連携では今も最有力のツールです。

まとめ

Ansibleはシンプルさを武器にIT現場の自動化を加速したツールです。エージェントレスでとっつきやすく、PoCから本番運用までシームレスに使えるのが魅力。Terraform等と組み合わせて、現代のインフラ運用に欠かせない一角を担い続けています。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次