本稿では前回インストールしたAnsibleを稼働させるための設定を行います。
###1.ansibleリモートユーザを作成する。
$ sudo useradd ansible
###2.ansibleユーザにパスワードを設定する。
※設定パスワードは何でも良い(わかりやすさでパスワードはansibleとします)
$ sudo passwd ansible
>> passwordは、ansibleと応答する。
###3.ansibleユーザのsudo有効化
3-1. visudoでwheelグループNOPASSWORD有効化
$ sudo visudo
~略~
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL ← コメントアウト「#」を消す
3-2.wheelグループにユーザansible追加
$ sudo usermod -aG wheel ansible
###4.Ansibleターゲットサーバ(db,web)でも1~3の作業を行う
<ssh接続する時は以下で接続>
dbの場合: ssh vagrant@192.168.16.12 でアクセスする。※パスワード:vagrant
webの場合: ssh vagrant@192.168.16.13 でアクセスする。※パスワード:vagrant
###5.ansibleサーバでansibleユーザへ切替、公開鍵、秘密鍵生成
$ su ansible
$ cd /home/ansible
$ ssh-keygen -t rsa
> 全てEnterを応答する。
$ ll .ssh/
total 8
-rw------- 1 ansible ansible 1675 May 16 03:08 id_rsa ←秘密鍵が生成されている。
-rw-r--r-- 1 ansible ansible 397 May 16 03:08 id_rsa.pub ←公開鍵が生成されている。
###6.ansibleサーバ(ansibleユーザの)公開鍵をターゲットサーバ(db,web)へ転送する。
$ ssh-copy-id -i /home/ansible/.ssh/id_rsa.pub ansible@192.168.16.12 …dbの場合
$ ssh-copy-id -i /home/ansible/.ssh/id_rsa.pub ansible@192.168.16.13 …webの場合
###7.ansible作業用ディレクト作成
$ mkdir /var/tmp/ansible
$ cd /var/tmp/ansible
###8.inventoryファイル作成
$ mkdir /var/tmp/ansible/inventory
$ vi /var/tmp/ansible/inventory/hosts
[web]
192.168.16.13
[db]
192.168.16.12
###9.ansible.cfg作成(ansibleの動作チューニング)
$ pwd
/var/tmp/ansible
$ vi ansible.cfg
[defaults]
inventory=./inventory #inventoryファイルの指定
remote_user=ansible #ansibleリモートユーザの指定
transport = ssh
log_path = /var/log/ansible.log #ansibleの動作ログ出力先の指定
[privilege_escalation]
sudo_user = root # sudoユーザの指定
become = ture # ansible稼働時にsudoの許可
[ssh_connection]
pipelining = True # ansible処理動作の高速化
ssh_args = -o ControlMaster=auto -o ControlPersist=300s
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
以下を参考にさせていただきました。
参考:https://qiita.com/h_matsuno1028/items/33f06298d7d05bf1e295
参考:https://thinkit.co.jp/article/9990
参考:https://qiita.com/c0tt0n-candy/items/83dfbb158f4520bba7e2
###10.ansible.logの作成
$ sudo touch /var/log/ansible.log
$ sudo chown ansible:ansible /var/log/ansible.log
$ ls -ltr /var/log/ansible.log
-rw-r--r-- 1 ansible ansible 0 Oct 17 05:59 /var/log/ansible.log
###11.ansible動作確認
11-1. ansible adhoc でターゲットweb、dbへpingモジュールでping確認。
$ date;ansible web,db -m ping;date
Sat 17 Oct 06:05:04 BST 2020
192.168.16.13 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.16.12 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
Sat 17 Oct 06:05:14 BST 2020
11-2 ansible adhoc でターゲット全てに、shellモジュールでhost名確認。
$ date;ansible -i inventory/hosts all -m shell -a 'uname -n';date
Sat 17 Oct 06:06:16 BST 2020
192.168.16.13 | CHANGED | rc=0 >>
db
192.168.16.12 | CHANGED | rc=0 >>
web
Sat 17 Oct 06:06:26 BST 2020
###12.ansible.logの出力確認
$ cat /var/log/ansible.log
2020-10-05 00:49:19,531 p=14212 u=ansible n=ansible | 192.168.16.12 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
2020-10-05 00:49:19,546 p=14212 u=ansible n=ansible | 192.168.16.13 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
2020-10-05 00:49:33,695 p=14228 u=ansible n=ansible | 192.168.16.13 | CHANGED | rc=0 >>
web
2020-10-05 00:49:33,712 p=14228 u=ansible n=ansible | 192.168.16.12 | CHANGED | rc=0 >>
db
これでansibleの大まかな設定は完了。
###(追加) mitogen導入(ansible高速化)
※PCのスペックのせいなのか高速化の実感できなかったため、おまけです。
$ sudo yum install wget unzip -y
$ wget https://github.com/dw/mitogen/archive/master.zip -P /var/tmp/
$ unzip /var/tmp/mitogen-master.zip -d /var/tmp/
$ chown -R ansible:ansible /var/tmp/mitogen-master
$ vi ansible.cfg
[defaults]
~
strategy_plugins = /var/tmp/mitogen-master/ansible_mitogen/plugins/strategy
strategy = mitogen_linear
####次回Link>>Ansible 初心者がplaybook~roleを学ぶ ④ (wordpress環境構築)-単体playbook編-