问题标签 [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.
ansible - ansible collections - 集合级别变量
有没有办法在集合级别提供变量。这样该集合中的所有角色都可以访问该变量吗?
示例用例:一个公司的多个角色的集合。许多角色需要默认的网络存储位置。
可能的解决方法:
- 拥有一个角色,集合中的所有其他角色都依赖于该角色
set_fact
- 在实例上设置事实
plugins - ansible 插件可以调用角色或剧本吗?
我有一个重要的角色,我希望将其打包到一个集合中,并且我想创建一个调用该角色的插件,而不是执行“include_role”。所以,我正在寻找我的客户能够提出如下内容:
这将在内部运行一些验证,但最终它将调用整个角色来执行(与仅调用模块相反)。
我发现的所有文档似乎都从插件调用模块,但似乎没有任何东西能够调用角色(或剧本)。有没有办法做到这一点?
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 中运行模板时的完整输出
知道我做错了什么吗?
ansible - 带有 host_vars 的 ansible 集合
有没有办法使用 host_vars/ 或 group vars/ 或者就此而言 defaults/ 或任何类型的变量插件,some_playbook.yml
它们使用自定义集合。导入的角色看不到任何变量。
host_vars 的理想情况,因为它可以是每个主机。显然,如果我在集群中有 2 台服务器,我无法硬编码日期并让它们同时重新启动。
现在我得到
现在,我可以做到这一点,但它并不能真正与hosts: all
.
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.common
account的新 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 的值。
如果有人可以请解释这里出了什么问题以及如何解决这个问题,将不胜感激。
ansible - 如何使用 Ansible F5 模块集合在 F5 设备上检索 SSL 证书序列号?
我有以下脚本,其中列出了除证书序列号之外的 SSL 证书详细信息。
我看到那个bigip-device-info
模块不支持ssl-certs
序列号。
如何使用 Ansible 中的 f5 模块集合检索 ssl 证书的序列号?
docker - docker 容器中的 Ansible 集合没有被拾取
我有一个 2.9.13 ansible 容器正在运行。我在容器中安装了一些集合,它们最终位于:
./root/.ansible/collections/ansible_collections/<namespace>/<collection>
当我从主目录中的文件夹运行剧本时,找不到角色。
它似乎检查了集合,但找不到它。
我在剧本代码中有以下部分:
ansible.cfg 条目:
那么 ansible 真的在检查那个位置吗?
感谢您提前提供任何帮助。
python - ansible 集合异常:“CollectionModuleUtilLocator 只能定位在下方”,集合放错了位置?
使用 Ansible 2.10.7:
在 CentOS7 机器上,我正在尝试使用自定义集合,但出现以下错误:
我的收藏位于:
/home/admin/.ansible/collections/ansible_collections/sdp/firewall_automation
我的 ansible.cfg 看起来像:
看起来我的收藏品放置不当,但我在其他机器上使用此收藏品时,使用相同的配置没有此错误。
完整的错误回溯是:
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
在项目范围内将以下内容添加到本地:
没有任何区别。
ansible - ansible 没有查看 ansible.cfg 的 collections-path 中定义的集合
我的 ansible playbook 文件夹中有本地集合文件夹。我还在 ansible.cfg 中配置了路径。
但是当我运行剧本时,它使用来自 python 站点包的路径
我在跑步
作为调试剧本运行的一部分,我删除了站点包下的集合,我的剧本开始失败。
ansible-playbook 运行带有详细的调试显示
ansible-galaxy 集合列表显示本地集合和站点包下的集合。
在剧本中,我的任务使用 FQCN。例如 arista.eos.eos_facts:
我还手动设置了 ANSIBLE_COLLECTIONS_PATH 变量。