# How to load password in python api for ansible playbook

**URL:** <https://forum.ansible.com/t/how-to-load-password-in-python-api-for-ansible-playbook/37536>\
**Category:** AWX Project\
**Created:** [January 9, 2023, 4:24pm UTC](https://forum.ansible.com/t/how-to-load-password-in-python-api-for-ansible-playbook/37536 "2023-01-09T16:24:43Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nitesh\_rijal](https://avatars.discourse-cdn.com/v4/letter/n/e19adc/32.png) [@nitesh\_rijal](https://forum.ansible.com/u/nitesh_rijal)\
**Post date:** [January 9, 2023, 4:24pm UTC](https://forum.ansible.com/t/how-to-load-password-in-python-api-for-ansible-playbook/37536/1 "2023-01-09T16:24:43Z")

</div>

Here’s my python script for the playbook but the error says you must supply a password  
from ansible import context  
from ansible.cli import CLI  
from ansible.module\_utils.common.collections import ImmutableDict  
from ansible.executor.playbook\_executor import PlaybookExecutor  
from ansible.parsing.dataloader import DataLoader  
from ansible.inventory.manager import InventoryManager  
from ansible.vars.manager import VariableManager

loader = DataLoader()

context.CLIARGS = ImmutableDict(

connection=‘network\_cli’,  
forks=10,  
become=None,  
become\_method=None,  
become\_user=None,  
check=False,  
diff=False,  
verbosity=2,  
syntax=False,  
)  
passwords={}  
passwords[‘vault\_password’] = ‘root’

inventory = InventoryManager(loader=loader, sources=(‘inventory.txt’))  
variable\_manager = VariableManager(loader=loader, inventory=inventory, version\_info=CLI.version\_info(gitinfo=False))  
pbex = PlaybookExecutor(playbooks=[‘main.yml’], inventory=inventory, variable\_manager=variable\_manager, loader=loader, passwords=passwords)  
results = pbex.run()  
print(results)

the error is like this

Traceback (most recent call last):  
File “/home/root1/Documents/python\_ansible/index.py”, line 29, in   
results = pbex.run()  
File “/usr/lib/python3/dist-packages/ansible/executor/playbook\_executor.py”, line 136, in run  
all\_vars = self.\_variable\_manager.get\_vars(play=play)  
File “/usr/lib/python3/dist-packages/ansible/vars/manager.py”, line 356, in get\_vars  
data = preprocess\_vars(self.\_loader.load\_from\_file(found\_file, unsafe=True, cache=False))  
File “/usr/lib/python3/dist-packages/ansible/parsing/dataloader.py”, line 94, in load\_from\_file  
(b\_file\_data, show\_content) = self.\_get\_file\_contents(file\_name)  
File “/usr/lib/python3/dist-packages/ansible/parsing/dataloader.py”, line 167, in \_get\_file\_contents  
return self.\_decrypt\_if\_vault\_data(data, b\_file\_name)  
File “/usr/lib/python3/dist-packages/ansible/parsing/dataloader.py”, line 137, in \_decrypt\_if\_vault\_data  
b\_data = self.\_vault.decrypt(b\_vault\_data, filename=b\_file\_name)  
File “/usr/lib/python3/dist-packages/ansible/parsing/vault/ **init**.py”, line 637, in decrypt  
plaintext, vault\_id, vault\_secret = self.decrypt\_and\_get\_vault\_id(vaulttext, filename=filename, obj=obj)  
File “/usr/lib/python3/dist-packages/ansible/parsing/vault/ **init**.py”, line 654, in decrypt\_and\_get\_vault\_id  
raise AnsibleVaultError(“A vault password must be specified to decrypt data”)  
ansible.parsing.vault.AnsibleVaultError: A vault password must be specified to decrypt data

---

<div class="post-metadata">

**Author:** ![AWX\_Project](https://avatars.discourse-cdn.com/v4/letter/a/eada6e/32.png) [@AWX\_Project](https://forum.ansible.com/u/AWX_Project)\
**Post date:** [January 11, 2023, 7:58pm UTC](https://forum.ansible.com/t/how-to-load-password-in-python-api-for-ansible-playbook/37536/2 "2023-01-11T19:58:36Z")

</div>

Hello,  
Your question seems to be about using Ansible, not about AWX specifically.  
[https://groups.google.com/g/ansible-project](https://groups.google.com/g/ansible-project) is the best place to visit for user questions about Ansible.  
Thanks!
