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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file digitalocean_inventory-1.1.0.tar.gz.

File metadata

  • Download URL: digitalocean_inventory-1.1.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.6

File hashes

Hashes for digitalocean_inventory-1.1.0.tar.gz
Algorithm Hash digest
SHA256 df759e99b42db01411fc07188de992973eee21b48c51d1cf04f469c2e69cbbdf
MD5 ce68427eaf290b32b83cfabf5ddfe071
BLAKE2b-256 65f158f6385211e879382b671a37d9a620ea6735a5a2e2e1de1167e29aa1b002

See more details on using hashes here.

File details

Details for the file digitalocean_inventory-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: digitalocean_inventory-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.6

File hashes

Hashes for digitalocean_inventory-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76933c5f47bbd2a0e3b7bdd0d93e79a059ff2102f59103735b3be432f3a445be
MD5 96ee18a048a577f9ef48ba3686389747
BLAKE2b-256 77ba72b34aeb04b5aa30d3da707c94dc4888a39f4f177e1d01ec3a166041313a

See more details on using hashes here.

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