Ansible错误-实现错误:名称请求的类型字符串未知

时间:2019-07-17 14:47:53

标签: python-2.7 ansible

我在执行Ansible剧本时收到未知类型字符串错误

  

实现错误:名称请求的未知类型字符串

我正在尝试使用一本有趣的剧本来显示我的名字。 bg代码是python。

---
-  name:  Test hello module
   hosts:  localhost

   tasks:
     -  name:  run the hello module
        hello:
          name: 'Test'
        register:  helloout

     -  name:  dump test output
        debug:
          msg:  '{{ helloout  }}'
#!/usr/bin/python


def main():
        module = AnsibleModule(
                argument_spec=dict(
                        name=dict(required=True, type='string')
                ),
        supports_check_mode=False
        )
        name = module.params['name']
        module.exit.json(changed=False, meta=name)

from ansible.module_utils.basic import *
if __name__ == '__main__':
        main()
  

[警告]:提供的主机列表为空,只有localhost可用。请注意,隐式本地主机与“ all”不匹配

     

PLAY [测试你好模块] ********************************************* ****************************************************** **************************************

     

任务[聚会事实] ********************************************** ****************************************************** **************************************   好的:[localhost]

     

任务[运行hello模块] ******************************************** ****************************************************** ***********************************   致命的:[本地主机]:失败! => {“更改”:false,“ msg”:“实现错误:名称请求的未知类型字符串”}

     

PLAY RECAP ********************************************* ****************************************************** ***********************************************   本地主机:ok = 1更改= 0不可达= 0失败= 1跳过= 0获救= 0忽略= 0

1 个答案:

答案 0 :(得分:1)

AnsibleModule()方法参数argument_spec中,您要查找的类型实际上是str而不是string

module = AnsibleModule(
    argument_spec=dict(
        name=dict(required=True, type='str')
    ),
    supports_check_mode=False
)

您可以在the documentation中看到该参数的可接受类型规范列表。