【2026年版】Ansibleの始め方 — インストールからサーバー自動化の第一歩まで完全ガイド
🎚 難易度 ★★☆ 中級者向け
⏱ 学習時間の目安 読むだけ10分、最初のPlaybook実行まで30〜60分
📚 前提知識 linux-getting-started の基礎知識・SSHの基本知識(ssh-keygenなど)
✅ このガイドで学べること
- Ansibleのインストールとインベントリの設定
- Playbookの基本構造(tasks/handlers/variables)
- べき等性(Idempotency)の概念
- 実際のWebサーバー設定自動化
コマンド早見表
# インベントリファイル(hosts.ini)
[webservers]
web1.example.com
web2.example.com
[dbservers]
db1.example.com ansible_user=ubuntu
# シンプルなPlaybook (site.yml)
---
- name: Webサーバーのセットアップ
hosts: webservers
become: true # sudo権限
vars:
http_port: 80
tasks:
- name: Nginxをインストール
apt:
name: nginx
state: present
update_cache: true
- name: Nginxを起動・自動起動設定
service:
name: nginx
state: started
enabled: true
- name: 設定ファイルをコピー
copy:
src: nginx.conf
dest: /etc/nginx/nginx.conf
notify: Reload Nginx
handlers:
- name: Reload Nginx
service:
name: nginx
state: reloaded
# 基本コマンド
ansible all -i hosts.ini -m ping # 疎通確認
ansible-playbook -i hosts.ini site.yml # Playbook実行
ansible-playbook -i hosts.ini site.yml --check # ドライラン(実際には変更しない)
ansible-playbook -i hosts.ini site.yml --diff # 変更差分を表示
ansible-vault encrypt secrets.yml # 機密情報を暗号化
ansible-vault decrypt secrets.yml # 復号
ansible-galaxy install geerlingguy.nginx # Roleのインストール
よくある詰まりポイント
Q. AnsibleとTerraformは何が違うの? Terraformは「インフラのリソースを作る・消す」担当で、AWSのEC2やRDSを定義ファイルから作成・削除・更新するよ。Ansibleは「作ったサーバーの中を設定する」担当で、OSにパッケージをインストールしたり設定ファイルを置いたりするよ。「インフラのセットアップ(Terraform)→ サーバーの設定(Ansible)→ アプリのデプロイ(Capistrano/CD)」という分業が一般的なんだ。
Q. エージェントレスって何がうれしいの? 管理対象サーバーへの特別なインストールが不要なのが一番のメリットだよ。Chef/Puppetはサーバー側にエージェントを常駐させる必要があって、エージェント自体の管理コストが発生するんだ。AnsibleはSSHと標準的なPythonだけで動くから、新規サーバーを即座に管理対象に追加できるし、AWSやGCPで起動したばかりの素のLinuxにもすぐ適用できるよ。
Q. べき等性が崩れたらどうなるの?
べき等性が崩れると「2回目以降の実行で意図しない変更が発生する」問題が起きるよ。よくある原因は state: latest(最新版に更新)や command: モジュール(シェルコマンド直接実行)の使い方だよ。command: で何かをインストールするタスクは何度実行しても同じになるよう creates: オプションで条件を指定するか、べき等性を持つ専用モジュール(apt:, copy:, template: など)を使うのが正しい設計だね。