ansible 使用 ¶
Note
/etc/ansible/hosts
文件格式
-
inventory文件遵循INI文件风格,中括号中的字符为组名
-
可以将同一个主机同时归并到多个不同的组中
-
目标主机使用了非默认的SSH端口,可在主机名称后使用冒号加端口号来标明
Inventory 清单
Inventory 主机清单是 Ansible 的主机清单文件,其中包含了目标主机的 IP 地址、用户名、密码等信息。可以使用脚本或者手工方式来维护这个文件。
-
ansible 的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在 inventory 中将其分组命名
-
默认的 inventory 为/etc/ansible/hosts
-
inventory 可以有多个,且也可以通过 Dynamic Inventory 来动态生成
-
可以在每个主机后面指定用户名+密码+端口:
- ansible_ssh_port: 指定 ssh 端口
- ansible_ssh_user:指定 ssh 用户
- ansible_ssh_pass: 指定 ssh 用户登录是认证密码(明文密码不安全)
- ansible_sudo_pass: 指明 sudo 时候的密码
基于端口,用户,密码定义主机 ¶
### 创建主机清单
vim /etc/ansible/hosts
``` yaml
[webs] # 组名称
10.0.0.7 ansible_user='root' ansible_pass='1' ansible_port='22'
10.0.0.8 ansible_user='root' ansible_pass='1' ansible_port='22'
[webs1]
web01 ansible_host=10.0.0.7
web02 ansible_host=10.0.0.8
[webs1:vars]
ansible_user='root'
ansible_pass='1'
ansible_port='22'
[huaweiyun]
huaweiyun_caddy ansible_host=<xxx.com> ansible_port=30000 # 设置别名
huaweiyun_dev ansible_host=<xxx.com> ansible_port=30001
[websrvs]
www[1:100].example.com ip: 1-100
[dbsrvs]
db-[a:f].example.com dba-dbff
[LNMP:children]
[webs]
[dbsrvs]
```