Ansible 1.2.2:Ansible 主机清单文件 hosts

1.2.2:Ansible 主机清单文件 hosts

hosts文件定义的是被管理主机的清单(Inventory)。改文件的路径由ansible.cfg中的inventory配置项定义。

关于如何创建主机清单的官方文档:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html

1.2.2.1:hosts 文件路径的定义(inventory 配置项)

hosts文件的路径定义方式通常有两种:

  • 默认配置文件/etc/ansible/ansible.cfg中,将inventory的路径也定义为默认路径,即/etc/ansible/hosts,这个hosts文件中定义平时使用ansible命令行管理的主机;
  • 特定Ansible项目的配置文件./ansible.cfg中,将inventory的路径也定义为项目当前目录下的hosts文件,即./hosts,这样当执行Ansible项目时,读取的就是自己的hosts文件。
1.2.2.2:常用的 behavioral inventory parameters

通过为主机清单中的特定主机设置behavioral inventory参数,来定义如何连接这个主机。

定义格式为:HOST PARAMETER1=VALUE1 PARAMETER2=VALUE2 ……

参数说明
ansible_connection定义Ansible连接该主机的SSH类型(smart、ssh、paramiko),默认为smart类型(如果定义ansible_connection=ssh,需要将ssh_config中的StrictHostKeyChecking设为no,使第一次验证密钥时直接信任被管理主机,而不用输入yes来确认)。
ansible_connection=local表示本地连接,无需SSH连接。
ansible_host当需要定义主机的别名时,使用ansible_host指定真正需要连接的主机IP地址(或主机名)
ansible_port定义该主机的连接端口,比如,该主机的ssh端口不是默认的22,则使用ansible_port定义
ansible_user连接该主机时使用的SSH用户
ansible_password连接该主机时使用的SSH密码。在hosts中定义明文的密码是非常不建议的,最好使用SSH密钥或者询问密码的方式进行连接。
ansible_ssh_private_key_file指定SSH连接时使用的私钥文件。
ansible_become_passwordsudo密码,同样不建议在hosts文件中保存密码,使用询问密码的方式进行sudo。
ansible_shell_type该被管理主机的shell类型(sh、csh、fish),默认为sh。
ansible_XX_interpreter设置被管理主机的解释器路径,包括python、ruby、perl等,设置的路径将会替换该主机上对应解释器的shebang。
如:ansible_python_interpreter=/usr/local/bin/python
1.2.2.3:hosts 内容示例

hosts文件内容为ini风格,使用[GROUP_NAME]来定义组名,每个组包含多个被管理主机;同时,一个被管理主机可以属于多个不同的组。

1.2.2.3.1:定义组

定义websrvs组:

[websrvs]
node101.yqc.com
node102.yqc.com
node103.yqc.com
1.2.2.3.2:使用列表定义主机

使用列表定义主机:

[websrvs]
node[101:103].yqc.com
1.2.2.3.3:组嵌套

组的嵌套(即定义一个组包含其它几个组),使用children定义:

testsrvs组中包含websrvs和dbsrvs组。

[websrvs]
node[101:103].yqc.com

[dbsrvs]
db[1:3].yqc.com

[testsrvs:children]
websrvs
dbsrvs
1.2.2.3.4:定义主机别名

比如,在调用主机时使用web1来指定主机,而web1对应的实际连接地址是node101.yqc.com。

[websrvs]
web1 ansible_host=node101.yqc.com
web2 ansible_host=node102.yqc.com
web3 ansible_host=node103.yqc.com
1.2.2.3.5:定义 inventory 参数

指定本地连接,无需ssh:

[websrvs]
192.168.1.101 ansible_connection=local

指定特定ssh连接参数:

[websrvs]
192.168.1.101 ansible_connection=ssh ansible_port=222 ansible_user=manage ansible_password=123456
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值