Ansible 模块开发:没有名为 ansible.runner 的模块?
Ansible Module Development: No module named ansible.runner?
我正在尝试在 Ansible 中编写我的第一个模块,它本质上是另一个模块的包装器。这是我的模块:
#!/usr/bin/python
import ansible.runner
import sys
def main():
module.exit_json(changed=False)
from ansible.module_utils.basic import *
main()
这是它给我的错误(从 'msg' 中删除):
ImportError: No module named ansible.runner
我在 ubuntu 并安装了 ansible with aptitude,版本是 1.9.1
有什么想法吗?
模块本质上必须是独立的。样板文件在 运行 时间被注入(样板文件的文本替换了底部的导入),模块 + 样板文件的组合文本被喷射到远程机器和 运行 那里。因此,你不能从像 运行ner 这样的 ansible 核心导入东西(除非你在远程机器上安装 ansible - 不要那样做)。 "module" 是您必须根据样板文件中定义的内容创建的项目之一。这是我写的示例模块框架:
#! /usr/bin/python
import json
def main():
module = AnsibleModule(
argument_spec = dict(
state = dict(default='present', choices=['present', 'absent'])
),
supports_check_mode = True
)
p = module.params
changed = False
state = p['state']
if not module.check_mode:
# do stuff
pass
#module.fail_json(msg='it broke')
module.exit_json(changed=changed)
from ansible.module_utils.basic import *
main()
我刚刚检查了我前一段时间写的一个模块,我没有这样的导入行。我唯一的导入是 from ansible.module_utils.basic import *
。我在 main
:
中自己创建的 module
对象
module = AnsibleModule(
argument_spec=dict(
paramA=dict(required=True),
paramB=dict(required=False),
paramC=dict(required=False),
),
add_file_common_args=True,
supports_check_mode=True
)
我正在尝试在 Ansible 中编写我的第一个模块,它本质上是另一个模块的包装器。这是我的模块:
#!/usr/bin/python
import ansible.runner
import sys
def main():
module.exit_json(changed=False)
from ansible.module_utils.basic import *
main()
这是它给我的错误(从 'msg' 中删除):
ImportError: No module named ansible.runner
我在 ubuntu 并安装了 ansible with aptitude,版本是 1.9.1 有什么想法吗?
模块本质上必须是独立的。样板文件在 运行 时间被注入(样板文件的文本替换了底部的导入),模块 + 样板文件的组合文本被喷射到远程机器和 运行 那里。因此,你不能从像 运行ner 这样的 ansible 核心导入东西(除非你在远程机器上安装 ansible - 不要那样做)。 "module" 是您必须根据样板文件中定义的内容创建的项目之一。这是我写的示例模块框架:
#! /usr/bin/python
import json
def main():
module = AnsibleModule(
argument_spec = dict(
state = dict(default='present', choices=['present', 'absent'])
),
supports_check_mode = True
)
p = module.params
changed = False
state = p['state']
if not module.check_mode:
# do stuff
pass
#module.fail_json(msg='it broke')
module.exit_json(changed=changed)
from ansible.module_utils.basic import *
main()
我刚刚检查了我前一段时间写的一个模块,我没有这样的导入行。我唯一的导入是 from ansible.module_utils.basic import *
。我在 main
:
module
对象
module = AnsibleModule(
argument_spec=dict(
paramA=dict(required=True),
paramB=dict(required=False),
paramC=dict(required=False),
),
add_file_common_args=True,
supports_check_mode=True
)