Ansible collection to support vmm_manager application on Ansible codes.
Before using the vmm_manager collection, you need to install it with the Ansible Galaxy CLI:
ansible-galaxy collection install mpes.vmm_managerYou can also include it in a requirements.yml file and install it via ansible-galaxy collection install -r requirements.yml, using the format:
---
collections:
- name: mpes.vmm_managerThis collection requires the vmm_manager application. You can install it with:
pip install vmm-managerCreate an inventory file, named *vmm_manager.yaml, for example, test_vmm_manager.yaml with this content:
plugin: vmm_manager
vmm_inventory: test_inventory.yaml # vmm_manager inventory file
cache: True # optional
cache_plugin: jsonfile # optional
# Best practices: use environment variables to set these parameters
# vmm_access_point: 'access_server'
# vmm_server: 'scvmm_server'
# vmm_username: 'username'
# vmm_password: 'password'
# vmm_ssh_priv_key_file: '/private/key' # optional
# vmm_ssh_user: user # optionalUse the command ansible-doc -t inventory vmm_manager for more details.
If cache is enabled (recommend, due the response time of SCVMM queries), you have to set the cache plugin that Ansible will use (cache_plugin).
In case of jsonfile plugin, you have to set the cache location path, through environment variable ANSIBLE_CACHE_PLUGIN_CONNECTION, for example:
export ANSIBLE_CACHE_PLUGIN_CONNECTION=.cacheFor more details about Ansible cache, see Ansible cache plugins.
# poetry installation
curl -sSL https://install.python-poetry.org | python3 -
# autocomplete configuration
# bash
poetry completions bash >> ~/.bash_completionpoetry install --no-rootSet the environment variables:
export ANSIBLE_INVENTORY_PLUGINS=plugins/inventory
# if jsonfile cache is enabled
export ANSIBLE_CACHE_PLUGIN_CONNECTION=.cache# developer shell
poetry shell
# delete poetry virtualenv
poetry env remove python
# Load envs
export $(cat .env | xargs)
# List inventories
ansible-doc -t inventory -l
# Check documentation
ansible-doc -t inventory vmm_manager
# Test inventory list
ansible-inventory -i test_vmm_manager.yaml --list
# Run linting
flake8 . && isort --check-only --diff .
# Fix dependencies sorting
isort .