Ansible 初心者がplaybook~roleを学ぶ ③ Ansible初期設定


本稿では前回インストールした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 [email protected] でアクセスする。※パスワード:vagrant
webの場合: ssh [email protected] でアクセスする。※パスワード: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 [email protected]    …dbの場合
$ ssh-copy-id -i /home/ansible/.ssh/id_rsa.pub [email protected]  …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編-