概要
複数のサーバー管理を効率化するため、Ansibleサーバをインストールします。
前提・概要
今回は検証のため、単純構成。
- Ansibleのホスト
- Ansibleのクライアント
の2台構成であり、両方とも同じネットワークに属しています。
また、OSは共にUbuntu20.04です。
本項では、「Ansibleのホストサーバ」の設定を行います。
Ansibleホストの設定 (Ubuntu20.04)
Ansibleをインストールします。
sudo aptitude update
sudo aptitude install ansible
# 筆者はapitudeの方が好みです。必要に応じてaptを利用してください。
ホスト~クライアント間のSSH鍵を生成します。
Ansibleホスト~クライアント間はSSHで通信を行うので、鍵のペアを作成します。また、ローカルネットワークのためパスワードは省きます。
- 鍵作成
ssh-keygen -t ecdsa -b 521
# 後続のプロンプトは全て空Enterにします。
ssh-copy-id [Ansibleホストのユーザ名]@[AnsibleクライアントのIPアドレス]
# Ansibleホストのユーザ名のパスワードを入力して鍵を登録します。
- SSH通信確認
ssh [Ansibleホストのユーザ名]@[AnsibleクライアントのIPアドレス]
# SSHログインを確認します。
exit
# ログアウトします。
Ansibleホスト側の設定
- 設定ファイルのコピー(ansible.cfg)
sudo cp -pi /etc/ansible/ansible.cfg /path/to/backup/directory/ansible.cfg.$(date +%Y%m%d)
# 任意のバックアップディレクトリを指定します。
diff -u /etc/ansible/ansible.cfg /path/to/backup/directory/ansible.cfg.$(date +%Y%m%d)
# 差分がないことでバックアップを確認します。
- 設定ファイル修正
以下のファイルを、教義・信仰に沿ったエディタで編集します。
/etc/ansible/ansible.cfg
- 編集内容
[defaults]
inventory = /etc/ansible/hosts
remote_user = your_username
private_key_file = /home/your_username/.ssh/id_ecdsa
# 上述した鍵ペアの「秘密鍵」の方を指定します。your_usernameはそれを作成したユーザ名です。
Ansibleホストインベントリの編集
- 設定ファイルのコピー(ホストインベントリ)
sudo cp -pi /etc/ansible/hosts /path/to/backup/directory/ansible_host.$(date +%Y%m%d)
# 任意のバックアップディレクトリを指定します。
diff -u /etc/ansible/hosts /path/to/backup/directory/ansible_host.$(date +%Y%m%d)
# 差分がないことでバックアップを確認します。
- 設定ファイル修正
以下のファイルを、教義・信仰に沿ったエディタで編集します。
/etc/ansible/hosts
- 編集内容
[clients]
[クライアントのIPアドレス] ansible_ssh_user=[ホストのユーザ名]
Ansibleの設定確認
以下のコマンドを実行します。
ansible clients -m ping
次の結果が返ってくれば成功です。
(クライアントのIP) | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
※以下のようなメッセージは今のところ無視して大丈夫です。
discovered Python interpreter at /usr/bin/python3, but future
installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
これで、Ansibleサーバの簡単な検証が行えました。
クライアント側の設定やplaybookの作成は今後、実施していきます。