参考链接: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

最新文章

  1. docker通过iptables修改或新增镜像映射端口
  2. QT数据库操作
  3. 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动
  4. RBF高斯径向基核函数【转】
  5. zepto源码--fragment--学习笔记
  6. Html5中的video元素
  7. 【USACO 1.5.3】特殊的质数肋骨
  8. [转] c#多线程(UI线程,控件显示更新) Invoke和BeginInvoke 区别
  9. 1033. To Fill or Not to Fill (25)
  10. Oracle用户操作
  11. bzoj 3282: Tree (Link Cut Tree)
  12. Eclipse启动错误JVM terminated. exit code 1解决方法
  13. HTTP 03 HTTP 报文
  14. JavaScript 如何断平台
  15. Gradle编译报错
  16. mysql 查询 所有 父节点 单表
  17. Searching with Deep Learning 深度学习的搜索应用
  18. 第6天:数据Array
  19. SpringBoot+MyBatis简单数据访问应用
  20. WWW缓存方式

热门文章

  1. mongodb常用的sql语句总结
  2. C++第三章复习与总结(思维导图分享)
  3. [IoC容器Unity]第四回:使用范例
  4. linux下的启停脚本
  5. day23
  6. Android之人脸识别
  7. linux中的wc命令
  8. vuex 改变状态值得命名问题
  9. Uncaught RangeError: Maximum call stack size exceeded 超出最大调用值
  10. 超简DbHelper