gpt4 book ai didi

python - Ansible 模块开发 : No module named ansible. 运行程序?

转载 作者:行者123 更新时间:2023-12-01 04:39:24 25 4
gpt4 key购买 nike

我正在尝试用 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上并使用aptitude安装了ansible,版本是1.9.1有什么想法吗?

最佳答案

模块本质上必须是独立的。样板文件在运行时注入(inject)(样板文件的文本替换了底部的导入),模块+样板文件的组合文本被喷射到远程机器并在那里运行。因此,您无法像运行程序一样从 ansible 核心导入内容(除非您在远程计算机上安装 ansible - 不要成为那样的人)。 “模块”是您必须根据样板中定义的内容创建的项目之一。这是我编写的示例模块框架:

#! /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()

关于python - Ansible 模块开发 : No module named ansible. 运行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com