问题标签 [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.
git - 当我尝试 git-log ansible-vault 文件时,我不断收到密码提示
我按照这里的说明进行操作:
但我不断收到输入 ansible-vault 密码的提示。
这是我运行的提示输入保管库密码的命令:
git log -p staging.yml
我究竟做错了什么?我尝试将寻呼机作为猫放入,而不是像评论显示的那样,它仍然提示输入保险库密码......有人可以告诉我我做错了什么吗?我正在使用mac os x sierra ...
ansible - 加密 ansible 库存文件
我想使用 ansible vault 加密我的 ansible 库存文件,因为它包含 IP/密码/密钥文件路径等,我不想将其保持为可读格式。
这是我尝试过的。
我的文件夹结构如下所示
环境/主机
env/hosts_details(我要加密的文件)
测试.yml
不加密的执行成功运行,没有任何错误
当我使用 files/vault_pass.txt 中的 vault 文件加密我的 env/hosts_details 文件然后执行 playbook 时,我收到以下错误
我想知道我是否遗漏了任何东西,或者是否可以加密库存文件。
有没有其他替代方案?
pycharm - Pycharm 在使用 ansible-vault 打开的选项卡中编辑文件
我有使用ansible-vault加密的 ansible 文件。我想从 IDEA IDE(在本例中为 pycharm)中解密、编辑和保存加密的这些文件。
我在 pycharm 中创建了一个外部工具,它将解密文件并在 IDE 的运行窗口中打开它们,看起来像是一个 tmp 文件。我需要将工具的输出放置在编辑选项卡中并将其保存到同一文件中。
以下是我创建外部工具的方式:
首选项 -> 外部工具 -> 新建
Vault_edit.sh
该run
窗口显示解密的输出,但它当然不允许我编辑文件,更不用说保存它了。我找不到任何关于如何将 ansible-vault 的输出推送到 pycharm 中的选项卡式编辑窗口的文档。
它显示的输出如下:
如果我能做到这一点,我计划做类似的事情来允许对文件进行加密。
encryption - ansible 是否安全地传输文件?
我正在使用 Ansible 2.2 从我的笔记本电脑管理一些云服务器。我想将 OpenSSL 私钥传输到其中一台服务器上的特定位置,以供 nginx 用于 TLS 终止。当然,这是一个应该保密的文件,所以我使用Ansible Vault对其进行了加密。但是 Vault 只保护控制机上的磁盘文件。将数据从控制机传输到受管节点时,它不会发挥作用。
我想确保私钥在传输过程中不会被监控网络流量的人泄露。没有具体提及我在模块文档中copy
可以看到的我正在寻找的内容。据我所知,我与托管节点的所有通信都是通过 SSH 完成的。这是一个安全的假设吗?它包括文件传输吗?
variables - Ansible 变量优先级和保险库
我正在修改我的 ansible 库存以使用 ansible-vault。一切正常,但是我有一个问题,我认为变量的优先级。当我尝试与 ansiblemaster ( localhost 127.0.0.1 )建立本地连接时,它似乎使用的是全局配置的 sudo 密码,而不是 host_vars 中的密码
这是我的设置:
- 主机.ini
- group_vars/all/config.yml
- group_vars/all/secrets.yml
- host_vars/ansiblemaster
所以我在 group_vars/all/config.yml 中定义了这个:
我在 host_vars/ansiblemaster 中定义了这个:
我不断得到:
密码:\nsudo:1 次错误密码尝试\n" 当我运行一个建立本地连接并执行 sudo 的剧本时。
我在 host_vars/ansiblemaster 中的定义不会覆盖 group_vars/all/config 吗?
ansible - Vagrant 调用的 Ansible 不提示输入保险库密码
概括
我有一个使用 Ansible 配置 Virtualbox VM 的 Vagrantfile。Ansible playbook 包含一个 Ansible Vault 加密变量。我的问题是 Vagrant 配置不会提示输入密码,尽管我通过了这样做的选项。
最小的,完整的例子
流浪文件:
剧本.yml:
Ansible Vault 密码是abc
.
当我调用vagrant up
Vagrantfile 的第一次执行或稍后执行时,vagrant provision
我没有得到预期的输入密码的提示。相反,该任务会print foo's value
打印(红色)消息:
我还尝试了 Vagrantfile 中被淘汰的替代方案,以使 Ansible 提示输入密码。ansible-playbook
我可以在Vagrant 打印的电话中看到所有这些。
foo
此外,我在使用 加密时尝试了几个选项ansible-vault encrypt_string
,但这也没有帮助。
当使用 Vagrant 调用时,我该怎么做才能让 Ansible 提示输入密码?
版本
- 库本图 16.04
- 流浪者 1.8.1 和流浪者 2.0.0
- Ansible 2.4.0.0
更新
这是 Vagrant 打印的 Ansible 调用:
如果我在没有 Vagrant 的情况下直接执行此操作,密码提示将按预期工作!所以它一定是 Vagrant,它以某种方式抑制了提示。
ansible - ansible-vault:可能*不*解密文件
我想使用 ansible 部署加密(通过 ansible-vault)文件而不提供保管库密码。文件应保持加密状态,仅在需要时在服务器上解密(使用单独的脚本)。
这有可能吗?
更多解释:我正在使用 Ansible 脚本来设置 CI 服务器(bamboo、jenkins)。密码不应该以纯文本形式存在于该服务器上,当用于增加另一层安全性时,它们应该被即时解密。
jenkins - 启动包含来自 jenkinsfile 的 Vault 文件引用的 Ansible playbook
我有一个 Jenkinsfile 试图启动一个 Ansible 剧本,它引用了一些存储在 Ansible 保险库加密文件中的参数。
Ansible 安装在 2.4.0.0 版本中
这是我的詹金斯文件的片段:
还有剧本:
该剧本包括包含加密值的保管库文件。当 Jenkins 执行 Jenkinsfile 时,我收到以下错误: Attempting to decrypt but no vault secrets found
为什么 ansible 不使用我在 Jenkinsfile 中传递给他的 credentialId 以及传递此凭据的好方法是什么?
ansible - Ansible 使用“替代目录布局”并使用保管库
我正在尝试在其中使用替代目录布局和 ansible-vaults。但是当我运行我的剧本时,经过保险库加密的变量无法使用该目录结构解析。那么我做错了什么?
我通过以下方式执行:
这是我的结构:
这是我的主机文件(inventories/inv/hosts
):
剧本(playbooks/inv/invTest.yml
):
使用 Vault 加密的 var ( roles/test/tasks/main.yml
) 的角色:
指向保险库的 var (inventories/inv/group_vars/var.yml):
保险库文件 ( ansible-vault edit inventories/inv/group_vars/vault.yml
):
我得到的错误消息是这样的:
失败的!=> {"failed": true, "msg": "'args' 字段的值无效,似乎包含未定义的变量。错误为:{{ app_user }}: 'app_user' 未定义\ n\n错误似乎出现在“roles/test/tasks/main.yml”中:但可能\n在文件中的其他位置,具体取决于确切的语法问题。\n\n有问题的行似乎是:\n\n \n - 名称:创建测试文件夹\n ^ here\n"}
hash - 未检测到 group_vars 中的 Ansible 保险库密码
我正在尝试使用 ansible-vault 来保护单个 Windows 登录密码。我不想将 hte 密码作为纯文本放在我的 windows.yml 文件中(见下文),所以我试图用它ansible-vault
来保护/加密这个密码。
我有这个目录结构:
我的问题是关于文件vault
。根据本教程,我正在尝试将 Windows 登录密码作为加密变量放置在这里。变量名是ansible_password
,我的想法是我应该在vault
文件中有一个哈希,而不是文本中的实际密码。
我的windows.yml
文件如下所示(按照此处的指南):
现在,要创建vault
文件,这是我的步骤:
然后这是我放入vault
文件的所有内容:
当我使用 运行此文件时ansible-playbook -i ./hosts win_playbook.yml --ask-vault-pass
,出现此错误(问题 A):
因此,我尝试生成哈希而不是使用文本。我这样做了:
我用这个哈希替换了文本 mypassword 。我在编辑器中粘贴了哈希vi
并保存了vault
文件。同样,我使用ansible-playbook -i ./hosts win_playbook.yml --ask-vault-pass
. 这次我得到了一个不同的错误(问题 B):
为了克服这个问题,我必须做两件事:
- 要解决问题 A.:在 中
win_playbook.yml
,我需要添加vars_files: group_vars\vault
,有点类似于这个StackOverflow 帖子。 - 要解决问题 B.:我必须用
vault
文本中的实际密码 (mypassword) 替换散列。
问题:
关于 A:在我遇到的 ansible vault 教程中,我没有看到为什么
vars_file: group_vars\vars
应该出现在主剧本文件中的特定原因(请参见下面的链接 1-4)。即任何地方都没有提到这一点。我以为 Ansible 会自动检测group_vars
目录中的变量???为什么需要这条线?- https://serversforhackers.com/c/ansible-using-vault
- https://www.digitalocean.com/community/tutorials/how-to-use-vault-to-protect-sensitive-ansible-data-on-ubuntu-16-04
- 这些人使用
group_vars/vars
(类似于我的未加密变量文件group_vars/vars
)和group_vars/vault
(类似于我的加密变量文件group_vars/vault
),但他们使用的是角色,而我没有使用 Ansible 角色
- 这些人使用
- https://knpuniversity.com/screencast/ansible/variable-vault
- https://opensource.com/article/16/12/devops-security-ansible-vault
关于 B:它看起来像其他用户(见这里使用哈希作为他们的变量)。实际上,即使是 Ansible 文档也建议使用它
mkpasswd
来生成密码。也许我误解了什么。我们不应该使用mkpasswd --method=SHA-512
散列密码然后将散列作为变量值吗?不能使用哈希作为文件中 key:value 中的值vault
吗?