{"id":28578206,"url":"https://github.com/digitalocean/ansible-collection","last_synced_at":"2026-01-20T18:49:29.599Z","repository":{"id":128128687,"uuid":"593185734","full_name":"digitalocean/ansible-collection","owner":"digitalocean","description":"DigitalOcean Ansible Collection","archived":false,"fork":false,"pushed_at":"2025-12-18T19:14:19.000Z","size":937,"stargazers_count":50,"open_issues_count":8,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-21T21:37:10.037Z","etag":null,"topics":["ansible","ansible-collection","digitalocean","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://galaxy.ansible.com/ui/repo/published/digitalocean/cloud/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digitalocean.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-25T12:47:07.000Z","updated_at":"2025-12-18T19:07:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"46a34573-489a-4ea4-903f-78b39ccaf19d","html_url":"https://github.com/digitalocean/ansible-collection","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":"ansible-collections/collection_template","purl":"pkg:github/digitalocean/ansible-collection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fansible-collection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fansible-collection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fansible-collection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fansible-collection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digitalocean","download_url":"https://codeload.github.com/digitalocean/ansible-collection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digitalocean%2Fansible-collection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28609208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-collection","digitalocean","hacktoberfest"],"created_at":"2025-06-11T01:09:11.785Z","updated_at":"2026-01-20T18:49:29.585Z","avatar_url":"https://github.com/digitalocean.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DigitalOcean Collection\n\n\u003cp align=\"left\" width=\"100%\"\u003e\n\u003cimg src=\"do+a.png\"\n     alt=\"DigitalOcean + Ansible\"\n     title=\"DigitalOcean + Ansible\"\n     height=300\u003e\n\u003c/p\u003e\n\nThis repository contains the [`digitalocean.cloud`](https://galaxy.ansible.com/ui/repo/published/digitalocean/cloud/) Ansible Collection.\nThis is a grounds-up rewrite of the [`community.digitalocean`](https://galaxy.ansible.com/ui/repo/published/community/digitalocean/) Ansible collection, leveraging [PyDO](https://github.com/digitalocean/pydo).\n\n## DigitalOcean Collection for Ansible\n\n[![Ansible Collection](https://img.shields.io/badge/digitalocean.cloud-badge?logo=digitalocean\u0026label=Ansible%20Collection\u0026color=%230080FF)]([https://galaxy.ansible.com/digitalocean/cloud](https://galaxy.ansible.com/ui/repo/published/digitalocean/cloud/))\n[![Latest Release](https://img.shields.io/github/v/release/digitalocean/ansible-collection?include_prereleases\u0026label=Latest%20release\u0026color=%230080FF)](https://github.com/digitalocean/ansible-collection/releases)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7862/badge)](https://www.bestpractices.dev/projects/7862)\n\n[![Integration tests](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-integration.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-integration.yml)\n[![Sanity tests](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-sanity.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-sanity.yml)\n[![Unit tests](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-unit.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/ansible-test-unit.yml)\n[![codecov](https://codecov.io/gh/digitalocean/ansible-collection/branch/main/graph/badge.svg)](https://codecov.io/gh/digitalocean/ansible-collection)\n[![Publish Collection on Galaxy](https://github.com/digitalocean/ansible-collection/actions/workflows/publish-galaxy.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/publish-galaxy.yml)\n[![Lint extra docsite docs and links](https://github.com/digitalocean/ansible-collection/actions/workflows/extra-docs-linting.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/extra-docs-linting.yml)\n[![Python psf/black](https://github.com/digitalocean/ansible-collection/actions/workflows/psf-black.yml/badge.svg)](https://github.com/digitalocean/ansible-collection/actions/workflows/psf-black.yml)\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/digitalocean/ansible-collection?quickstart=1)\n\nThis collection can be used to manage infrastructure in the [DigitalOcean](https://www.digitalocean.com/) cloud.\nThe DigitalOcean API documentation is located [here](https://docs.digitalocean.com/reference/api/api-reference/).\nThe pydo library which this collection is based on is hosted on [GitHub](https://github.com/digitalocean/pydo) and [PyPI](https://pypi.org/project/pydo/).\n\n## Code of Conduct\n\nWe follow the [Ansible Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html) in all our interactions within this project.\n\nIf you encounter abusive behavior, please refer to the [policy violations](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html#policy-violations) section of the Code for information on how to raise a complaint.\n\n## Communication\n\nJoin us in [Libera.chat](https://libera.chat/) in the `#ansible-digitalocean` for collection development questions or DigitalOcean Community Discord in the [`#ansible`](https://discord.com/channels/707751027973161132/1069237079642476604) channel.\n\n## Contributing to this collection\n\n\u003c!--Describe how the community can contribute to your collection. At a minimum, fill up and include the CONTRIBUTING.md file containing how and where users can create issues to report problems or request features for this collection. List contribution requirements, including preferred workflows and necessary testing, so you can benefit from community PRs. If you are following general Ansible contributor guidelines, you can link to - [Ansible Community Guide](https://docs.ansible.com/ansible/devel/community/index.html). List the current maintainers (contributors with write or higher access to the repository). The following can be included:--\u003e\n\nThe content of this collection is made by people like you, a community of individuals collaborating on making the world better through developing automation software.\n\nWe are actively accepting new contributors.\n\nAny kind of contribution is very welcome.\n\nYou don't know how to start? Refer to our [contribution guide](CONTRIBUTING.md)!\n\nWe use the following guidelines:\n\n- [CONTRIBUTING.md](CONTRIBUTING.md)\n- [REVIEW_CHECKLIST.md](REVIEW_CHECKLIST.md)\n- [Ansible Community Guide](https://docs.ansible.com/ansible/latest/community/index.html)\n- [Ansible Development Guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)\n- [Ansible Collection Development Guide](https://docs.ansible.com/ansible/devel/dev_guide/developing_collections.html#contributing-to-collections)\n\n## Collection maintenance\n\nThe current maintainers are listed in the [MAINTAINERS](MAINTAINERS) file.\nIf you have questions or need help, feel free to mention them in the proposals.\n\nTo learn how to maintain / become a maintainer of this collection, refer to the [Maintainer guidelines](MAINTAINING.md).\n\n## Governance\n\nThe process of decision making in this collection is based on discussing and finding consensus among participants.\n\nEvery voice is important. If you have something on your mind, create an issue or dedicated discussion and let's discuss it!\n\n## Tested with versions\n\n| Ansible       | Python |\n| ------------- | ------ |\n| `stable-2.14` | `3.9`  |\n| `stable-2.15` | `3.10` |\n| `stable-2.16` | `3.11` |\n| `devel`       | `3.11` |\n\n## External requirements\n\n```text\nazure-core==1.26.1\nboto3==1.28.53 # For the Spaces modules\npydo==0.1.7\n```\n\nThe following should install the requirements for your account:\n\n```shell\npip3 install --user azure-core==1.26.1 boto3==1.28.53 pydo==0.1.7\n```\n\nThere is a [pyproject.toml](./pyproject.toml) is the root of this repository as well if you use [Poetry](https://python-poetry.org/) or similar.\n\n## Included content\n\n| Module                                              | Description                                  |\n| --------------------------------------------------- | -------------------------------------------- |\n| `digitalocean.cloud.account_info`                   | Get account information                      |\n| `digitalocean.cloud.balance_info`                   | Get balance information                      |\n| `digitalocean.cloud.billing_history_info`           | Get billing history                          |\n| `digitalocean.cloud.cdn_endpoints_info`             | Get CDN endpoints                            |\n| `digitalocean.cloud.certificate`                    | Create and delete certificates               |\n| `digitalocean.cloud.certificate_info`               | Get certificates                             |\n| `digitalocean.cloud.container_registry_info`        | Get container registry                       |\n| `digitalocean.cloud.database_cluster_info`          | Get databases                                |\n| `digitalocean.cloud.domain`                         | Create and delete domains                    |\n| `digitalocean.cloud.domain_record`                  | Create and delete domain records             |\n| `digitalocean.cloud.domain_records_info`            | Get domain records                           |\n| `digitalocean.cloud.domains_info`                   | Get domains                                  |\n| `digitalocean.cloud.droplet`                        | Create and delete Droplets                   |\n| `digitalocean.cloud.droplet_action_power`           | Change power states on Droplets              |\n| `digitalocean.cloud.droplet_action_resize`          | Resize Droplets                              |\n| `digitalocean.cloud.droplet_action_snapshot`        | Snapshot Droplets                            |\n| `digitalocean.cloud.droplets_info`                  | Get Droplets                                 |\n| `digitalocean.cloud.firewall`                       | Create and delete firewalls                  |\n| `digitalocean.cloud.firewall_info`                  | Get firewalls                                |\n| `digitalocean.cloud.images_info`                    | Get images                                   |\n| `digitalocean.cloud.kubernetes_cluster`             | Create and delete Kubernetes clusters        |\n| `digitalocean.cloud.kubernetes_cluster_info`        | Get Kubernetes clusters                      |\n| `digitalocean.cloud.load_balancer`                  | Create and delete load balancers             |\n| `digitalocean.cloud.load_balancer_info`             | Get load balancers                           |\n| `digitalocean.cloud.monitoring_alert_policies_info` | Get monitoring alert policies                |\n| `digitalocean.cloud.monitoring_alert_policy`        | Create and deelete monitoring alert policies |\n| `digitalocean.cloud.one_click`                      | Install Kubernetes 1-Click applications      |\n| `digitalocean.cloud.one_clicks_info`                | Get 1-Clicks                                 |\n| `digitalocean.cloud.project`                        | Create and delete projects                   |\n| `digitalocean.cloud.project_resources`              | Assign resources to projects                 |\n| `digitalocean.cloud.projects_info`                  | Get projects                                 |\n| `digitalocean.cloud.projects_resources_info`        | Get projects resources                       |\n| `digitalocean.cloud.regions_info`                   | Get regions                                  |\n| `digitalocean.cloud.reserved_ip`                    | Create and delete reserved IP                |\n| `digitalocean.cloud.reserved_ip_assign`             | Assign reserved IP to Droplet                |\n| `digitalocean.cloud.reserved_ips_info`              | Get reserved IPs                             |\n| `digitalocean.cloud.sizes_info`                     | Get sizes                                    |\n| `digitalocean.cloud.snapshot`                       | Create and delete snapshots                  |\n| `digitalocean.cloud.snapshots_info`                 | Get snapshots                                |\n| `digitalocean.cloud.space`                          | Create and delete Spaces                     |\n| `digitalocean.cloud.spaces_info`                    | Get Spaces                                   |\n| `digitalocean.cloud.ssh_key`                        | Create and delete SSH keys                   |\n| `digitalocean.cloud.ssh_keys_info`                  | Get SSH keys                                 |\n| `digitalocean.cloud.tag`                            | Create and delete tags                       |\n| `digitalocean.cloud.tags_info`                      | Get tags                                     |\n| `digitalocean.cloud.uptime_check`                   | Create and delete Uptime checks              |\n| `digitalocean.cloud.uptime_checks_info`             | Get Uptime checks                            |\n| `digitalocean.cloud.uptime_checks_state_info`       | Get Uptime checks state                      |\n| `digitalocean.cloud.volume`                         | Create and delete volumes                    |\n| `digitalocean.cloud.volume_action`                  | Create and delete volume actions             |\n| `digitalocean.cloud.volume_snapshot`                | Create and delete volume snapshots           |\n| `digitalocean.cloud.volumes_info`                   | Get volumes                                  |\n| `digitalocean.cloud.vpc`                            | Create and delete VPCs                       |\n| `digitalocean.cloud.vpcs_info`                      | Get VPCs                                     |\n\n| Inventory Plugin              | Description                       |\n| ----------------------------- | --------------------------------- |\n| `digitalocean.cloud.droplets` | Droplets dynamic inventory plugin |\n\n## Using this collection\n\nThere are sample playbooks in the [playbooks](./playbooks) directory.\nWhile we may not always have complete coverage of example playbooks, it is the expectation that there is complete module documentation (with `EXAMPLES`) and [integration test coverage](./tests/integration/targets/) for every module in the collection which exercise CRUD (create, read, update if applicable, and delete).\n\nBe sure to set the `$DIGITALOCEAN_TOKEN` environment variable as most modules require authentication.\nThis is preferable in contrast to using the `token` module parameter in the play and storing your API token in plaintext within your playbook.\nModules which create, update, or destroy resources in the cloud will require an API token with \"Write\" permission.\nPlease read [this](https://docs.digitalocean.com/reference/api/create-personal-access-token/) for more information on API tokens.\n\n\u003e **Warning**\n\u003e Keep in mind, running the sample playbooks that create cloud resources will cost real money.\n\n[This](./playbooks/account_info.yml) is a sample playbook which returns your DigitalOcean account information:\n\n```yaml\n---\n- name: Account info\n  hosts: localhost\n  connection: local\n  gather_facts: false\n  tasks:\n    - name: Get account information\n      digitalocean.cloud.account_info:\n```\n\nOutput should look similar to the following:\n\n```shell\n❯ ANSIBLE_STDOUT_CALLBACK=community.general.yaml ansible-playbook -i localhost, -c local playbooks/account_info.yml -v\nUsing /Users/mmercado/.ansible.cfg as config file\n\nPLAY [Account info] **********************************************************************************************\n\nTASK [Get account information] ***********************************************************************************\nok: [localhost] =\u003e changed=false\n  account:\n    droplet_limit: 25\n    email: mmercado@digitalocean.com\n    email_verified: true\n    floating_ip_limit: 3\n    name: Mark Mercado\n    reserved_ip_limit: 3\n    status: active\n    status_message: ''\n    team:\n      name: FOSS\n      uuid: 3281ad4a-0092-4e6b-abd2-c7a7ed111503\n    uuid: eab13a8a-99e3-4ffd-a587-b8a7789f0090\n    volume_limit: 100\n  msg: Current account information\n\nPLAY RECAP *******************************************************************************************************\nlocalhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0\n```\n\n[This](./playbooks/droplet.yml) is a sample playbook which registers an SSH key and a Droplet which uses it:\n\n```yaml\n---\n- name: Create SSH key and Droplet\n  hosts: localhost\n  connection: local\n  gather_facts: true\n\n  vars:\n    digitalocean_token: \"{{ lookup('ansible.builtin.env', 'DIGITALOCEAN_TOKEN') }}\"\n    public_key: \"{{ lookup('ansible.builtin.file', ansible_env['HOME'] ~ '/.ssh/sammy.key.pub') }}\"\n\n  # You can also default the value of a variable for every DO module using module_defaults\n  # https://docs.ansible.com/ansible/latest/user_guide/playbooks_module_defaults.html\n  # module_defaults:\n  #   group/digitalocean.cloud.all:\n  #     token: \"{{ lookup('ansible.builtin.env', 'DIGITALOCEAN_TOKEN') }}\"\n\n  tasks:\n    - name: Create SSH key\n      digitalocean.cloud.ssh_key:\n        state: present\n        token: \"{{ digitalocean_token }}\"\n        public_key: \"{{ public_key }}\"\n        name: \"sammy\"\n      register: ssh_key\n\n    - name: Create Droplet\n      digitalocean.cloud.droplet:\n        state: present\n        token: \"{{ digitalocean_token }}\"\n        name: sammy-droplet\n        region: nyc3\n        size: s-1vcpu-2gb\n        image: ubuntu-22-04-x64\n        ssh_keys: [\"{{ ssh_key.ssh_key.id }}\"]\n        unique_name: true\n```\n\n\u003e [!NOTE]\n\u003e DigitalOcean does not require Droplet names to be unique - this functionality is enforced by the\n\u003e `digitalocean.cloud.droplet` module in conjunction with its `unique_name` parameter.\n\n### Assigning Resources to Projects\n\nYou can organize your DigitalOcean resources into projects using the `project_resources` module. Resources are identified using their URN (Uniform Resource Name) in the format `do:resource_type:resource_id`.\n\n```yaml\n---\n- name: Assign resources to project\n  hosts: localhost\n  gather_facts: false\n\n  tasks:\n    - name: Assign Droplet and volume to project\n      digitalocean.cloud.project_resources:\n        state: present\n        project_name: \"my-web-api\"\n        resources:\n          - \"do:droplet:13457723\"\n          - \"do:volume:6fc4c277-ea5c-448a-93cd-dd496cfef71f\"\n          - \"do:floatingip:192.0.2.1\"\n```\n\nYou can specify the project by either `project_id` or `project_name`. Supported resource types include droplets, volumes, floating IPs, domains, and load balancers.\n\n[This](./inventory/digitalocean.yml) is a sample inventory plugin file which returns the Droplets in your account:\n\nOutput should look similar to the following:\n\n```shell\n❯ ansible-inventory -i inventory/digitalocean.yml --graph\n@all:\n  |--@ungrouped:\n  |--@ubuntu:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@region_slug_nyc3:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@status_active:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@vpc_30f86d25_414e_434f_852d_993ed8d6815e:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@basic:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@image_ubuntu_22_04_x64:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@tag_delete:\n  |  |--ansible-gh-ci-droplet-1-0\n  |--@tag_ci:\n  |  |--ansible-gh-ci-droplet-1-0\n```\n\n```shell\n❯ ansible-inventory -i inventory/digitalocean.yml --host ansible-gh-ci-droplet-1-0\n{\n    \"ansible_host\": \"1.2.3.4\",\n    \"backup_ids\": [],\n    \"class\": \"basic\",\n    \"created_at\": \"2023-09-23T22:19:10Z\",\n    \"disk\": 50,\n    \"distribution\": \"ubuntu\",\n    \"features\": [\n        \"private_networking\"\n    ],\n    \"id\": 376180902,\n    \"image\": {\n        \"created_at\": \"2023-03-22T19:17:23Z\",\n        \"description\": \"Ubuntu 22.04 (LTS) x64\",\n        \"distribution\": \"Ubuntu\",\n        \"id\": 129211873,\n        \"min_disk_size\": 7,\n        \"name\": \"22.04 (LTS) x64\",\n        \"public\": true,\n        \"regions\": [\n            \"nyc3\",\n            \u003cmany more\u003e\n        ],\n        \"size_gigabytes\": 0.72,\n        \"slug\": \"ubuntu-22-04-x64\",\n        \"status\": \"available\",\n        \"tags\": [],\n        \"type\": \"base\"\n    },\n    \"kernel\": null,\n    \"locked\": false,\n    \"memory\": 2048,\n    \"networks\": {\n        \"v4\": [\n            {\n                \"gateway\": \"10.108.0.1\",\n                \"ip_address\": \"10.108.0.5\",\n                \"netmask\": \"255.255.240.0\",\n                \"type\": \"private\"\n            },\n            {\n                \"gateway\": \"1.2.3.1\",\n                \"ip_address\": \"1.2.3.4\",\n                \"netmask\": \"255.255.240.0\",\n                \"type\": \"public\"\n            }\n        ],\n        \"v6\": []\n    },\n    \"next_backup_window\": null,\n    \"region\": {\n        \"available\": true,\n        \"features\": [\n            \"backups\",\n            \"ipv6\",\n            \"metadata\",\n            \"install_agent\",\n            \"storage\",\n            \"image_transfer\"\n        ],\n        \"name\": \"New York 3\",\n        \"sizes\": [\n            \"s-1vcpu-1gb\",\n            \u003cmany more\u003e\n        ],\n        \"slug\": \"nyc3\"\n    },\n    \"size\": {\n        \"available\": true,\n        \"description\": \"Basic\",\n        \"disk\": 50,\n        \"memory\": 2048,\n        \"price_hourly\": 0.01786,\n        \"price_monthly\": 12.0,\n        \"regions\": [\n            \"ams3\",\n            \u003cmany more\u003e\n        ],\n        \"slug\": \"s-1vcpu-2gb\",\n        \"transfer\": 2.0,\n        \"vcpus\": 1\n    },\n    \"size_slug\": \"s-1vcpu-2gb\",\n    \"snapshot_ids\": [],\n    \"status\": \"active\",\n    \"tags\": [\n        \"delete\",\n        \"ci\"\n    ],\n    \"vcpus\": 1,\n    \"volume_ids\": [],\n    \"vpc_uuid\": \"30f86d25-414e-434f-852d-993ed8d6815e\"\n}\n```\n\n### Installing the Collection from Ansible Galaxy\n\nBefore using this collection, you need to install it with the Ansible Galaxy command-line tool:\n\n```shell\nansible-galaxy collection install digitalocean.cloud\n```\n\nYou can also include it in a `requirements.yml` file and install it with `ansible-galaxy collection install -r requirements.yml`, using the format:\n\n```yaml\n---\ncollections:\n  - name: digitalocean.cloud\n```\n\nNote that if you install the collection from Ansible Galaxy, it will not be upgraded automatically when you upgrade the `ansible` package.\nTo upgrade the collection to the latest available version, run the following command:\n\n```shell\nansible-galaxy collection install digitalocean.cloud --upgrade\n```\n\nYou can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository).\nUse the following syntax to install version `0.5.0`:\n\n```shell\nansible-galaxy collection install digitalocean.cloud:==1.0.0\n```\n\nSee [Ansible Using collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details.\n\n## Release notes\n\nSee the [changelog](https://github.com/digitalocean/ansible-collection/tree/main/CHANGELOG.rst).\n\n## Releasing instructions\n\nPlease review the [upstream documentation](https://docs.ansible.com/ansible/latest/community/collection_contributors/collection_releasing.html) for releasing Ansible collections.\nThe utility for creating the release metadata is [antibull-changelog](https://github.com/ansible-community/antsibull-changelog) and can be install from [PyPI](https://pypi.org/project/antsibull-changelog/) with `pip install --user antsibull-changelog` or, in this project, `poetry install --with=dev`.\nIn general, the steps are as follow:\n\n1. Create a new branch for the release with `git checkout -b release/X.Y.Z`\n2. Bump the collection version in [galaxy.yml](./galaxy.yml) to `X.Y.Z`\n3. Run `antsibull-changelog release` to generate the release metadata (or `poetry run antsibull-changelog release`) to generate the release metadata\n4. Commit all changes, push the branch, and open a pull request against this branch\n5. Once all tests pass and approvals are finalized, merge the pull request\n6. After tests pass after the merge into `main`, create and push the `vX.Y.Z` based off of the merge commit\n7. After the release tag is pushed, create the corresponding GitHub Release for the tag (choosing \"automatically generate release notes\" is fine) and set it as the latest release\n8. After [this workflow](./.github/workflows/publish-galaxy.yml) passes the new version of the collection should appear on [Ansible Galaxy](https://galaxy.ansible.com/ui/repo/published/community/digitalocean/) (it is triggered from tags of the form `v*`)\n\n## Roadmap\n\n\u003c!-- Optional. Include the roadmap for this collection, and the proposed release/versioning strategy so users can anticipate the upgrade/update cycle. --\u003e\n\nTBD\n\n## More information\n\n- [Ansible Collection overview](https://github.com/ansible-collections/overview)\n- [Ansible User guide](https://docs.ansible.com/ansible/devel/user_guide/index.html)\n- [Ansible Developer guide](https://docs.ansible.com/ansible/devel/dev_guide/index.html)\n- [Ansible Collections Checklist](https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst)\n- [Ansible Community code of conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html)\n- [The Bullhorn (the Ansible Contributor newsletter)](https://us19.campaign-archive.com/home/?u=56d874e027110e35dea0e03c1\u0026id=d6635f5420)\n- [News for Maintainers](https://github.com/ansible-collections/news-for-maintainers)\n\n## Licensing\n\nGNU General Public License v3.0 or later.\n\nSee [LICENSE](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fansible-collection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigitalocean%2Fansible-collection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigitalocean%2Fansible-collection/lists"}