问题标签 [ansible-collections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
299 浏览

ansible - ansible collections - 集合级别变量

有没有办法在集合级别提供变量。这样该集合中的所有角色都可以访问该变量吗?

示例用例:一个公司的多个角色的集合。许多角色需要默认的网络存储位置。

可能的解决方法

  1. 拥有一个角色,集合中的所有其他角色都依赖于该角色set_fact
  2. 在实例上设置事实
0 投票
1 回答
71 浏览

plugins - ansible 插件可以调用角色或剧本吗?

我有一个重要的角色,我希望将其打包到一个集合中,并且我想创建一个调用该角色的插件,而不是执行“include_role”。所以,我正在寻找我的客户能够提出如下内容:

这将在内部运行一些验证,但最终它将调用整个角色来执行(与仅调用模块相反)。

我发现的所有文档似乎都从插件调用模块,但似乎没有任何东西能够调用角色(或剧本)。有没有办法做到这一点?

0 投票
0 回答
1076 浏览

ansible - Ansible Tower 未找到集合

我是 Ansible 的新手,对使用 Ansbile 2.9.15 的 Ansible Tower 3.7.4 非常陌生。我正在尝试做一个在 Git 存储库中运行 ansible 脚本的基本模板。注意:如果我在带有 python 和 ansible-galaxy 的 linux 机器上安装 ansible,我可以提取集合并且一切正常。但是,在 Ansible Tower 中,并没有看到我从 ansible-galaxy 中提取的集合。这是我得到的错误

我的 ansible playbook 主要级别的 collections 目录中有一个 requirements.yml 文件。这是它的内容

目录结构是

这是我在 Ansible Tower 中运行模板时的完整输出

知道我做错了什么吗?

0 投票
1 回答
121 浏览

ansible - 带有 host_vars 的 ansible 集合

有没有办法使用 host_vars/ 或 group vars/ 或者就此而言 defaults/ 或任何类型的变量插件,some_playbook.yml它们使用自定义集合。导入的角色看不到任何变量。

host_vars 的理想情况,因为它可以是每个主机。显然,如果我在集群中有 2 台服务器,我无法硬编码日期并让它们同时重新启动。

现在我得到

现在,我可以做到这一点,但它并不能真正与hosts: all.

0 投票
1 回答
405 浏览

github - 私有 GitHub 存储库的 Ansible Galaxy 集合依赖 SSH 错误

作为 Ansible 集合的新手,我希望我在尝试使用私有 GitHub 存储库将一些旧的 Ansible 角色重构为集合时遗漏了一些明显的东西。

我有 2 个链接帐户的 GitHub 设置。我会打电话给主要的个人帐户GITHUB_AC_P。个人帐户与我将调用的子组织帐户相关联GITHUB_AC_O。我可以在 GitHub Web UI 中切换这些帐户,并使用以下单个条目~/.ssh/config 通过 git 客户端访问这两个帐户:

我首先将 Ansible Galaxy 集合文件添加到名为ansible.commonaccount的新 GitHub 存储库中GITHUB_AC_O。我计划在其他 Ansible Galaxy 集合中重用这个集合。它目前只有一个角色和以下galaxy.yml文件:

以下命令报告“安装成功”,我在以下位置看到集合~/.ansible/collections/ansible_collections/REDACTED_NS/common

然后,我在一个名为ansible.harden_host. 这也在考虑之内GITHUB_AC_O。这目前没有任何角色,并使用以下galaxy.yml文件来引用上述公共集合(两个galaxy.yml文件中REDACTED_NS的值相同):

但是当我运行以下命令时:

它失败并显示消息:

为什么这是试图点击galaxy.ansible.com而不是我的 GitHub 帐户?

当我添加--ignore-certs并运行以下内容时:

它失败并显示以下不同消息:

我将此错误中的 URI(冒号右侧)粘贴到ansible-galaxy collection install命令中,以验证 URI 中没有拼写错误。这工作得很好。

字符串 REDACTED_NS 不等于 GITHUB_AC_P 或 GITHUB_AC_O 的值。

如果有人可以请解释这里出了什么问题以及如何解决这个问题,将不胜感激。

0 投票
0 回答
103 浏览

ansible - 如何使用 Ansible F5 模块集合在 F5 设备上检索 SSL 证书序列号?

我有以下脚本,其中列出了除证书序列号之外的 SSL 证书详细信息。
我看到那个bigip-device-info模块不支持ssl-certs序列号。

如何使用 Ansible 中的 f5 模块集合检索 ssl 证书的序列号?

0 投票
1 回答
86 浏览

docker - docker 容器中的 Ansible 集合没有被拾取

我有一个 2.9.13 ansible 容器正在运行。我在容器中安装了一些集合,它们最终位于:

./root/.ansible/collections/ansible_collections/<namespace>/<collection>

当我从主目录中的文件夹运行剧本时,找不到角色。

它似乎检查了集合,但找不到它。

我在剧本代码中有以下部分:

ansible.cfg 条目:

那么 ansible 真的在检查那个位置吗?

感谢您提前提供任何帮助。

0 投票
0 回答
39 浏览

python - ansible 集合异常:“CollectionModuleUtilLocator 只能定位在下方”,集合放错了位置?

使用 Ansible 2.10.7:

在 CentOS7 机器上,我正在尝试使用自定义集合,但出现以下错误:

我的收藏位于: /home/admin/.ansible/collections/ansible_collections/sdp/firewall_automation

我的 ansible.cfg 看起来像:

看起来我的收藏品放置不当,但我在其他机器上使用此收藏品时,使用相同的配置没有此错误。

完整的错误回溯是:

0 投票
1 回答
183 浏览

kubernetes - 即使安装了集合,“community.kubernetes.k8s”也无法在 Ansible 中解析

我想使用 Ansible 创建一些 Kubernetes 对象。可以做到这community.kubernetes.k8s一点,它包含在community.kubernetes集合中。当我尝试创建命名空间时

Ansible 抛出集合未安装的错误:

但是它已经安装好了,正如ansible-galaxy collection install确认的那样:

我安装的 Ansible 版本是 Python 3.8.10 上的 2.9.6,其中ansible_python_interpreter=/usr/bin/python3设置和 Python2 未安装在工作站上(以 为目标ansible_connection=local)。

我究竟做错了什么?

我已经尝试过的

使用旧 + 新命名

安装集合需要 Ansible 2.9+ ansible-galaxy,所以这应该可以工作。在收集文档中,我发现了这个通知:

重要信息 community.kubernetes 集合正在重命名为 kubernetes.core。从 2.0.0 版本开始,该集合已被弃用的所有内容重定向到 kubernetes.core 所取代。如果您使用以 community.kubernetes 开头的 FQCN,请将它们更新为 kubernetes.core。

尽管这似乎令人困惑,因为 Ansible 文档仍然提到community.kubernetes.k8s我也尝试过

并且可以肯定

但仍然抛出相同的无法解决模块/操作“kubernetes.core.k8s”错误。两个目录都~/.ansible/collections/ansible_collections/kubernetes/core/存在~/.ansible/collections/ansible_collections/community/kubernetes/,所以我猜这两个(旧+新命名)都应该工作。

检查目录

ansible-galaxy 通过用switch调用-vvv,我证明了它/home/user/.ansible/collections/ansible_collections是有用的。它还表明这些软件包在后台安装了两个软件包:旧community.kubernetes的和新的kubernetes.core

这对我来说似乎更令人困惑,因为旧的回购说

这个 repo 托管 community.kubernetes (aka kubernetes.core) Ansible Collection。

对我来说,这听起来像是他们只是在更改名称。但正如我们所见,kubernetes.core它有自己的 repo 和版本(2.1.1 vs 2.0)。

为了确保使用此目录,我ansible.cfg在项目范围内将以下内容添加到本地:

没有任何区别。

0 投票
0 回答
505 浏览

ansible - ansible 没有查看 ansible.cfg 的 collections-path 中定义的集合

我的 ansible playbook 文件夹中有本地集合文件夹。我还在 ansible.cfg 中配置了路径。

但是当我运行剧本时,它使用来自 python 站点包的路径

我在跑步

作为调试剧本运行的一部分,我删除了站点包下的集合,我的剧本开始失败。

ansible-playbook 运行带有详细的调试显示

ansible-galaxy 集合列表显示本地集合和站点包下的集合。

在剧本中,我的任务使用 FQCN。例如 arista.eos.eos_facts:

我还手动设置了 ANSIBLE_COLLECTIONS_PATH 变量。