Skip to main content

An ansible dynamic inventory for DigitalOcean

Project description

DigitalOcean inventory

An ansible dynamic inventory for DigitalOcean

Status

Source Shields
Project license release
Raised issues pulls

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

digitalocean_inventory-1.1.0.tar.gz (6.8 kB view hashes)

Uploaded Source

Built Distribution

digitalocean_inventory-1.1.0-py3-none-any.whl (7.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page