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

在提示时将密码传递给Python脚本,python,ansible,ansible-vault,Python,Ansible,Ansible Vault,当python脚本提示输入密码时,如何将密码传递给它。我不希望用户在提示时输入密码。它应该直接从脚本传递 subprocess.run(['ansible-vault','decrypt','main.yml','linux.yml','--ask-vault pass'])) 运行脚本时,它会提示输入密码。我希望密码只从脚本传递,而不是由用户传递或传递密码文件 有办法在这里传递密码吗?我有其他ansible vault选项,如vault password等,但这不符合我的目的。您可以使用Py

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

subprocess.run(['ansible-vault','decrypt','main.yml','linux.yml','--ask-vault pass']))
运行脚本时,它会提示输入密码。我希望密码只从脚本传递,而不是由用户传递或传递密码文件


有办法在这里传递密码吗?我有其他ansible vault选项,如vault password等,但这不符合我的目的。

您可以使用Python包,而不是使用cmdline
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())

当您在代码中硬编码密码时,请确保不要将此代码提交到任何地方或发送给任何人,这会带来严重的安全风险。

这是否回答了您的问题?这在传递参数时有效。此处提示pasword,我想将其传递给已尝试但无效的用户,而不是
--询问valut pass
您可以尝试此选项吗?这样,您只需将文件路径作为subprocess.run参数之一进行传递。@shiva不符合我的要求。我不能将密码文件放在python脚本之外。很抱歉,我没有正确地阅读这个问题。更好的是,不要硬编码到代码中。使用.env文件确保其安全,并使用该文件的安全标准(不要将其提交到任何地方,等等)。