gpt4 book ai didi

ansible - Ansible 模块是在本地运行还是在远程主机上运行?

转载 作者:行者123 更新时间:2023-12-02 05:41:02 26 4
gpt4 key购买 nike

我正在运行一个使用 的 Ansible 剧本路线53 模块并收到一条错误消息,提示我需要安装“boto”:

TASK [dns : Retrieve DNS record] ***********************************************
fatal: [10.13.25.12]: FAILED! => {"changed": false, "failed": true, "msg": "boto required for this module"}

我的 Ansible 机器上确实安装了“boto”。

问题:Playbook 任务中引用的所有 Ansible 模块是否真的在远程主机上运行?

我添加了安装“python-pip”和“boto”的任务,但似乎 boto 应该在我的 Ansible 服务器上运行。我觉得我在这里做错了什么。

这是我在远程主机上安装 pip/boto 的任务,这些任务确实不会导致 route53 模块的运行出现更多错误:
- name: Install Pip
apt: name=python-pip state=present

- name: Install boto
pip: name=boto

最佳答案

模块是远程执行的。虽然这只是事实的一半。许多模块都带有 Action 插件。这些 Action 插件在本地运行并稍后调用它们的模块组件(或其他模块)。

例如 template模块实际上是一个 Action 插件,它在本地呈现模板,然后调用复制模块。

不幸的是,如果不查看源代码,您将无法知道什么是模块以及什么是 Action 插件。该文档甚至没有提到 Action 插件确实存在......

您可以找到所有核心 Action 插件here .如您所见,没有 route53 插件,因此这确实是一个模块,因此可以远程运行。

为什么安装 boto 后仍然出现此错误,我无法解释。我只能建议你look at the source并尝试在没有 Ansible 的情况下重现问题。

这几个 import 语句在远程机器上运行时不会没有错误。

import boto
import boto.ec2
from boto import route53
from boto.route53 import Route53Connection
from boto.route53.record import Record, ResourceRecordSets
from boto.route53.status import Status

关于ansible - Ansible 模块是在本地运行还是在远程主机上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078976/

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