Normally in Ansible Tower we can create a virtual environment and set ansible version to use or which python modules to use. How we can achieve the same with Morpheus?
Say for example we need to run a certain playbook with a combination of Ansible 2.13 and python 3.8, how can we achieve this? Because in Ansible now we need to install certain collections to run certain playbooks . How can we achieve this in Morpheus?
We’ve got a refactor in the works which should support different virtual environments. Collections can be installed via galaxy using a requirements.yml file in the root of the integration. That format is documented here. The collection will only be installed for that ansible task.
The virtual environments are designed for Ansible components or services which may use the different Ansible roles, in Morpheus perspective can we create virtual environments based on Workflows or Tasks . 5.5.1 version be default using python 3.6.8 and Ansible 2.10 both are deprecated versions.
We don’t currently have the capability to switch between different virtual environments using Morpheus Ansible Tasks. The best way to do it in Morpheus right now is to install an Ansible version at the system level that satisfies the requirements and dynamically install roles and collections from the integrations at runtime using a requirements.yml file.
Ok, Understood . In our requirement one component needs ansible 2.9 maybe another components needs 2.10 so it may varies. Previously we were using Tower as the trigger point , now we are planning to use morpheus that is one of the reason we raised this question. Anyway thanks for your update,
Are there any steps needed here beyond adding the requirements.yml file to the root of the integration repo and clicking the “use ansible galaxy” box? did both of those things and our collections are still not installing.
Not sure if it matters, but if it does, we are using an internal hub server, with /etc/ansible/ansible.cfg configured to point at it and with appropriate tokens