Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何自动化ansible vault解密?_Ansible_Ansible Playbook_Ansible Vault - Fatal编程技术网

如何自动化ansible vault解密?

如何自动化ansible vault解密?,ansible,ansible-playbook,ansible-vault,Ansible,Ansible Playbook,Ansible Vault,我希望自动解密ansible vault,而不必从命令行指定vault位置或密码 主要是,我正在寻找一种类似于~/.netrc工作方式的解决方案。当您将凭证放在那里时,工具(如curl、wget等)将知道如何加载凭证 如果你不这么做的话,死刑就会被执行 这非常重要,因为我需要能够自动执行这些ansible剧本,所以提示输入密码显然不是一个选项 另外,我不想在每个剧本中添加--vault密码文件参数。有什么想法吗?您可以在数据库中定义vault\u密码\u文件 但我看不出这有多大价值。查看.net

我希望自动解密ansible vault,而不必从命令行指定vault位置或密码

主要是,我正在寻找一种类似于
~/.netrc
工作方式的解决方案。当您将凭证放在那里时,工具(如curl、wget等)将知道如何加载凭证

如果你不这么做的话,死刑就会被执行

这非常重要,因为我需要能够自动执行这些ansible剧本,所以提示输入密码显然不是一个选项


另外,我不想在每个剧本中添加
--vault密码文件
参数。有什么想法吗?

您可以在数据库中定义
vault\u密码\u文件

但我看不出这有多大价值。查看.netrc手册页,我看到凭据位于.netrc文件中,并且也是以明文形式编写的。此外,它还建议:

此文件位于启动文件传输的计算机上的用户主目录中。其权限应设置为不允许组和其他人进行读取访问

对于.netrc来说,这是有意义的,因为目标是提供对其他系统的访问。但您的目标是提供对文件的访问


尽管加密一个文件,然后简单地将解密密钥放在同一主机上的另一个文件中没有太大意义,而该主机只受
chmod
保护。首先,您可以使用
chmod
保护您的机密。这具有相同的安全级别,并避免了一些开销。

与库存非常相似,如果
vault密码文件设置了可执行位


这允许您编写一个脚本,将密码封装在PGP加密中,放在限制访问的S3存储桶中,使用AWS KMS,或任何您喜欢的方式。

有几种方法:

  • 按照建议,将密码文件存储在锁中(例如Azure容器或使用ssh密钥可访问的任何其他位置)。在运行时获取它并使用--vault密码文件参数。您可以在这之后立即删除该文件

  • 如果您使用的是像Jenkins这样的自动化服务器,您可以将密码存储为Jenkins凭据。快速检索密码并将其放入文本文件中。再次使用--vault密码文件参数。我在这里写了一篇关于它的小帖子


  • 如果你只是在stackoverflow上分享答案而不是提供链接,那会更好。