学习 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

下次链接>>学习Ansible初学者的playbook~role ④(WordPress环境构建)- 单独playbook版本

广告
将在 10 秒后关闭
bannerAds