【问题标题】:Is there client / agent software for Ansible?是否有 Ansible 的客户端/代理软件?
【发布时间】:2019-12-27 14:19:40
【问题描述】:

Ansible 的优势之一是无代理架构。 Ansible 使用 Python,而且几乎总是预装在任何发行版上。因此,在 Ansible 需要发挥其魔力的机器上不需要客户端或代理。

最近的经验让我们怀疑这在实践中是否正确。

例如,当前的 Ansible 提供了用于生成证书的模块,如文章 Generating self-signed OpenSSL certs with Ansible 2.4's crypto modules | Jeff Geerling 中所述

但如果你使用这些,你还需要:pip、python-dev。这些依赖项最初会失败,因为您需要为 python_versionpython_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 客户端。这很可能会失败,例如显示类似

的消息

无法导入所需的 Python 库 (setuptools) myserver 的 Python /usr/bin/python

所以我在这一点上的结论是,Ansible 并不是真正的无代理,实际上确实需要目标机器上的某种客户端/代理。此客户端/代理只是动态下载、编译、链接和配置。

如果我们需要这样做只是为了使用标准 Ansible 模块,我们已经有效地证明了需要 Ansible 客户端和/或某种类型的代理。

当然,不会出现任何官方 Ansible 客户端/代理,因为 Ansible 被吹捧为无需代理,并且除了 Python 之外不需要任何其他东西。

但也许有人不厌其烦地创建了这样一个客户端?是否有某种安装程序可以安装 Ansible 声称支持的模块的所有依赖项?

【问题讨论】:

  • "agent-less" 意味着它使用ssh 来执行所有可能的命令,而代理可能会侦听某些端口并接收诸如 HTTP 消息并应用更改。毫不奇怪,您需要一些依赖项来做某事。即使你说你可以通过 bash 命令生成证书,你首先需要安装 OpenSSL。

标签: python ansible client agent


【解决方案1】:

问:“ 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 所需的全部。请参阅certificate Ansible Galaxy 角色中的详细信息。

Debian vars

certificate_packages:
  - python-openssl
  - acme-tiny

FreeBSD vars

certificate_packages:
  - security/py-openssl
  - security/py-acme-tiny

YMMV.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2023-03-19
    • 2017-11-28
    • 2011-05-06
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多