Ansible module for Waldur
Waldur-based solutions can be managed with Ansible modules to allow provisioning and
management of infrastructure under Waldur through Ansible playbooks.
Supported functionality
- OpenStack management.
- SLURM HPC management
- Common client for Waldur APIs in Python.
See also: http://docs.ansible.com/ansible/modules.html
Installation
| pip install ansible-waldur-module
|
Example usage
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | name: Trigger master instance
waldur_marketplace_os_instance:
access_token: "{{ access_token }}"
api_url: "{{ api_url }}"
flavor: m1.micro
floating_ip: auto
image: CentOS 7 x86_64
name: "{{ instance_name }}"
project: "OpenStack Project"
offering: Instance in Tenant
ssh_key: ssh1.pub
subnet: vpc-1-tm-sub-net-2
system_volume_size: 40
wait: false
|
Pass parameters to an Ansible playbook
| ANSIBLE_LIBRARY=/usr/share/ansible-waldur/ ansible \
-m waldur_marketplace_os_instance \
-a "api_url=https://waldur.example.com/api/ access_token=9036194e1ac54cada3248a8c6b203bf7 name=instance-name project='Project name'" \
localhost
|
Running playbook using virtual Python environment
If you've installed Ansible Waldur module to virtual Python environment you need to specify
path to Python interpreter and path to module library along with path to playbook:
| ansible-playbook \
-e ansible_python_interpreter=/home/user/ansible-env/bin/python \
-M /home/user/ansible-env/lib/python3.8/site-packages/ \
playbook.yml
|
Contributing
- See general guidelines: https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html
- Install
pre-commit
and tox
| pip install tox pre-commit
pre-commit install
|
- When new module is implemented, don't forget to update
py_modules
section in setup.py
file.
- When new module is implemented, it should be covered with tests. Run tests using
tox
- Module name should consist of three parts separated by underscore:
waldur
, plugin name,
entity name. For example, waldur_os_snapshot
refers to OpenStack (OS) as plugin name and snapshot as entity name.