问题标签 [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.
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.yml
,vars/main.yml
但没有奏效。
有没有合适的方法来做到这一点?
ansible - Ansible 剧本 - 环境变量
我正在尝试(新手)设置一个剧本,它将使用查找插件从保险库(https://github.com/jhaals/ansible-vault)中获取机密,但每次都会因缺少环境变量而失败。任何人都可以帮忙吗?谢谢您的帮助。
PS:token 仅供测试
查找模块中有条件:
剧本:
输出:
security - 如何将 ansible_become_pass 存储在保险库中以及如何使用它?
我是 ansible 的新手,我正在使用一个非常简单的剧本来发布sudo apt-get update
和sudo apt-get upgrade
在几个服务器上。
这是我正在使用的剧本:
~/.ansible/inventory/hosts
这是我文件的摘录:
如果我启动剧本,这就是我得到的:
困扰我的是我的用户密码以user
明文形式存储在我的~/.ansible/inventory/hosts
文件中。
我读过vaults,我也读过关于变量和 vaults 的最佳实践,但我不明白如何将它应用到我最小的用例中。
我也尝试使用lookups。虽然通常它们也可以在库存文件中使用,但我可以执行以下操作:
在这种情况下,密码将存储在名为ANSIBLE_BECOME_PASSWORD_SAN_FRANCISCO
;的环境变量中。据我所知,没有办法在保险库中查找变量。
那么,我该如何组织我的文件,以便能够从某个地方查找我的密码并安全地存储它们呢?
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
应返回空更改。
作为参考,这是污迹:
这是差异:
templates - Ansible 取消保管和模板化文件
我的本地计算机上有一个文件,我想上传到远程服务器,它包含我不想在我的 VCS 中公开的机密信息。它还有一些我需要在其中动态替换的文本(目前作为 Jinja2 占位符“{{}}”)。
如果我使用复制模块,那么当我上传文件时,文件是未保存的,但显然占位符已被替换。
如果我使用模板模块,那么它不会取消保管文件,因此它会以其加密格式上传(并且也不会替换占位符,因为它们被加密混淆了)。
如何将文件(使用 ansible)模板化和取消保管到远程服务器?
vagrant - 如何在 Ansible 和 Vagrant 中调试“错误!意外异常:找到非十六进制数字”?
我在尝试使用 Ansible 运行 Vagrant 时遇到问题。这是我在 Windows 7 上尝试运行vagrant up
或vagrant provision
在终端(git bash)中遇到的错误:
发生这种情况是因为该Ansible-vault
文件.vault_pass
不是十六进制的(它是一个字符串并且不能更改)。在我同事的电脑上它可以正常工作,但在我的电脑上却不行。
文件中有问题的字符串.vault_pass
看起来像DBAKWeG3KOr3jKjBDbAz
.
我想问题出在 Python 上,但我不确定,也不知道如何解决。
当我尝试添加-vvv
这是结果:
yaml - 在 Ansible YAML 文件中编码斜杠 /
在 Ansible 保险库中存储随机生成的密码时,除非密码包含 /(斜杠,正斜杠),否则我没有问题
根据Yaml Spec 1.2,在查看可打印的 ascii 字符时,我应该用反斜杠转义双引号、反斜杠和正斜杠。
我试过这个,但我得到一个解析错误。
保险库文件中的行
错误:
ansible - 保险库是否可以有多个密码
我有一个与其他团队共享的部署项目。我已经用保险库加密了我的秘密。我想用密码加密生产文件,用其他密码加密暂存文件,以避免其他团队访问生产机密。
有可能这样做吗?
我做过类似的事情。我的秘密:
我的环境:
我的脚本:
我就这样启动了剧本。
但这不起作用,因为有 2 个不同的密码(错误!解密失败)。你知道怎么做吗 ?
谢谢。
BR,
埃里克
ansible - 使用私钥作为密码的 ansible 保险库(类似于 eyaml)?
部分木偶到 ansible 迁移。当前的 puppet 配置使用 eyaml:
Ansible 有实现加密的保险库,但据我所知,它需要将密码作为纯文本存储在文件中。
我可以为 ansible vault 使用类似于 eyaml 的组合键吗?
include - 如何在 ansible 中使用 include_vars
我已经创建了自己的自定义库,我在存储库的公共文件夹中添加了自定义库。因为我需要动态传递变量。这是一个机密密码,所以我在 ansible 中使用“保险库”。
我的要求是如何传入之前include_vars
的tasks\main.yml
主机。
例如:mytasks.yml
我的目录结构是这样的:
sample_vault.yml
在这里,在使用 ansible 执行主机任务之前,我需要使用文件中传递的变量运行 sample_tasks 文件。如果我使用额外的变量意味着密码是可见的,所以我不需要。
当我include_vars
在我的tasks/main.yml
文件中使用时,它显示以下错误:
错误!“include_vars”不是 Play 的有效属性