Ansible(アンシブル)は、サーバーやネットワーク機器の設定や作業を、自動で行うためのツールです。手順書を見ながら1台ずつ行っていた作業を、ファイルに書いておくだけで、何十台にもまとめて実行できます。
ここでは、Ansibleとは何かを、特徴と仕組みから解説します。プレイブックやモジュールなどの基本の用語に加えて、インフラの現場での使われ方と学び方もまとめました。
この記事で分かること
- Ansibleとは何か、ほかのツールにない特徴
- Ansibleの仕組みと、インベントリ・プレイブック・モジュールなどの基本の用語
- サーバーやネットワーク機器での使われ方と、学び方
Ansibleとは?
設定や作業を自動にするツール
Ansibleは、Red Hatが開発を進めている、オープンソースの構成管理・自動化のツールです。サーバーにソフトを入れる、設定ファイルを書き換える、サービスを再起動する、といった作業を、決まった形のファイルに書いて自動で実行できます。
インフラの構成をコードで管理するIaC(Infrastructure as Code)を実現する、代表的なツールの1つです。
IaCの考え方は、[IaCとは]で解説しています。
Ansibleの主な特徴
| 特徴 | 内容 |
|---|---|
| エージェントがいらない | 管理されるサーバーに専用のソフトを入れなくても、SSHでつないで操作できる |
| YAMLで書ける | 作業の内容を、読みやすいYAMLの形式で書ける |
| 何度実行しても同じ結果になる | すでに設定どおりなら何も変えないため、安心してくり返し実行できる |
| 対応する機器が多い | Linux、Windows、ルーターやスイッチ、クラウドまで、幅広く操作できる |
とくにエージェントがいらないのは大きな利点です。管理されるサーバーに準備がほとんどいらないため、今動いている環境にも、すぐに取り入れられます。
Terraformとの違い
Ansibleとよく比べられるのが、Terraformです。
| 項目 | Ansible | Terraform |
|---|---|---|
| 得意なこと | サーバーや機器の「中」の設定と作業 | クラウドのサーバーやネットワークなど、インフラ「そのもの」を作る |
| 書き方 | 手順を順に書く(手続き型に近い) | 完成形を書く(宣言型) |
| 主な使い道 | ソフトの導入、設定の変更、パッチの適用、ネットワーク機器の設定 | クラウドのリソースの作成と管理 |
実際の現場では、Terraformでクラウドのサーバーを作り、Ansibleでその中を設定する、という組み合わせもよく使われます。
Ansibleの仕組みと基本の用語
Ansibleの構成
Ansibleは、次の2つの役割のマシンで動きます。
| 役割 | 内容 |
|---|---|
| コントロールノード | Ansibleを入れて、命令を出すマシン。LinuxやmacOSで動かす |
| 管理対象ノード | 操作されるサーバーや機器。Linuxなら、SSHでつながってPythonが動けばよい |
コントロールノードから、管理対象ノードへSSHでつないで、作業を順に実行します。Windowsのサーバーは、WinRMなどの仕組みで操作します。ルーターやスイッチは、SSHや機器のAPIを使って操作します。
基本の用語
| 用語 | 意味 |
|---|---|
| インベントリ | 操作するサーバーや機器の一覧。グループに分けて書ける |
| プレイブック | 「どのサーバーに、どんな作業をするか」を書いたYAMLのファイル |
| タスク | プレイブックの中の、1つ1つの作業 |
| モジュール | 「パッケージを入れる」「ファイルをコピーする」など、作業ごとに用意された部品 |
| ロール | 関連するタスクや設定をまとめて、使い回せるようにしたもの |
| コレクション | モジュールやロールを、メーカーや用途ごとにまとめた配布の単位 |
最初は、インベントリ・プレイブック・モジュールの3つを押さえれば、Ansibleの基本の動きを理解できます。
プレイブックの例
次は、Webサーバーのグループに、nginxを入れて起動するプレイブックの例です。
– name: Webサーバーを準備する
hosts: web
become: true
tasks:
– name: nginxを入れる
ansible.builtin.package:
name: nginx
state: present
– name: nginxを起動して、自動起動を有効にする
ansible.builtin.service:
name: nginx
state: started
enabled: true
「nginxが入っている状態(present)」「起動している状態(started)」のように、どうなっていてほしいかを書くのがポイントです。すでにその状態なら、Ansibleは何も変えません。
よく使うコマンド
| コマンド | できること |
|---|---|
| ansible-playbook プレイブック名 | プレイブックを実行する |
| ansible-playbook プレイブック名 –check | 実際には変えずに、何が変わるかだけを確かめる |
| ansible グループ名 -m ping | 管理対象ノードに、つながるかどうかを確かめる |
| ansible-inventory –list | インベントリの内容を表示する |
本番の環境では、先に –check で変わる内容を確かめてから実行すると安心です。作業の前に影響を確かめる考え方は、手作業のときと同じです。
現場での使われ方と学び方
Ansibleが使われる場面
| 場面 | 使われ方 |
|---|---|
| サーバーの初期設定 | ユーザーの作成、パッケージの導入、セキュリティの設定をまとめて行う |
| パッチの適用 | 何十台のサーバーに、同じ手順でアップデートを当てる |
| 設定の確認 | 設定が決まりどおりになっているかを、まとめて確かめる |
| ネットワーク機器の設定 | ルーターやスイッチのVLANやACLの設定を、まとめて変える |
| 定型作業の自動化 | ログの回収や、サービスの再起動などのくり返しの作業を自動にする |
運用の現場では、手順書どおりに何度もくり返している作業から自動にしていくのが効果的です。
ネットワークの自動化にも使われる
Ansibleは、Cisco、Juniper、Aristaなど、多くのメーカーのネットワーク機器に対応しています。たとえば、Ciscoの機器向けのコレクションを使えば、何十台のスイッチに同じVLANの設定をまとめて入れることができます。
2027年2月に始まるCCNAの新しい版でも、Ansibleによる構成管理が出題範囲に入るとされています。
詳しくは、[CCNA v2.0とは]で紹介しています。
企業向けのAnsible Automation Platform
Ansibleそのものは無料で使えます。企業で大規模に使う場合は、Red Hatが提供するAnsible Automation Platformという有料の製品もあります。画面からの実行や、権限の管理、実行の記録など、チームで使うための機能がそろっています。
Ansibleの学び方
| ステップ | やること |
|---|---|
| 1. Linuxの基本を押さえる | SSHでの接続や、基本のコマンドに慣れておく |
| 2. 練習の環境を作る | 仮想マシンを2〜3台作り、1台をコントロールノードにする |
| 3. ping で確かめる | インベントリを書き、ansible -m ping でつながることを確かめる |
| 4. プレイブックを書く | 今の仕事でくり返している作業を1つ選び、プレイブックにしてみる |
| 5. ロールで整理する | 作ったプレイブックを、使い回せるロールにまとめる |
仮想マシンの作り方は[Linuxのインストール方法]で、Linuxの基本のコマンドは[Linuxのコマンドとは]で紹介しています。Ansibleの力を証明したい人には、Red Hatの資格「RHCE(Red Hat認定エンジニア)」があり、Ansibleによる自動化が試験の中心になっています。
Ansibleでよくある疑問
プログラミングができなくても使える?
使えます。プレイブックはYAMLで書くため、プログラミングの言語を知らなくても、手順を順に書いていけば動かせます。条件分岐や繰り返しの書き方もありますが、必要になったときに少しずつ覚えれば十分です。
シェルスクリプトとは何が違う?
シェルスクリプトは、コマンドを順に実行するものです。Ansibleは、今の状態を確かめて、必要なときだけ変えるため、何度実行しても同じ結果になります。また、たくさんのサーバーへの実行や、エラーのときの扱いもまとめて管理できます。
シェルスクリプトについては、[シェルスクリプトとは]で紹介しています。
Windowsのサーバーでも使える?
使えます。管理対象ノードとしてWindowsのサーバーを操作できます。ただし、Ansibleを動かすコントロールノードは、LinuxかmacOSで用意します。Windowsのパソコンで動かしたい場合は、WSL(Windows上でLinuxを動かす仕組み)を使うのが一般的です。
TerraformとAnsible、どちらを先に学べばいい?
サーバーや機器の運用に関わっているなら、Ansibleからがおすすめです。今の仕事の作業をそのまま自動にでき、効果を実感しやすいためです。クラウドのインフラを作る仕事が中心なら、Terraformから始めましょう。
Ansibleは無料で使える?
使えます。Ansibleそのものはオープンソースで、無料で使えます。企業向けの機能が必要な場合は、有料のAnsible Automation Platformを検討します。
まとめ
Ansibleは、サーバーやネットワーク機器の設定や作業を、ファイルに書いて自動で行うためのツールです。この記事のポイントは次のとおりです。
- Ansibleとは
Red Hatが開発を進める、オープンソースの構成管理・自動化のツール。 - 主な特徴
エージェントがいらず、YAMLで書け、何度実行しても同じ結果になる - 基本の用語
インベントリに対象を書き、プレイブックに作業を書き、モジュールで1つずつ実行する。 - 現場での使われ方
サーバーの初期設定やパッチの適用、ネットワーク機器の設定などの、くり返しの作業を自動にする。 - 学び方
仮想マシンで練習の環境を作り、今の仕事の作業を1つプレイブックにしてみる。
Ansibleは、インフラエンジニアの経験をそのまま活かして、自動化の力を身につけられるツールです。まずは仮想マシンで練習の環境を作り、ping でつながるところから始めてみましょう。

