zoukankan      html  css  js  c++  java
  • Ansible的Inventory管理

       Ansible将可管理的服务器集合成为Inventory,Inventory的管理便是服务器的管理。

    hosts文件的位置:

    1. /etc/ansible/hosts
    2. 在命令行通过-i参数指定
    3. 通过/etc/ansible/ansible.cfg中的Inventory参数指定

    另外Ansible还支持从云服务器获取服务器列表,还可以从CMDB获取服务器列表,

    列出服务器 --list-hosts

    [root@zydev01 ~]# ansible all --list-hosts
      hosts (3):
        192.168.1.105
        120.77.85.77
        192.168.1.101

    单独为主机定义参数

    [dbsrvs]
    10.10.1.101 mysql_port=3306
    10.10.1.102 mysql_port=3307

    组中组,和组参数

    加上children的方式声明组中包含其它组

    [atlanta]
    host1
    host2
    
    [raleigh]
    host2
    host3
    
    [southeast:children]
    atlanta
    raleigh
    
    [southeast:vars]    #定义组的主机的参数
    ansible_port=3235 some_server=foo.southeast.example.com halon_system_timeout=30 self_destruct_countdown=60 escape_pods=2
    mysql_port=3307

    Inventory的参数分为行为参数(ansible默认的,如ansible_port)和自定义变量(mysql_port)

    打印参数:

    一些重要的行为参数:

    • ansible_host          SSH目的主机名或者IP
    • ansible_port      
    • ansible_user          SSH连接的用户名,默认当前用户
    • ansible_ssh_pass 
    • ansible_ssh_private_key_file
    • ansible_become           类似Linux的sudo 
    • ansible_become_user  切换到哪个用户下执行命令

    使用正则表达式定义组和匹配组

    定义组

    [webservers]
    www[01:50].example.com
    [databases]
    db-[a:f].example.com

     匹配组

    ansible web* -m ping

    使用单独的目录管理服务器和群组的变量

         如果服务器特变多,还用一个hosts管理服务器和变量将会很困难。

    Ansible可以为每个服务器和群组创建独立的变量文件。

    Ansible将依次从Playbook目录下,hosts文件所在目录和/etc/ansible目录下寻找group_varls和host_varsx下寻找变量文件。

    192.168.1.106.yaml的内容如下:

    需要注意的是hosts定义ini的格式,即“var = value”,使用独立的文件是“var:value”

  • 相关阅读:
    nsight system
    unity 拿到管线权限的解决方案
    Erlang cowboy 入门参考
    [Erlang]Mnesia分布式应用
    erlang浅谈
    erlang 中带下划线变量的使用
    erlang 符号相关基本语法
    Erlang与ActionScript3采用JSON格式进行Socket通讯
    Erlang游戏开发-协议
    Erlang之IO编程
  • 原文地址:https://www.cnblogs.com/zydev/p/7788667.html
Copyright © 2011-2022 走看看