python - 是否有 Ansible 的客户端/代理软件?
问题描述
Ansible 的优势之一是无代理架构。Ansible 使用 Python,而且几乎总是预装在任何发行版上。因此,在 Ansible 需要发挥其魔力的机器上不需要客户端或代理。
最近的经验使我们怀疑这在实践中是否正确。
因此,例如,当前 Ansible 提供了用于生成证书的模块,如使用 Ansible 2.4 的加密模块生成自签名 OpenSSL 证书一文中所述。杰夫·格尔林
但是如果你使用这些,你还需要:pip、python-dev。这些依赖项最初会失败,因为您需要为python_version
和提供值python_user
。
现在事情变得一团糟。我们正在目标机器上创建一个 Python 开发环境来创建一个自签名证书。例如,许多其他的东西被拖进来
python,python-dev,python3,python3-dev,make,gcc,python-pip,python3-pip,build-essential,libssl-dev,zlib1g-dev,libbz2-dev,libreadline-dev,libsqlite0-dev,wget, curl,llvm,libncurses5-dev,libncursesw5-dev,xz-utils,tk-dev,git,libffi-dev,libxml2-dev,libxslt1-dev,libyaml-dev
现在请注意,我们正在使用作为 Ansible 的默认部分的模块创建自签名证书。然而,这些模块需要的东西不是 Linux 上任何标准 Python 发行版的一部分。
实际上,要创建自签名证书(通常使用一些 bash 命令完成),我们正在构建一个一次性的自定义 Ansible 客户端。例如,这很可能会失败,并显示如下消息
未能在 myserver 的 Python /usr/bin/python 上导入所需的 Python 库(setuptools)
所以我在这一点上的结论是,Ansible 并不是真正的无代理,实际上确实需要目标机器上的某种客户端/代理。此客户端/代理只是动态下载、编译、链接和配置。
如果我们需要这样做只是为了使用标准的 Ansible 模块,我们已经有效地证明了需要 Ansible 客户端和/或某种类型的代理。
当然,不会出现任何官方的 Ansible 客户端/代理,因为 Ansible 被吹捧为无代理,并且除了 Python 之外不需要任何其他东西。
但也许有人不厌其烦地创建了这样一个客户?是否有某种安装程序可以安装 Ansible 声称支持的模块的所有依赖项?
解决方案
问:“Ansible 提供了用于生成证书的模块……但如果你使用这些模块,你还需要:pip、python-dev。这些依赖项最初会失败,因为你需要为 python_version 和 python_user 提供值。现在事情变得一团糟。 ..
我们现在正在使用 Ansible 默认部分的模块创建自签名证书。然而,这些模块需要的东西不是 Linux 上任何标准 Python 发行版的一部分。
A: openssl_certificate模块需要
PyOpenSSL >= 0.15 或密码学 >= 1.6(如果使用自签名或 assertonly 提供程序)
acme-tiny(如果使用 acme 提供程序)
这就是 Ubuntu 18.04 和 FreeBSD 11.3 和 12.0 所需要的。请参阅证书Ansible Galaxy 角色中的详细信息。
certificate_packages:
- python-openssl
- acme-tiny
certificate_packages:
- security/py-openssl
- security/py-acme-tiny
YMMV。
推荐阅读
- unit-testing - TypeError:Utils 不是构造函数
- android - 跨 Android 版本的共享偏好可访问性
- regex - 正则表达式,从匹配的字符串中排除“,”
- docker - 如何从 docker 访问 WAMP 虚拟主机地址?
- java - 添加外部 Jar 不起作用,出现 NoClassDefFoundError
- quarkus - Quarkus 应用程序可以连接到多个 JMS 代理实例吗?
- string - Powershell Get-History to String
- ios - 多参数字典(集合列表) 喜欢:[[String: Any]] 到 Alamofire 参数
- sql - 如何将 SYSDATE 提前 10 年设置为默认日期 12 月 31 日?甲骨文数据库
- javascript - Featherlight lightbox 与 Spring 和 Thymeleaf 一起无法在框中打开图像