zoukankan      html  css  js  c++  java
  • Ansible 动态配置文件

    动态配置文件

    即从外部获取配置文件,在把ansible.cfg文件中inventory的定义值改成一个执行脚本
    脚本必须支持两个参数:
    • --list或者-l,显示所有的主机以及主机组的信息(JSON格式)。
    • --host或者-H,这个参数后面需要指定一个host,运行结果会返回这台主机的所有信息(包括认证信息、主机变量等),也是JSON格式。

    1、脚本

    复制代码
    vim /tmp/p.py
    #!/usr/bin/python
    import sys
    import json
    import argparse
    def lists():
      D = {}
      L=[ "10.240.1.13", "10.240.1.14","10.240.1.15" ]
      hosts={'hosts': L}
      D['docker'] = hosts
      return json.dumps(D,indent=4)
    def hosts(name):
      r = {'ansible_ssh_pass': 'xxxx'}
      return json.dumps(r)
    if __name__ == '__main__':
      parser = argparse.ArgumentParser()
      parser.add_argument('-l', '--list', help='hosts list', action='store_true')
      parser.add_argument('-H', '--host', help='hosts vars')
      args = vars(parser.parse_args())
      if args['list']:
        print lists()
      elif args['host']:
        print hosts(args['host'])
      else:
        parser.print_help()
        
    [root@han2 ~]# python /tmp/p.py --list
    {
        "docker": {
            "hosts": [
                "10.240.1.103", 
                "10.240.1.104", 
                "10.240.1.105"
            ]
        }
    }
    复制代码

    2、修改配置文件

    vim /etc/ansible/ansible.cfg 
    inventory      = /tmp/p.py

    3、使用动态配置

    复制代码
    [root@han2 ~]# python /tmp/p.py --host 10.240.1.103
    {"ansible_ssh_pass": "123.com"}
        
    [root@han2 ~]# ansible all -m ping
    10.240.1.103 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    10.240.1.104 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    10.240.1.105 | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }    
    复制代码
  • 相关阅读:
    三、k8s 核心功能
    【RobotFramework】显式等待、隐式等待、强制等待
    如何快速发现缺陷
    冒烟测试知多少
    【Robot Framework】发送GET与POST请求
    Fastdfs.jar手动安装到本地仓库配置
    Lua架构
    SPU与SKU
    docker环境删除与安装配置
    idea-maven导入出现omitted for duplicate且下标标红
  • 原文地址:https://www.cnblogs.com/hanqian/p/7541955.html
Copyright © 2011-2022 走看看