跳转至

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]
```