ansible inventory配置

Ansible 使用称为清单的列表或列表组同时针对基础设施中的多个托管节点或“主机”进行工作。 定义清单后,您可以使用模式来选择您希望 Ansible 运行的主机或组。

清单的默认位置是一个名为 /etc/ansible/hosts 的文件。 您可以使用 -i <path> 选项在命令行指定不同的清单文件。 您还可以同时使用多个清单文件,和/或从动态或云源或不同格式(YAML、ini 等)提取清单,如使用动态清单中所述。 Ansible 在 2.4 版本中引入了 Inventory 插件,使其变得灵活且可定制。

基础hosts

192.168.32.75

[local] # 组名,该组包含以下主机
192.168.32.166

[web]
192.168.32.136

[lb]
192.168.32.[180:195] # 定义主机的数字范围
192.168.32.[20:30:2] # 定义主机的数字范围时指定步长(序列号之间的增量)

[db]
192.168.32.146

有两个默认组:allungrouped 。 all 组包含每个主机。 ungrouped的组包含除所有主机之外没有其他组的所有主机。 每个主机将始终属于至少 2 个组(all和ungroupedall和group_names )。 尽管 all 和 ungrouped 始终存在,但它们可以是隐式的,不会出现在组列表中

配置子组

[mysql]
192.168.32.146

[redis]
192.168.32.147

# db组里面子组有mysql和redis
[db:children]
mysql
redis

组的变量

连接主机的相关参数说明,不建议直接使用密码方式,明文记录密码不安全。后面使用 authorized_key 批量分发密钥

参数名称 含义
ansible_port 连接端口
ansible_user ansible连接用户
ansible_password ansible连接用户的密码
ansible_become 相当于ansible_sudo或ansible_su,允许强制提权权限。yes, true, no, false
ansible_become_method 提升权限类型。如 sudo, su, pfexec, doas, pbrun, dzdo, ksu, runas, machinectl,默认提升 sudo 权限
ansible_become_user 相当于ansible_sudo_user或ansible_su_user,允许设置您通过权限升级成为的用户,默认是 root 用户
ansible_become_password 相当于ansible_sudo_user或ansible_su_user,允许设置提权密码

注意:

  1. ansible_become_method 没有指定或指定为sudo, 需要 ansible_user 用户有sudo权限
  2. 提升权限使用 su 的话,ansible_become_password 就填 ansible_become_user 对应用户密码;
    提升权限使用 sudo 的话,ansible_become_password 就填 ansible_user 对应用户密码

主机上设置连接方式

[local]
192.168.32.166 ansible_port=22 ansible_user=test ansible_password=test ansible_become=yes ansible_become_method=su ansible_become_user=ops ansible_become_password=ops

整个组都可以使用以下变量

[local:vars]
ansible_port=22
ansible_user=test
ansible_password=test
ansible_become=yes
ansible_become_method=su
ansible_become_user=ops
ansible_become_password=ops

官网文档:https://docs.ansible.com/ansible/2.10/user_guide/intro_inventory.html#

posted @ 2023-06-26 17:43  jiaxzeng  阅读(179)  评论(0)    收藏  举报