学习 Ansible 初学者如何使用 playbook~role ③ 学习 Ansible 的初始设置
在本文中,我们将进行配置以使之前安装的Ansible能够运行。
1. 创建Ansible远程用户。
$ sudo useradd ansible
为ansible用户设置密码。
请设置密码,可以任意选择(为了方便起见,将密码设为ansible)。
$ sudo passwd ansible
>> passwordは、ansibleと応答する。
启用ansible用户的sudo权限。
在visudo中启用wheel组的NOPASSWORD。
$ sudo visudo
~略~
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL ← コメントアウト「#」を消す
将用户ansible添加到wheel组中。
$ sudo usermod -aG wheel ansible
在Ansible目标服务器(db、web)上执行步骤1至3。
<ssh接続する時は以下で接続>
dbの場合: ssh vagrant@192.168.16.12 でアクセスする。※パスワード:vagrant
webの場合: ssh vagrant@192.168.16.13 でアクセスする。※パスワード:vagrant
在 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 ←公開鍵が生成されている。
将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.创建库存文件
$ 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
创建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命令,使用ping模块对目标主机web和db进行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模块在所有目标主机上确认主机名。
$ 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
确认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速度)
由于个人电脑的规格限制或无法感受到加速效果,这仅仅是额外附赠的。
$ 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