Ansibleとは
Ansibleは構成管理を自動化するための強力なツールです。Playbookを定義することで、複数のノードに対して一貫した構築・設定を効率的に行えます。 広島サイトのEOSシステム構築においても、その自動化の中核を担っています。
Ansibleをはじめる人に。 - Qiita
Ansible入門者向けに、基本概念から実用的な内容まで網羅的にまとめられています。
qiita.com
参考資料
インベントリの定義
操作対象となるサーバーを定義します。近年はYAML形式が主流ですが、INI形式も広く利用されています。
INI Format
[eos_mgm]
grid04
grid05
[eos_fst]
nfs11
nfs12
[all:vars]
ansible_ssh_user=root
YAML Format
all:
children:
eos_mgm:
hosts:
grid04:
grid05:
eos_fst:
hosts:
nfs11:
nfs12:
vars:
ansible_ssh_user: root
事前設定
SSH CONFIG
パスワードレス接続の確立
1. キーペアの生成
ssh-keygen -t rsa -b 40962. Rootログインの許可(全ノード)
/etc/ssh/sshd_config
PermitRootLogin yessystemctl restart sshd3. 公開鍵の配布
ssh-copy-id -i ~/.ssh/id_rsa.pub root@<target-host>実行コマンド
疎通テスト
ansible all -m ping -i inventory.ymlPlaybookの実行
Syntax Check
ansible-playbook -i inventory.yml your-playbook.yml --syntax-checkDry Run (Check mode)
ansible-playbook -i inventory.yml your-playbook.yml --check --diffExecution
ansible-playbook -i inventory.yml your-playbook.yml機密情報の保護
ANSIBLE VAULTパスワードやトークンなどの機密情報は ansible-vault で暗号化します。
暗号化の実行
ansible-vault encrypt password-file.ymlパスワードを入力して実行
ansible-playbook -i inventory.yml pb.yml --ask-vault-pass