参考链接: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资产配置的更多相关文章

  1. Python调用ansible API系列(二)执行adhoc和playbook

    执行adhoc #!/usr/bin/env python # -*- coding: utf-8 -*- import sys from collections import namedtuple ...

  2. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  3. 《Ansible权威指南》笔记(2)——Inventory配置

    四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...

  4. useful Ansible commands

    This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...

  5. 《Ansible权威指南》笔记(4)——Playbook

    七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...

  6. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  7. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  8. 自动化运维工具ansible部署以及使用

    测试环境master 192.168.16.74webserver1 192.168.16.70webserver2 192.168.16.72安装ansiblerpm -Uvh http://ftp ...

  9. Ansible Ubuntu 安装部署

    一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...

随机推荐

  1. Redhat乱码

    1 首先可以使用echo $LANG命令输出当前字符集. 2 我们需要把字符集改为zh_CN.UTF-8,在/etc/sysconfig/i18n文件中进行修改 3 使用source  /etc/sy ...

  2. 剑指offer:顺时针打印矩阵

    问题描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  3. [评测]低配环境下,PostgresQL和Mysql读写性能简单对比(欢迎大家提出Mysql优化意见)

    [评测]低配环境下,PostgresQL和Mysql读写性能简单对比 原文链接:https://www.cnblogs.com/blog5277/p/10658426.html 原文作者:博客园--曲 ...

  4. CocosCreator 小知识

    最近在自学creator,有些小坑和解决方案,想记录下来: 1. 防止点击穿透 场景:在游戏界面有功能按钮,上层弹出layer之后,加入了遮罩,但是游戏界面的功能按钮还可以点击,穿透了! 方案1:遮罩 ...

  5. vue--监听器

    vue当中的属性,侦听器watch computed可以根据数据的变化而变化,而watch也具备同样的功能 既然这么相似,那么两者的区别是什么呢 首先是执行顺序上有一些细微差别,dom加载完成后将立即 ...

  6. B/S架构

    B/S架构即浏览器和服务器架构模式.它是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构.在这种架构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser ...

  7. Zookeeper初始(一)

    量大,服务器压力大.需要用到分布式,集群. 问题1:三台机器,一个请求如何落到一台机器上?如何协调工作 问题2:集群如何选取leader? 问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处 ...

  8. vue中使用动画vue-particles

    1.下载依赖 npm install vue-particles --save-dev 2.main.js引入 import Vue from 'vue' import VueParticles fr ...

  9. pom.xml配置,针对mvn clean install -P参数(环境参数)打包

    pom.xml配置,针对mvn clean install -P参数(环境参数)打包 比如你有2个环境,一个dev,一个prod, 然后你在mvn打包的时候,可以通过-P来打包,是打dev包,还是pr ...

  10. 关于spark中DatatFrame函数操作中isin方法的使用

    需求: 1.需要从一张mysql数据表中获取并筛选数据 2.通过spark将该表读进来,形成一个df:DataFrame,有一个集合 val list = List[String]("小李& ...