community.general.passwordstore – manage passwords with passwordstore.org’s pass utility
Note
This plugin is part of the community.general collection (version 3.8.1).
You might already have this collection installed if you are using the ansible
package. It is not included in ansible-core
. To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.passwordstore
.
Synopsis
- Enables Ansible to retrieve, create or update passwords from the passwordstore.org pass utility. It also retrieves YAML style keys stored as multilines in the passwordfile.
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
_terms string / required | query key. | ||
backup boolean |
| Used with overwrite=yes . Backup the previous password in a subkey. | |
create boolean |
| Create the password if it does not already exist. Takes precedence over missing . | |
directory string | env:PASSWORD_STORE_DIR | The directory of the password store. | |
length integer | Default: 16 | The length of the generated password. | |
missing string added in 3.1.0 of community.general |
| List of preference about what to do if the password file is missing. If create=true, the value for this option is ignored and assumed to be create .If set to error , the lookup will error out if the passname does not exist.If set to create , the passname will be created with the provided length length if it does not exist.If set to empty or warn , will return a none in case the passname does not exist. When using lookup and not query , this will be translated to an empty string. | |
nosymbols boolean |
| use alphanumeric characters. | |
overwrite boolean |
| Overwrite the password if it does already exist. | |
passwordstore string | Default: "~/.password-store" | location of the password store. | |
returnall boolean |
| Return all the content of the password, not only the first line. | |
subkey string | Default: "password" | Return a specific subkey of the password. When set to password , always returns the first line. | |
umask string added in 1.3.0 of community.general | env:PASSWORD_STORE_UMASK | Sets the umask for the created .gpg files. The first octed must be greater than 3 (user readable). Note pass' default value is '077' . | |
userpass string | Specify a password to save, instead of a generated one. |
Examples
# Debug is used for examples, BAD IDEA to show passwords on screen - name: Basic lookup. Fails if example/test doesn't exist ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test')}}" - name: Basic lookup. Warns if example/test does not exist and returns empty string ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test missing=warn')}}" - name: Create pass with random 16 character password. If password exists just give the password ansible.builtin.debug: var: mypassword vars: mypassword: "{{ lookup('community.general.passwordstore', 'example/test create=true')}}" - name: Create pass with random 16 character password. If password exists just give the password ansible.builtin.debug: var: mypassword vars: mypassword: "{{ lookup('community.general.passwordstore', 'example/test missing=create')}}" - name: Prints 'abc' if example/test does not exist, just give the password otherwise ansible.builtin.debug: var: mypassword vars: mypassword: "{{ lookup('community.general.passwordstore', 'example/test missing=empty') | default('abc', true) }}" - name: Different size password ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test create=true length=42')}}" - name: Create password and overwrite the password if it exists. As a bonus, this module includes the old password inside the pass file ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test create=true overwrite=true')}}" - name: Create an alphanumeric password ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test create=true nosymbols=true') }}" - name: Return the value for user in the KV pair user, username ansible.builtin.debug: msg: "{{ lookup('community.general.passwordstore', 'example/test subkey=user')}}" - name: Return the entire password file content ansible.builtin.set_fact: passfilecontent: "{{ lookup('community.general.passwordstore', 'example/test returnall=true')}}"
Return Values
Common return values are documented here, the following are the fields unique to this lookup:
Key | Returned | Description |
---|---|---|
_raw list / elements=string | success | a password |
Authors
- Patrick Deelman (!UNKNOWN) <patrick@patrickdeelman.nl>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/passwordstore_lookup.html