【问题标题】:ansible - encrypt ansible_become_passansible - 加密 ansible_become_pass
【发布时间】:2018-05-20 03:20:00
【问题描述】:

我有一本通过 crontab 中的条目每天运行一次的剧本。对于剧本中定义的一些任务,我需要成为目标机器上的 root。因此我使用becomeansible_become_pass 来获得sudo 权限。当我将它作为 cronjob 运行时,我无法使用 --ask-become-pass。另一方面,我不想将 sudo 密码以纯文本形式存储在我的 ansible hosts 文件中。我可以以某种方式将加密密码传递给 ansible 吗?

【问题讨论】:

  • 但这不只是转移问题吗?最后我需要打电话给--ask-vault-pass,这是我不能用cron做的
  • 如果您按照 fernandezcuesta 的建议使用 ansible-vault,您可以生成一个变量并将其设置在您的 playbook 或加密的 vars 文件中。然后当你运行你的剧本时,你会发送一个额外的参数,其中包含同样加密的保险库密码文件路径,然后保险库将管理哈希......
  • ansible-vault 将适合您的要求。请查看链接**docs.ansible.com/ansible/2.4/vault.html

标签: cron ansible


【解决方案1】:

我遇到了类似的问题,我最好的解决方案是创建一个脚本(在 Python 中),每次启动时都会询问 ansible-value 密码(我会将脚本放在 crontab @reboot 中)。当我输入密码时,它将被保存在一个变量中,因此在程序在后台运行时存在于内存中(要在后台运行,它会分叉并重定向 stdoutstderr)。然后,该脚本将使用 Python“子”模块来执行 ansible playbook(或命令)并自动发送保管库密码。每次 ansible 执行后,程序会休眠 24 小时。

我只是想告诉你一个可能的解决方法。从技术上讲,这不是服务/守护进程,但差别不大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多