python - 在提示时将密码传递给 Python 脚本

标签 python ansible ansible-vault

当提示输入密码时,如何将密码传递给我的 python 脚本。我不希望用户在提示时输入密码。它应该直接从脚本传递。

subprocess.run(['ansible-vault', 'decrypt', 'main.yml', 'linux.yml','--ask-vault-pass'])
在运行脚本时,它会提示输入密码。我希望密码仅从脚本传递,而不是由用户传递或传递密码文件。
有没有办法在这里传递密码?我有其他 ansible 保险库选项,如保险库密码等,但这不符合我的目的。

最佳答案

而不是使用 cmdline ansible-vault ,您可以使用 Python 包 - ansible-vault这将允许您在脚本本身内硬编码密码:

from ansible_vault import Vault

vault = Vault('password')
main_data = vault.load(open('main.yml').read())
linux_data = vault.load(open('linux.yaml').read())
当您在代码中硬编码密码时,请确保不要将此代码提交到任何地方或将其发送给任何人,这是一个严重的安全风险。

关于python - 在提示时将密码传递给 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67264410/

相关文章:

Ansible:冒号后有空格时 lineinfile 语法错误(:)

ansible - 如何在 list 文件中使用 ansible-vault 加密密码?

python - 重新加密单独加密的 ansible 保险库变量?

python - 在 python 请求中发送原始数据

python - 使用 urllib urllib2 python 向 SciHub 发送表单请求不再有效

mysql - 使用 Ansible 任务运行 SELECT 查询

ssh - 我怎样才能使 ansible 重用 SSH session 而不是为每个任务创建一个新 session ?

ansible - 在 ansible 角色中使用多个 var 文件

python - 字符串的多余尾部连接

python - 如何使用 pyarrow 从 S3 读取 Parquet 文件列表作为 Pandas 数据框?