はじめに
インフラ構築をしていると、
- 手順書どおりにコマンドを実行する
- 同じ設定を何台にも適用する
- 作業ミスが発生する
といった課題ありますよね…
そこで活躍するのが構成管理ツール Ansible です。
本記事では、Ansibleについて述べます!
ゴールはAIも入れて設計、生成、運用判断までやっていきたいですね!!
Ansibleとは
Ansibleは、サーバ構築や設定変更を自動化できる構成管理ツールのこと。
特徴:
- エージェント不要
- SSH接続のみで実行可能
- YAML形式で可読性が高い
- 冪等性(何度実行しても同じ状態になる)
つまり、
「構築手順書をコードとして管理し、サーバ構築や設定変更を自動化できるツール」
便利ですね!
構成イメージ
構成はシンプルです。
[Ansible管理サーバ]
↓ SSH
[対象サーバ]
ディレクトリ構成
Ansibleは主に次の3つで構成されます。
inventory:どのサーバに実行するか
playbook :何を実行するか
roles :どう整理して管理するか
それぞれ役割が異なります。
5w1hみたいでわかりやすいですよね!![]()
ansible/
├ inventory/
│ └ hosts
│
├ playbook/
│ └
│
└ roles/
└ common/
├ tasks/
│ └ main.yml
├ handlers/
│ └ main.yml
├ templates/
├ files/
├ vars/
│ └ main.yml
├ defaults/
│ └ main.yml
└ meta/
└ main.yml
Ansibleのインストール
ここではAnsibleのインストールから接続確認(ping実行)までを行います。
RHEL / AlmaLinux の場合:
sudo dnf install -y ansible
インストール確認:
ansible --version
ansible [core 2.x.x]
と表示されれば成功です。
inventoryファイルの作成
vi /etc/ansible/hosts
[target]
【対象サーバIPアドレス】
SSH接続確認
※前提としてsshの鍵認証はやっておきましょう!
まずSSH接続できるか確認します。
ssh 【対象ホスト】
ログインできれば準備OKです。
Ansibleで疎通確認(pingモジュール)
対象サーバへ接続テストを実行します。
ansible target -i hosts -m ping
成功例:
"changed": false,
"ping": "pong"
}
この表示が出れば、Ansibleから対象サーバへ接続できています。
まとめ
ここまででansibleが使える段階まできました。意外と簡単ですね!
次回playbookやrolesを使用してサーバを実際に建てていきます!