问题标签 [ansible-vault]

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 投票
3 回答
15831 浏览

ansible - 在 ansible 角色中使用多个 var 文件

我的角色之一有两种不同的变量类型。一种是公开的(例如软件包版本和其他良性信息)。这些可以毫无顾虑地提交给 SCM。它还需要一些私人信息(如 API 密钥和其他秘密信息)。我ansible-vault用来加密秘密信息。我的解决方案是vars/main.yaml公开和vars/vault.yml加密的私人信息。

我遇到了一个问题,我不确定这里的最佳实践或实际解决方案是什么。似乎 ansible 只加载vars/main.yml文件。我自然不想加密公共信息,所以我寻找解决方案。到目前为止,我想出的唯一解决方案(在 IRC 上建议)是group_vars/all/vault.yml使用角色名称创建所有变量并为其添加前缀。这是可行的,因为 ansible 似乎递归地加载了group_vars. 这确实有效,但在组织上似乎不正确,因为变量是针对特定角色的,而不是“全局普遍正确的”。我也尝试投入include: vars/vault.ymlvars/main.yml但没有奏效。

有没有合适的方法来做到这一点?

0 投票
2 回答
3591 浏览

ansible - Ansible 剧本 - 环境变量

我正在尝试(新手)设置一个剧本,它将使用查找插件从保险库(https://github.com/jhaals/ansible-vault)中获取机密,但每次都会因缺少环境变量而失败。任何人都可以帮忙吗?谢谢您的帮助。

PS:token 仅供测试

查找模块中有条件:

剧本:

输出:

0 投票
3 回答
25814 浏览

security - 如何将 ansible_become_pass 存储在保险库中以及如何使用它?

我是 ansible 的新手,我正在使用一个非常简单的剧本来发布sudo apt-get updatesudo apt-get upgrade在几个服务器上。

这是我正在使用的剧本:

~/.ansible/inventory/hosts这是我文件的摘录:

如果我启动剧本,这就是我得到的:

困扰我的是我的用户密码以user明文形式存储在我的~/.ansible/inventory/hosts文件中。

我读过vaults,我也读过关于变量和 vaults 的最佳实践,但我不明白如何将它应用到我最小的用例中。

我也尝试使用lookups。虽然通常它们也可以在库存文件中使用,但我可以执行以下操作:

在这种情况下,密码将存储在名为ANSIBLE_BECOME_PASSWORD_SAN_FRANCISCO;的环境变量中。据我所知,没有办法在保险库中查找变量。

那么,我该如何组织我的文件,以便能够从某个地方查找我的密码并安全地存储它们呢?

0 投票
0 回答
477 浏览

git - Git clean/smudge filters for ansible vault secrets

我正在尝试在 git 中设置清洁/涂抹过滤器,以通过ansible-vault命令自动加密和解密包含机密的文件。

ansible-vault 命令的特殊之处在于它不是幂等的(每次在相同数据上调用它时都会创建不同的二进制文件)。

我从这个博客页面中建议的实现开始。不幸的是,它不能正常工作,因为每当调用 smudge 时(无论是 git checkout ,还是只是 git status ),即使不是,秘密文件看起来也为 git 修改过。

所以我想知道 git 是否会将他在索引中的二进制文件与干净过滤的当前文件进行比较,我尝试在这些脚本上构建,如下所示:

这里的区别在于它尝试比较纯文本(未加密)机密文件的当前版本和 HEAD 版本,并且只有在它们不同的情况下才会输出使用 ansible-vault 加密的新二进制 blob。

不幸的是,在此更改之后,git 继续认为秘密文件总是被修改。即使git add再次 ing 文件,以便计算 git blob,git 仍认为文件不同,并让更改进入提交。请注意,git diff应返回空更改。

作为参考,这是污迹:

这是差异:

0 投票
4 回答
9752 浏览

templates - Ansible 取消保管和模板化文件

我的本地计算机上有一个文件,我想上传到远程服务器,它包含我不想在我的 VCS 中公开的机密信息。它还有一些我需要在其中动态替换的文本(目前作为 Jinja2 占位符“{{}}”)。

如果我使用复制模块,那么当我上传文件时,文件是未保存的,但显然占位符已被替换。

如果我使用模板模块,那么它不会取消保管文件,因此它会以其加密格式上传(并且也不会替换占位符,因为它们被加密混淆了)。

如何将文件(使用 ansible)模板化和取消保管到远程服务器?

0 投票
4 回答
7323 浏览

vagrant - 如何在 Ansible 和 Vagrant 中调试“错误!意外异常:找到非十六进制数字”?

我在尝试使用 Ansible 运行 Vagrant 时遇到问题。这是我在 Windows 7 上尝试运行vagrant upvagrant provision在终端(git bash)中遇到的错误:

发生这种情况是因为该Ansible-vault文件.vault_pass不是十六进制的(它是一个字符串并且不能更改)。在我同事的电脑上它可以正常工作,但在我的电脑上却不行。

文件中有问题的字符串.vault_pass看起来像DBAKWeG3KOr3jKjBDbAz.

我想问题出在 Python 上,但我不确定,也不知道如何解决。

当我尝试添加-vvv这是结果:

0 投票
1 回答
4612 浏览

yaml - 在 Ansible YAML 文件中编码斜杠 /

在 Ansible 保险库中存储随机生成的密码时,除非密码包含 /(斜杠,正斜杠),否则我没有问题

根据Yaml Spec 1.2,在查看可打印的 ascii 字符时,我应该用反斜杠转义双引号、反斜杠和正斜杠。

我试过这个,但我得到一个解析错误。

保险库文件中的行

错误:

0 投票
2 回答
5592 浏览

ansible - 保险库是否可以有多个密码

我有一个与其他团队共享的部署项目。我已经用保险库加密了我的秘密。我想用密码加密生产文件,用其他密码加密暂存文件,以避免其他团队访问生产机密。

有可能这样做吗?

我做过类似的事情。我的秘密:

我的环境:

我的脚本:

我就这样启动了剧本。

但这不起作用,因为有 2 个不同的密码(错误!解密失败)。你知道怎么做吗 ?

谢谢。

BR,

埃里克

0 投票
2 回答
614 浏览

ansible - 使用私钥作为密码的 ansible 保险库(类似于 eyaml)?

部分木偶到 ansible 迁移。当前的 puppet 配置使用 eyaml:

Ansible 有实现加密的保险库,但据我所知,它需要将密码作为纯文本存储在文件中。

我可以为 ansible vault 使用类似于 eyaml 的组合键吗?

0 投票
1 回答
44707 浏览

include - 如何在 ansible 中使用 include_vars

我已经创建了自己的自定义库,我在存储库的公共文件夹中添加了自定义库。因为我需要动态传递变量。这是一个机密密码,所以我在 ansible 中使用“保险库”。

我的要求是如何传入之前include_varstasks\main.yml主机。

例如:mytasks.yml

我的目录结构是这样的:

sample_vault.yml在这里,在使用 ansible 执行主机任务之前,我需要使用文件中传递的变量运行 sample_tasks 文件。如果我使用额外的变量意味着密码是可见的,所以我不需要。

当我include_vars在我的tasks/main.yml文件中使用时,它显示以下错误:

错误!“include_vars”不是 Play 的有效属性