Ansible配置:

ansible有两个核心配置文件: ansible.cfg 配置文件和Inventory配置文件

  • Ansible.cfg配置文件
  • Inventory机器列表配置

这里介绍Inventory配置文件。

Inventory file:

Inventory file 机器清单,ansible用于管理机器节点的配置文件,类似系统的/etc/hosts文件。

默认的配置文件为:/etc/ansible/hosts (新版本默认的Inventory文件好像是 /home/ansible/ansible_hosts)。

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

#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

ansible ad-hoc 命令的用法为: ansible <host_pattern> [options]

这里先讨论host_pattern部分的用法。 [options]部分用简单的 -m ping来检测网络的连通性

Inventory文件的使用例子:

定义好Inventory文件后,通过:

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

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

以ansible命令行命令为例:

#使用默认的inventory文件
ansible 121.28.13.100 -m ping # 检测13.100是否存活(必须在inventory文件中)
ansible all -m ping # 检测所有主机是否存活
ansible targets1 -m ping # 检测组targets1的主机是否存活 #使用指定的inventory文件
ansible all -i my_hosts_list -m ping # -i参数指定inventory文件

ansible不能操作 没有在Inventory中定义过的主机**

主机列表的正则匹配

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

inventory file 与hosts patterns (ansible 机器清单 与 主机匹配模式)的更多相关文章

  1. Ansible 小手册系列 六(Patterns 匹配模式)

    Patterns 是定义Ansible要管理的主机.但是在playbook中它指的是对应主机应用特定的配置或IT流程. 命令格式 命令行 ansible <host-pattern> [o ...

  2. sudo提权,ansible批量给所有主机创建系统账户,授权

    sudo(superuser or another do)让普通用户可以以超级管理员或其他人的身份执行命令. sudo基本流程如下: 1.管理员需要先授权(修改/etc/sudoers文件) 2.普通 ...

  3. 16 Go Concurrency Patterns: Timing out, moving on GO并发模式: 超时, 继续前进

    Go Concurrency Patterns: Timing out, moving on  GO并发模式: 超时, 继续前进 23 September 2010 Concurrent progra ...

  4. Swap file "/etc/.hosts.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it,

    非正常关闭vi编辑器时会生成一个.swp文件 非正常关闭vi编辑器时会生成一个.swp文件 关于swp文件 使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生 ...

  5. ansible的清单管理与模块应用(三)

  6. 设计模式教程(Design Patterns Tutorial)笔记之三 行为型模式(Behavioral Patterns)

    目录 · Strategy · When to use the Strategy Design Pattern? · Sample Code · Observer · When to use the  ...

  7. 判断机器CPU的大小端模式并将数据转换成小端形式

    首先看一下概念 Little-Endian 就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端 Big-Endian 就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端. 第一 ...

  8. 单个机器部署redis集群模式(一键部署脚本)

    一.检查机器是否安装gcc.unzip.wget 二.部署模式 #模式1: 将所有主从节点以及sentinel节点部署在同一台机器上 #模式2: 将一个数据节点和一个sentinel节点部署在一台机器 ...

  9. 设计模式教程(Design Patterns Tutorial)笔记之一 创建型模式(Creational Patterns)

    目录 · 概述 · Factory · What is the Factory Design Pattern? · Sample Code · Abstract Factory · What is t ...

随机推荐

  1. Vue系列之 => Watch监视路由地址改变

    第一种方式实现监听 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  2. 【转】Robot Framework用法总结

    今天总结下Robot Framework最基本的用法,一来呢,希望自己以后看到这篇总结,很快能回忆起如何使用Robot Framework.二来呢,以初学者的姿态总结Robot Framework,希 ...

  3. C#-----字节数组(byte[])和字符串相互转换

       Encoding类  表示字符编码 1.字符串转换成字节数组byte[] using System; using System.Collections.Generic; using System ...

  4. Linux基础命令---lpr打印文件

    lpr lpr指令用来打印文件,如果没有指定文件名,那么从标准输入读取内容.CUPS提供了许多设置默认目标的方法.首先查询“LPDEST”和“PRINTER”环境变量.如果没有设置,则使用lpopti ...

  5. 使用C#爬小说

    最近因朋友需要在研究如何从网站上爬小说,说到爬,很多人首先想到的是Python,但是因为没有用过Python,加上时程比较紧,就直接使用C#. 其原理也很简单,就是利用HttpWebRequest对象 ...

  6. 不同路由器下远程ssh登录Beaglebone系统(通过路由器端口转发,配合花生壳的DDNS功能)

    使用场景: 一般家庭设备都是通过路由器中转连上互联网的,而且运营商给家庭宽带分配的IP地址也是动态的.随时可能变动的.所以当程序员们离开家之后,是很难直接和家里的设备进行交互的.但是通过TPLINK路 ...

  7. Jmeter接口测试+压力测试+环境配置+证书导出

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...

  8. Docker Swarm volume 数据持久化

    Docker Swarm volume 数据持久化 volume 是将宿主级的目录映射到容器中,以实现数据持久化. 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内. v ...

  9. [C++ Primer Plus] 第7章、函数(二)课后习题

    一.复习题 6.为什么不对基本数据类型的函数参数使用const? 8.编写一个函数,将字符串中所有c1替换成c2,并返回替换次数. #include<iostream> using nam ...

  10. JavaScript自定义求和函数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter,当看到这个标题到时候是不是感觉很简单,千万不要大意哦,你说0.1 + 0.2 = 0.3 ?有时候计算机并不是我们所说绝对精确,这个时候就要我们 ...