问题标签 [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 投票
2 回答
459 浏览

azure - 无法在 ansible 中获取 azure key vault secret

我尝试使用azcollection 1.9.0 从我的 ansible 4 playbook 中的 azure key vault 获取一个秘密。

根据文档,结果应该包含一个秘密列表,其中包含一个名为secret包含秘密值的属性。

但是,结果集中不存在此属性。这是我得到的结果:

如果我尝试使用该name选项获取这个确切的秘密,我会得到一个空的结果集。

我的保管库包含此密钥,它有一个值,并且服务主体可以通过 IAM 访问我的密钥保管库,其角色Key Vault ReaderKey Vault Secrets User.

0 投票
0 回答
20 浏览

ansible - 在本地有两个不同版本的同一个ansible集合

是否有可能必须在本地版本相同的 ansible 集合?
我目前正在使用 ansible 2.11.6 和 python 3.6.8。我想知道我们是否可以拥有同一个集合的 2 个版本而无需卸载并重新安装另一个版本?

0 投票
0 回答
86 浏览

ansible - 如何将变量文件从集合中包含到 ansible 剧本中

我有一个收藏,其中包括一本剧本:

我有一个文件夹,其中包括剧本、角色和变量:

现在我想在想要包含变量和当前目录清单的文件夹中example_playbook.yml运行剧本:ansible-example

请注意,应加载当前目录中的变量。这不起作用,因为 ansible 只是在寻找集合中 playbook 的目录vars_fileplaybook_dir

我也尝试将变量包含在内,但include_vars也没有成功。

是否有可能从运行剧本的当前目录中包含 vars_file?

谢谢你的帮助!

0 投票
0 回答
29 浏览

ansible - 在 Ansible 集合中引用过滤器时出现错误:模板化字符串时出现模板错误:没有命名过滤器

我对 Ansible 相当陌生,目前在使用 Ansible 集合时遇到了麻烦。我有这个包含很多角色的存储库,我们想利用 Ansible 集合的使用。

这是目前 Ansible 集合的结构:

集合结构

现在,我可以将它安装在另一个 repo 中(因为它使用了其中的check_service_id角色 using namespace.name.check_service_id)。

现在,我的主要问题是如何对filters.py中的过滤器做同样的事情?

我试过namespace.name.filtername了,但没有用。相反,它给了我一个错误:

模板化字符串时出现模板错误:没有名为“namespace.name.filtername”的过滤器。字符串:{{ p_contextobject | namespace.name.filtername }}

0 投票
0 回答
134 浏览

ansible - 在一个 Molecule 场景中使用不同的 Ansible 集合版本

我有一个 Ansible 集合来安装一些软件。每个软件版本都附加到一个单独的集合版本。要测试升级,我需要先应用旧的集合版本,然后运行新版本。为了实现这一点,我稍微改变了收敛/测试顺序molecule.yml

所以dependencystep 在升级活动之前安装新版本的集合converge,并且prepareplaybook 包含安装旧集合版本和以前的软件版本的任务:

但它仅在converge运行两次或更多时才有效,因此在ANSIBLE_COLLECTIONS_PATH. 但是为什么第一次运行不是这样呢?错误是

有没有办法避免这种情况或使用另一种方法?当需要安装不同的集合版本时,我尝试使用环境变量dependency.options.requirements-file并执行两次步骤,但也没有成功。dependency

0 投票
1 回答
61 浏览

ansible - 带有角色范围自定义模块的 Ansible 集合

我正在尝试将我的一堆 Ansible 剧本、角色、任务等转换为正式的Ansible 集合,以更好地支持重用和模块化。

TL;DR 是我在打包包含一个包含自定义模块的角色的集合时遇到问题。以前,我可以从角色中的任何任务文件调用角色的自定义模块,而无需完全限定集合名称 (FQCN)。但是,将角色打包为集合的一部分后,Ansible 表示它无法解析角色的自定义模块名称。


在这个集合中,我拥有以下所有内容:

  • 一本剧本,foobook.yml
  • 自定义模块,my_baz_module
  • 职务,bar_role
  • 中的自定义模块bar_rolemy_bar_role_module

这导致以下目录结构:

这种结构让我可以使用 运行剧本ansible-playbook mynamespace.mycollection.foobook ...,并在该剧本中使用 访问角色role: mynamespace.mycollection.bar_role。在角色或剧本中,我可以调用my_baz_module如下使用的任务:

但是,在roles/bar_role/tasks/main.yml我无法调用以下任一任务或出现以下错误:

需要明确的是:这是与向集合结构过渡直接相关的变化。在将此内容移动到集合之前,我可以my_bar_role_module毫无问题地从任何任务文件中调用bar_role。有没有办法支持这种结构而不单独打包角色或移动my_bar_role_module到集合范围插件目录?

编辑:剧本正在与ansible-playbook mynamespace.mycollection.foobook. 下面是一个示例剧本:

0 投票
0 回答
45 浏览

sql-server - 使用 ansible 创建 SQL Server 数据库时出现分段错误

我正在尝试安装 SQL Server 并使用 ansible 创建数据库。在同一子网中的云上创建了两个 redhat linux VM,并在两者之间进行了无密码 ssh 设置。两个 linux VM 之一是受控节点,而另一个 VM 是受管节点。

SQL Server 安装成功。但是,在尝试使用 ansible 中的集合模块在远程主机/托管节点上创建数据库时,出现以下错误

致命:[10.0.0.8]:失败!=> {
"changed": false,
"module_stderr": "Shared connection to 10.0.0.8 closed.",
"module_stdout": "/bin/sh: line 1: 37586 Segmentation fault (core dumped) /usr/libexec/platform -python /root/.ansible/tmp/ansible-tmp-1642959225.66601-7053-260101587074933/AnsiballZ_mssql_db.py",
"msg": "MODULE FAILURE\n查看 stdout/stderr 了解确切的错误",
"rc": 139

下面添加的是在受管节点上创建新数据库的剧本。