ansible资产配置

Posted gentlemanhai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible资产配置相关的知识,希望对你有一定的参考价值。

参考链接:https://www.cnblogs.com/iois/p/6403761.html

 

ansible主机组的使用,我们在对一个集群进行管理的时候集群会有很多角色,在执行统一命令操作的时候我们需要对所有组进行批量操作,这个时候就需要我们的主机组了

 

1)主机组怎么配置呢?

Inventory文件遵循ini文件风格,[]标记分组,方便对机器列表的管理

 

vim /etc/ansible/hosts文件

#inventory file例子,可在这里添加主机名hostname或者ip地址

#未分组的主机,添加在最前面

122.19.45.201

hostname1

122.19.45.[1:10] #[1:10]表示所有1~10之间的数字,表示一组ip地址45.1、45.2、... #分组管理的主机,以便对不同主机进行不同的管理,同一主机可同时属于不同组

[test0] #组名

122.28.13.100

122.19.61.68:5030 #如果主机ssh端口不是22,可在地址后加:指定

[targets1]

localhost ansible_connection=local 122.28.13.10 ansible_connection=ssh ansible_ssh_user=user #指定连接类型和连接用户名

 

[targets2] #可配置主机变量

host1 http_port=80 host2 http_port=80 var2=xxx var3=xxx

 

[targets2:var] #添加关键字var,配置组变量,对属于该组的所有主机都适用

var4=xxx

var5=xxx

 

[targets3:children] #添加关键字children,把组作为其他组的子成员

targets1

targets2

 

2)主机组配置后怎么使用呢?

定义好inventory(资产)文件后,通过

1. 命令行: ansible <host-pattern> [options]

2. playbook: - hosts <host-pattern>

 

其中<host-pattern>部分指定对哪些机器或分组执行任务

ansible targets1 -m shell -a "hostname"

 

3)主机类别的正则匹配有哪些呢?

ansible支持主机列表的正则匹配

  • 全量: all/*
  • 逻辑或: :
  • 逻辑非: !
  • 逻辑与: &
  • 切片: []
  • 正则匹配: 以~开头

 

ansible all -m ping #所有默认inventory文件中的机器

ansible "*" -m ping #同上

ansible 121.28.13.* -m ping #所有122.28.13.X机器

ansible web1:web2 -m ping #所有属于组web1或属于web2的机器

ansible web1:!web2 -m ping #属于组web1,但不属于web2的机器

ansible web1&web2 -m ping #属于组web1又属于web2的机器

ansible webserver[0] -m ping #属于组webserver的第1台机器

ansible webserver[0:5] -m ping #属于组webserver的第1到4台机器

ansible "~(beta|web).example.(com|org)" -m ping

 

以上是关于ansible资产配置的主要内容,如果未能解决你的问题,请参考以下文章

ansible配置文件

ansible hosts资产文件

Python 结合Ansible 把管理资产信息自动插入到CMDB中

ansible简单用法

资产管理 cmdb之ansible 获取服务器硬件软件等信息

资产管理 cmdb之ansible 获取服务器硬件软件等信息