87616af387
This makes it easier to look up the values of custom fields in a Bitwarden entry. If the `custom_field` named parameter is true, search for the named `field` in the list of custom fields rather than the top-level dictionary.
123 lines
2.8 KiB
Markdown
123 lines
2.8 KiB
Markdown
# ansible-modules-bitwarden
|
|
|
|
Bitwarden integration for Ansible.
|
|
|
|
## Installation
|
|
|
|
The easiest way to install this lookup plugin is to use the
|
|
`ansible-galaxy` command:
|
|
|
|
ansible-galaxy install git+https://github.com/c0sco/ansible-modules-bitwarden
|
|
|
|
This will place the `ansible-modules-bitwarden` role into
|
|
`$HOME/.ansible/roles`, where it will be available to all playbooks
|
|
you run on your system.
|
|
|
|
## Lookup plugin
|
|
|
|
To use this plugin, you will need to activate it by including the role
|
|
in your play. For example:
|
|
|
|
- hosts: localhost
|
|
roles:
|
|
- ansible-modules-bitwarden
|
|
|
|
Use Ansible's `lookup()` function with the `bitwarden` argument,
|
|
followed by the items you want to retrieve. The default field is
|
|
`password`, but any other field can be specified using the `field`
|
|
named argument. If you need to specify the path to the Bitwarden CLI
|
|
binary, use the `path` named argument.
|
|
|
|
## Examples
|
|
|
|
### Get a single password
|
|
|
|
```yaml
|
|
# Get password for Google
|
|
- debug:
|
|
msg: {{ lookup('bitwarden', 'Google') }}
|
|
```
|
|
|
|
The above might result in:
|
|
|
|
```
|
|
TASK [debug] *********************************************************
|
|
ok: [localhost] => {
|
|
"msg": "mysecret"
|
|
}
|
|
```
|
|
|
|
### Get a single username
|
|
|
|
```yaml
|
|
# Get username for Google
|
|
- debug:
|
|
msg: {{ lookup('bitwarden', 'Google', field='username' }}
|
|
```
|
|
|
|
The above might result in:
|
|
|
|
```
|
|
TASK [debug] *********************************************************
|
|
ok: [localhost] => {
|
|
"msg": "alice"
|
|
}
|
|
```
|
|
|
|
### See all available fields
|
|
|
|
```yaml
|
|
# Get all available fields for an entry
|
|
- debug:
|
|
msg: {{ lookup('bitwarden', 'Google', field='item' }}
|
|
```
|
|
|
|
The above might result in:
|
|
|
|
```
|
|
TASK [debug] *********************************************************
|
|
ok: [localhost] => {
|
|
"msg": {
|
|
"favorite": false,
|
|
"fields": [
|
|
{
|
|
"name": "mycustomfield",
|
|
"type": 0,
|
|
"value": "the value of my custom field"
|
|
}
|
|
],
|
|
"folderId": null,
|
|
"id": "12345678-0123-4321-0000-a97001342c31",
|
|
"login": {
|
|
"password": "mysecret",
|
|
"passwordRevisionDate": null,
|
|
"totp": null,
|
|
"username": "alice"
|
|
},
|
|
"name": "Google",
|
|
"notes": null,
|
|
"object": "item",
|
|
"organizationId": "87654321-1234-9876-0000-a96800ed2b47",
|
|
"revisionDate": "2018-10-19T19:20:17.923Z",
|
|
"type": 1
|
|
}
|
|
}
|
|
```
|
|
|
|
### Get the value of a custom field
|
|
|
|
```yaml
|
|
# Get the value of a custom field
|
|
- debug:
|
|
msg: {{ lookup('bitwarden', 'Google', field='mycustomfield', custom_field=true }}
|
|
```
|
|
|
|
The above might result in:
|
|
|
|
```
|
|
TASK [debug] *********************************************************
|
|
ok: [localhost] => {
|
|
"msg": "the value of my custom field"
|
|
}
|
|
```
|