3.7 KiB
Ansible Collection for cloudscale.ch Cloud
This collection provides a series of Ansible modules and plugins for interacting with the cloudscale.ch Cloud.
Requirements
- ansible version >= 2.9
Installation
To install the collection hosted in Galaxy:
ansible-galaxy collection install cloudscale_ch.cloud
To upgrade to the latest version of the collection:
ansible-galaxy collection install cloudscale_ch.cloud --force
Usage
Playbooks
To use a module from cloudscale.ch collection, please reference the full namespace, collection name, and modules name that you want to use:
---
- name: Using cloudscale.ch collection
hosts: localhost
tasks:
- cloudscale_ch.cloud.server:
name: web1
image: debian-10
flavor: flex-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: web-group
zone: lpg1
api_token: ...
Or you can add full namepsace and collection name in the collections element:
---
- name: Using cloudscale.ch collection
hosts: localhost
collections:
- cloudscale_ch.cloud
tasks:
- server:
name: web1
image: debian-10
flavor: flex-2
ssh_keys:
- ssh-rsa XXXXXXXXXX...XXXX ansible@cloudscale
server_groups: web-group
zone: lpg1
api_token: ...
Roles
For existing Ansible roles, please also reference the full namespace, collection name, and modules name which used in tasks instead of just modules name.
Plugins
To use a pluign, please reference the full namespace, collection name, and plugins name that you want to use:
plugin: cloudscale_ch.cloud.<myplugin>
Contributing
There are many ways in which you can participate in the project, for example:
- Submit bugs and feature requests, and help us verify as they are checked in
- Review source code changes
- Review the documentation and make pull requests for anything from typos to new content
- If you are interested in fixing issues and contributing directly to the code base, please see the CONTRIBUTING document.
Releasing
Prepare a new release
The changelog is managed using the antsibull tool. You can install
it using pip install antsibull
- Update version in galaxy.yml
- Update changelog using antsibull
antsibull-changelog release
- Commit changelog and new version
git commit -m "Release version X.Y.Z" galaxy.yml CHANGELOG.rst changelogs/
- Tag the release. Preferably create GPG signed tag if you have a GPG key. Version tags should be prefixed with "v" (otherwise the integration tests won't run automatically).
git tag -s -m "Version X.Y.Z" vX.Y.Z
- Push the release and tag
git push origin master vX.Y.Z
Release to Ansible Galaxy
After the release is tagged and pushed to Github a release to Ansible Galaxy can be created using the release feature in Github:
- Wait for integration tests to succeed. They should automatically run on new tags. Only release if they succeed. Otherwise delete the tag and fix the issue.
- Create a release on Github by going to the release overview and selecting "Draft a new release".
License
GNU General Public License v3.0
See COPYING to see the full text.