Ansible modules to configure Solace PubSub+ event brokers with SEMP(v2).
Project description
Ansible Modules for Solace PubSub+ Event Brokers SEMP(v2) REST API
Ansible modules to configure Solace PubSub+ event brokers with SEMP v2.
QUICKSTART
Install
Install ansible & python3. Check that python points to the right version:
python -V # ==> must be >=3.6
Install / upgrade ansible-solace:
pip3 install ansible-solace
Package location:
Get the location of the package:
pip3 show ansible-solace
Name: ansible-solace
...
Location: {your-install-path}/site-packages
...
If your Ansible install location is different to the ansible-solace package, you have to tell Ansible about these modules.
You can find a description here: Adding modules and plugins locally
or you can set the ANSIBLE_MODULE_UTILS
and ANSIBLE_LIBRARY
environment variables:
export ANSIBLE_MODULE_UTILS={your-install-path}/ansible/module_utils
export ANSIBLE_LIBRARY={your-install-path}/ansible/modules
# check:
ansible-doc -l | grep solace
Note: You can also have a look at set-ansible-env.sh
.
Python interpreter:
Depending on your OS/environment, you may have to set the python interpreter explicitly.
For example, set the ANSIBLE_PYTHON_INTERPRETER
variable:
# find the location of your python installation
brew info python
# or
which python
# set the location
# e.g.
export ANSIBLE_PYTHON_INTERPRETER=/usr/local/bin/python
Run the Example
Pre-requisites
- a Solace PubSub+ Broker (Cloud or Software)
- credentials for the admin (sempv2) interface
Configure the Inventory
Copy the example below to brokers.inventory.json
and enter the values:
{
"all": {
"hosts": {
"{your broker name}": {
"ansible_connection": "local",
"sempv2_host": "{host, e.g. xxxx.messaging.solace.cloud}",
"sempv2_port": 943,
"sempv2_is_secure_connection": true,
"sempv2_username": "{admin user name}",
"sempv2_password": "{admin user password}",
"sempv2_timeout": "60",
"vpn": "{message vpn}"
}
}
}
}
Copy the example below to setup-queue.playbook.yml
:
-
name: Setup A Queue with a Subscription
hosts: all
module_defaults:
solace_queue_subscription:
host: "{{ sempv2_host }}"
port: "{{ sempv2_port }}"
secure_connection: "{{ sempv2_is_secure_connection }}"
username: "{{ sempv2_username }}"
password: "{{ sempv2_password }}"
timeout: "{{ sempv2_timeout }}"
msg_vpn: "{{ vpn }}"
solace_queue:
host: "{{ sempv2_host }}"
port: "{{ sempv2_port }}"
secure_connection: "{{ sempv2_is_secure_connection }}"
username: "{{ sempv2_username }}"
password: "{{ sempv2_password }}"
timeout: "{{ sempv2_timeout }}"
msg_vpn: "{{ vpn }}"
tasks:
- name: Add / update the queue
solace_queue:
name: "my-queue"
settings:
egressEnabled: true
ingressEnabled: true
permission: "consume"
state: present
- name: Create subscription on queues
solace_queue_subscription:
queue: "my-queue"
name: "my/subscription/topic"
state: present
Run the playbook
ansible-playbook -i brokers.inventory.json setup-queue.playbook.yml
MODULES
Status of the solace_*
modules:
Writing New Modules
See Guide to Creating new Modules.
Enhancements
The End.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ansible_solace-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 248bce24e0caecd12257b938d476c1ee99a7de8ada270367fec3d18ea2b0a4d7 |
|
MD5 | a3bc84a5dff64348e0287537e3f33422 |
|
BLAKE2b-256 | 10cbada874c32a6dbc1a2ecf6ca4ae4770964c58659327a95395efc125148da6 |