zoukankan      html  css  js  c++  java
  • Ansible随笔8

    自定义模块的开发模式

    1、决定自定义模块的存放路径

    编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/。

    这样就告诉ansible,/usr/share/ansible/目录也是一个模块目录。

    2、不带参数的模块 mymodule1

    #!/usr/bin/python
    from ansible.module_utils.basic import *
    import os
    
    module = AnsibleModule(argument_spec=dict()))
    
    #args = module.params['args']
    
    os.system('echo pong')
    
    result = dict(echo='pong')
    
    module.exit_json(**result)

    3、调用

    ansible app -m mymodule1

    4、带参数的模块 mymodule2

    #!/usr/bin/python
    from ansible.module_utils.basic import *
    import os
    
    module = AnsibleModule(
        argument_spec = dict(
            args=dict(required=True)
        ),
    )
    
    args = module.params['args']
    
    os.system('echo {0}'.format(args))
    
    result = dict(echo=args)
    
    module.exit_json(**result)

    5、调用模块

    ansible app -m mymodule2 -a "args='hello'"

    6、其他变量类型

    必填项:name=dict(required=True)

    默认值:default=dict(default='present')

    选择项:choices=dict(default='present', choices=['present', 'absent'])

    布尔值:bools=dict(type='bool')

    字符型:str=dict(type='str')

    任选变量:name1=dict(aliases=['name2', 'name3'])

  • 相关阅读:
    51NOD 1069 Nim游戏
    51NOD 1066 Bash游戏
    51NOD 1058 N的阶乘的长度
    51NOD 1057 N的阶乘
    51NOD 1027 大数乘法
    RMQ 区间最大值 最小值查询
    Codeforces Round #426 (Div. 2) C. The Meaningless Game
    51NOD 1046 A^B Mod C
    OJ上 编译器 G++和C++的区别
    二分暑假专题 训练记录 2017-7-29
  • 原文地址:https://www.cnblogs.com/t-road/p/11475093.html
Copyright © 2011-2022 走看看