• ansible Inventory


     ansible主机信息

    # IP
    192.168.12.4
    
    # 主机名;主机名:端口(默认端口22)
    # 主机信息需要加入~/.ssh/known_hosts
    app-01
    app-01:2222
    
    # 定义分组
    [group01]
    192.168.0.1
    192.168.0.2
    
    # 定义范围主机
    [group02]
    192.168.[0:9].2   # 表示0到9之间所有数字(包括0和9)
    app-[b:f].xx.com  # 表示b到f之间所有字母(包括b和f)
    
    # 定义主机变量
    [group03]
    192.168.0.3 http_port=8080 maxRequests=800  # 设置了两个变量http_port maxRequests
    
    # 定义组变量
    [group04]
    192.168.0.4
    192.168.0.5
    [group04:vars]
    tomcat_port=8080
    jmx_port=18090
    
    # 定义组嵌套组,及变量传递
    # 组中嵌套组,设置的变量只能在ansible-playbook中使用,ansible命令是不支持的
    [group05]
    192.168.0.6
    [group06]
    192.168.0.7
    
    [group07:children]
    group05
    group06
    
    [group07:vars]
    tomcat_port=8080
    
    # 其他地方定义变量
    1. Inventory配置文件(默认/etc/ansible/hosts)
    2. Playbook中vars定义的区域
    3. Roles中vars目录下的文件
    4. 主机变量文件(/etc/ansible/hosts)同级目录group_vars和hosts_vars目录下的文件
       /etc/ansible/group_vars/{{组名命名的文件}}
       /etc/ansible/host_vars/{{主机命名的文件}}
       # 我们还可以在group_vars host_vars两个目录下定义all文件,来一次性的为所有的主机组和主机定义变量
    建议:为了方便变量的读取,设置变量时,尽量沿用同一种方式,以便维护人员管理.

     正则匹配

    # 全量匹配
    ansible all -m ping
    ansible "*" -m ping
    ansible 192.168.1.* -m ping
    
    # 逻辑或(or),多台主机或多个组同时执行
    ansible "web1:web2" -m ping
    ansible 192.168.80.128:192.168.80.129 -m ping
    
    # 逻辑非(!),多重条件的匹配
    # 所有在webservers组,但不在phoenix组的主机
    ansible "webservers:!phoenix" -m ping
    
    # 逻辑与(&)
    # 同时在webservers组、phoenix组的主机
    ansible "webservers:&phoenix" -m ping
    
    # 组合逻辑
    # webservers和dbservers两个组中的所有主机,并且在staging组,不在phoenix组的主机
    ansible "webservers:dbservers:&staging:!phoenix" -m ping
    
    # 模糊匹配
    # 所有以.maxedu.com结尾的主机
    ansible "*.maxedu..com" -m ping
    # one开头,.com结尾的所有主机和dbservers组中的主机
    ansible "one*.com:dbservers" -m ping
    
    # 切割数组
    [group08]
    host01
    host02
    host03
    
    ansible group08[0] -m ping    # host01
    ansible group08[0:1] -m ping  # host01,host02
    
    # 正则匹配,"~"开始表示正则匹配
    ansible ~(web|db).*.example.com -m ping

    1

  • 相关阅读:
    31天重构学习笔记9. 提取接口
    31天重构学习笔记4. 降低方法
    31天重构学习笔记8. 使用委派代替继承
    31天重构学习笔记11. 使用策略类
    31天重构学习笔记12. 分解依赖
    MyCat:第八章:MyCAT In Action中文版
    HDU 2041 超级楼梯
    CSU 1487 未覆盖顶点数量
    HDU 1712 ACboy needs your help
    HDU 2034 人见人爱AB
  • 原文地址:https://www.cnblogs.com/wangsl1204/p/13649218.html
Copyright © 2020-2023  润新知