An ansible dynamic inventory for DigitalOcean
Project description
DigitalOcean inventory
An ansible dynamic inventory for DigitalOcean
Status
Source | Shields |
---|---|
Project | |
Raised |
Installation
pip install digitalocean_inventory
Usage
Export the project environment variables:
export DO_PROJECT=example
export DO_ENV=production
export DO_SSH_DIR=/Users/joel/.ssh/example
Export an access token:
export DO_ACCESS_TOKEN=<token>
The pacakges exposes the executable:
digitalocean-inventory --list
Tags and inventory metadata are compiled into the output:
{
"meta": {
"hostvars": {
"123.123.123.123": {
"ansible_python_interpreter": "/usr/bin/python3",
"ansible_ssh_extra_args": "-o StrictHostKeyChecking=no",
"ansible_ssh_private_key_file": "/Users/joel/.ssh/example/example-production-0"
}
}
},
"all": {
"hosts": [
"123.123.123.123"
],
"vars": {},
"children": {}
},
"production": {
"hosts": [
"123.123.123.123"
]
},
"manager": {
"hosts": [
"123.123.123.123"
]
}
}
The executable has support for host, list and debug flags:
usage: Digital ocean inventory [-h] [--host [HOST]] [--list [LIST]] [--debug [DEBUG]]
[--private-ips [PRIVATE_IPS]]
optional arguments:
--host [HOST]
--list [LIST]
--debug [DEBUG]
--private-ips [PRIVATE_IPS]
To use with the ansible-playbook cli:
inventory.py
:
#!/usr/bin/env python
from digitalocean_inventory import fetch
if __name__ == '__main__':
fetch()
ansible-playbook -i inventory.py <playbook>
You can consume the inventory in order to mutate it before outputting:
#!/usr/bin/env python
from digitalocean_inventory import fetch
if __name__ == '__main__':
inventory = fetch(stdout=False)
print(inventory)
Docs
Additional details are available in the Documentation.
Tests
Install dependencies:
pip install .[tests]
Run with pytest
pytest
Versioning
SemVer is used for versioning. For a list of versions available, see the tags on this repository.
Bump2version is used to version and tag changes. For example:
bump2version patch
Releases are made on every major change.
Author
- Joel Lefkowitz - Initial work - Joel Lefkowitz
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
None yet!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for digitalocean_inventory-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | df759e99b42db01411fc07188de992973eee21b48c51d1cf04f469c2e69cbbdf |
|
MD5 | ce68427eaf290b32b83cfabf5ddfe071 |
|
BLAKE2b-256 | 65f158f6385211e879382b671a37d9a620ea6735a5a2e2e1de1167e29aa1b002 |
Hashes for digitalocean_inventory-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76933c5f47bbd2a0e3b7bdd0d93e79a059ff2102f59103735b3be432f3a445be |
|
MD5 | 96ee18a048a577f9ef48ba3686389747 |
|
BLAKE2b-256 | 77ba72b34aeb04b5aa30d3da707c94dc4888a39f4f177e1d01ec3a166041313a |