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

visual-studio-code - 如何在 visual-studio-code 中编辑 ansible-vault 加密文件?

我正在使用命令行工具 ansible-vault 并尝试编辑加密文件。

EDITOR=code ansible-vault edit test.txt

预计代码会在编辑器中以解密的内容打开。保存后 ansible-vault 应该解密(更改的)缓冲区。工作起来很像编辑 git commit 消息。

但是,缓冲区是空的。并且更改/保存对文件没有太大作用。

我还用 vim 和 subl 进行了尝试,它们都按预期工作。我需要做什么才能使用visual-studio-code来完成这项任务?

0 投票
1 回答
7031 浏览

python - 如何在 Ansible Playbook 中使用“become_pass”

我尝试编写一个 Ansible yml,它从加密的保管库文件中读取根密码,然后将其传递给 become_pass:

p>

但这失败了:错误!'become_pass' 不是 Play 的有效属性

但为什么 ?- 根据 Ansible 文档,这是一个有效的命令。

0 投票
1 回答
4632 浏览

bash - 通过 bash 脚本在“交互模式”下使用 ansible-vault

我真的很喜欢ansible-vault在命令行上轻松地加密/解密文件。例如,如果我有一个~/fizzbuzz.foo使用以下内容调用的纯文本文件:

我可以像这样使用这个工具:

繁荣——加密!当我vi ~/fizzbuzz.foo现在:

我想在 bash 脚本中使用它,我将加密/解密密码作为脚本参数传入:

但是,我看不到任何类似于-i. 我能找到的最好的方法是使用 env 文件来存储实用程序的密码,但我玩过但找不到类似的行为。ansible-vaultansible-playbookansible-vault

有任何想法吗?

0 投票
2 回答
548 浏览

json - Ansible RAW 模块 - Curl 和 JSON 文件 (Kubernetes)

我需要用 curl 解析一个名为 keys_base64 的 JSON 属性。我只能选择使用 Ansible 的原始模块来完成此操作。这是因为网络相关问题。我尝试了许多不同的方法,但迷路了。我怎样才能让它工作?

更新:找到答案

原帖

** JSON 键示例对象 **

** unseal.json **

** 剧本**

playbook 变量“vault_ocs_unseal_keys”包含 JSON 对象。

**剧本输出**

}

0 投票
1 回答
2066 浏览

json - 带有 to_nice_json 的 Ansible Vault 内联变量:发生意外的模板类型错误...不是 JSON 可序列化的

我通常通过设置配置变量vars/main.yml并将其中的一部分通过to_nice_json.

考虑一个vars/main.yaml类似下面的例子:

我通过 Jinja2 模板和template具有以下内容的模块呈现出来:

最近我尝试使用 Ansible Vault 来加密敏感位,例如,sql_password通过encrypt_string命令如下:

ansible-vault encrypt_string --vault-id .ansible-vault-password "somepassword" --name 'sql_password'

并直接在 YAML 文件中内联加密版本,如下所示:

但是,当to_nice_json应用过滤器时,我收到以下错误:

可以看出,该变量是属性解密的,但在序列化为 JSON 时会出错。但是,如果我将内联 Vault 变量用双引号括起来,则不会发生解密,并且生成的 JSON 包含整个 Vault Blob。

我错过了什么吗?这是to_nice_json过滤器的问题还是内联方式错误?

0 投票
1 回答
9160 浏览

ansible - 如何使用 vault 为 ansible 中的一组主机提供 SSH 用户密码

考虑以下 Ansiblehosts文件:

我想从保险库文件中包含这些密码值并有一个hosts类似的文件(我的意图是有一个ini清单格式):

其中sss_pass变量来自文件夹中定义的拱形文件host_vars

相关的 ansible 文件夹结构如下所示:

但 ansible 抱怨:

  • 为什么我会收到错误消息?
  • 如何将密码导入hosts文件?
0 投票
1 回答
5896 浏览

ansible - Ansible Vault 和使用 include_vars 加密的变量

我需要使用 ansible Vault 存储和加密密码的文件,我创建了一个名为“passes”的加密文件,该文件存储在 group_vars 中,解密后包含以下内容:

我创建了剧本文件:

该角色只是使用模板传递的文件部署一个文件,该文件是:

每次我使用 tower 启动它时,我都会收到错误消息

"msg": "AnsibleUndefinedVariable: 'testvar' 未定义"

任何想法我做错了什么?没有迹象表明我的加密文件正在被 ansible 解密。还有我刚刚粘贴的加密文件:

也许加密的文件应该看起来不同,所以 Ansible 会解密它?

0 投票
1 回答
748 浏览

encryption - 在 rsync 之前解密 ansible Vault 文件

我使用以下脚本加密了一堆文件(证书)

在 rsyncing 我运行这样的东西

我面临的问题是移动的文件仍然保持加密状态。我认为 ansible 足够聪明,可以检测它是否像我在这里所做的那样被加密和解密

回到前面的问题,如何确保文件夹/文件中的文件在 rsyncing 之前被解密

编辑:

我尝试使用复制模块,因为它具有加密意识,但该模块似乎挂起。注意到ansible github上目录的复制模块存在一些问题,我回来同步。

我也尝试了with_fileglob方法,但这会使目录结构变平。

编辑2:

我得到了加密,解密以使用复制模块,但速度非常慢。

0 投票
0 回答
481 浏览

ansible - Ansible 过滤器中的 Ansible Vault 单变量

我正在使用这个角色来安装google-cloud-sdk. 有一个带有名称的任务Activate service account,它使用 ansible 过滤器from_json从 GCE 服务帐户密钥中获取数据。

由于在 git repo 中存储敏感数据不是一个好方法,我auth.json用下一个命令加密了我的文件(首先使它成为单行):

awk -v RS= '{$1=$1}1' ./auth.json |ansible-vault encrypt_string --stdin-name gcloud_key

具体问题或错误:

但是,我在运行分子测试时遇到了下一个错误:

我已经加密了该文件并尝试将其路径放入gcloud_key变量值,但得到:

添加加密文件内容作为变量值也会导致No JSON object could be decoded

期望的行为:

Playbook 应该解码 Vault 变量并将from_json其作为 JSON 获取。

重现所需的最短代码:

(保险库密码是123456,放在里面./vpass

auth.json文件内容为:

您可以使用以下方法测试它是否是有效的 JSON:

cat ./auth.json |jq -e

对其进行加密的命令是:

cat auth.json |ansible-vault encrypt_string --stdin-name gcloud_key

将 next 放入main.yml项目根目录的文件中:

使用此requirements.yml内容:

这个ansible.cfg内容:

使用此命令运行测试:

我究竟做错了什么?提前致谢。

0 投票
1 回答
2343 浏览

ansible - 以安全的方式存储“ansible_ssh_private_key_file”?

我想知道将 'ansible_ssh_private_key_file' 值存储为源代码控制中 ansible playbook 的一部分的推荐最佳实践是什么。我已经使用多个 SSH 密钥对跟踪了这个优秀的线程Ansible,但是 .pem 文件将对 git repo 的任何读取都是公开的。

我目前正在考虑两种选择

  1. 使用 ansible-vault 加密私钥详细信息。这使我可以将私钥内容安全地保存在 git 中。
  2. 在 Jenkins 凭证管理器中保存私钥详细信息。这有点混乱,因为配置现在在两个地方。

任何建议将不胜感激。