ansibleplaybookbundle / ansible-playbook-bundle

THIS REPO IS MIGRATING: https://github.com/automationbroker/apb
GNU General Public License v2.0
140 stars 70 forks source link

Question: Does APB or ABP CLI requires Ansible 2.5? #313

Open gaurav-nelson opened 6 years ago

gaurav-nelson commented 6 years ago

There is no mention of this in the prerequisites section.

PS: https://github.com/openshift/openshift-docs/issues/10436

djzager commented 6 years ago

The APB CLI, as I understand it, has no requirements on the version of Ansible installed. @dymurray do you have any thoughts on this?

gaurav-nelson commented 6 years ago

@djzager Thanks for looking at this. I have revised the question, does APB or APB CLI requires Ansible 2.5?

djzager commented 6 years ago

@gaurav-nelson When you say "APB" I assume you are referring generically to an APB container image, for example postgresql-apb. All of our APB images are based off of the apb-base container image and while the apb-base-scripts RPM does not specifically require Ansible, the latest released version of Ansible is included in that image from which other APB images are built.

My understanding of the APB CLI is that there is no requirement for Ansible. However, the APB CLI is changing from python -> golang for the 3.11 release so including @dymurray seems like a good idea.

gaurav-nelson commented 6 years ago

@akesterton Can you please provide some insights here about the issue you encountered with Ansible version?

akesterton commented 6 years ago

Hi

A customer has been trying to use the APB - they are running OpenShift 3.9. OpenShift 3.9 ships with Ansible 2.4, and we are aware of issues with the setup playbooks for OpenShift not working with versions of Ansible other than 2.4,

The customer also reported that they needed Ansible 2.5 to run the playbook, as it required libraries that were not available in 2.4:

The example given for PostgreSQL example APB https://github.com/ansibleplaybookbundle/postgresql-apb/blob/master/tasks/main.yml, uses ‘openshift_raw’. This module https://docs.ansible.com/ansible/latest/modules/openshift_raw_module.html#openshift-raw-module is only available on Ansible 2.5. The Ansible bundled with OCP is 2.4.4 https://docs.openshift.com/container-platform/3.9/install_config/install/disconnected_install.html#disconnected-required-software-and-components.

regards

anthony

Anthony Kesterton, Senior Solution Architect, Red Hat akesterton@redhat.com, +44 7971 780758

On 13 Jul 2018, at 01:19, Gaurav Nelson notifications@github.com wrote:

@akesterton https://github.com/akesterton Can you please provide some insights here about the issue you encountered with Ansible version?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ansibleplaybookbundle/ansible-playbook-bundle/issues/313#issuecomment-404688967, or mute the thread https://github.com/notifications/unsubscribe-auth/ADeNDPvMS5vMAM5Gt_r8XTlI40BVhu7tks5uF-ePgaJpZM4VDGMv.

jwmatthews commented 6 years ago

@akesterton @gaurav-nelson

For what you described, customer wanted to run the postgresql-apb from github master branch, yes Ansible 2.5 is expected and required if they are running the playbook directly outside context of the containerized APB image. (Also note that OCP 3.9 maps to release-1.1 branch in APB examples and not master as master is for newer OCP development)

Below is some more information that may help, please let me know if anything is unclear and I'd be happy to setup a call to chat on any specifics.

The typical workflow is for an end user to interact with Service Catalog which will instruct the Automation Broker to execute the APB. The APB is a containerized environment which has the Ansible dependencies and roles/playbooks, so all versioning requirements are self-contained in the image, i.e. end user doesn't need to worry about this since the container image has the dependencies solved.

Ansible support for k8s integration has been improving, you will see that example APBs have been evolving to leverage the latest improvements to Ansible. To be clear, these Ansible version dependencies are satisfied at the container image level when discussing consuming/publishing APBs, so end customer does not need to worry about specific dependencies in normal workflows.

Yet....during development of APBs, i.e. building a new APB and wanting to test out the Ansible k8s modules/roles the developer will need to have the version of Ansible they wish to use installed along with any dependencies.

Note, this is only for the development case or for someone who wants to debug and run the playbook by hand to observe what it does, this is not for the typical workflow of deployment via Service Catalog.

When discussing the developer use case, in OCP 3.9 the example Ansible code used Ansible 2.4 with an early version of the work on k8s modules. If you are looking at the latest code in 'master' of the examples you will see most of the examples use Ansible 2.5, yet we are beginning to update examples to use Ansible 2.6 which has better k8s modules required for some of the new support with Custom Resources.

Technically the APB itself does not impose a requirement on Ansible versions, yet normally a Developer will want to leverage the Ansible k8s modules, at which point they need to ensure they have the dependencies installed for what they want to run.

Hope this helps to clear things up, happy to discuss further.

akesterton commented 6 years ago

Hi John

Sounds like we have a bit of a Ansible version mismatch on the OpenShift and APB playbooks unless I have mis-understood. The customer did hit this problem when trying to create an APB for Mulesoft, so they are in the mode of using the APB to create a new Automation Broker.

I will check with the OpenShift team when they plan to use later versions of Ansible.

regards

anthony

Anthony Kesterton, Senior Solution Architect, Red Hat akesterton@redhat.com, +44 7971 780758

On 13 Jul 2018, at 18:00, John Matthews notifications@github.com wrote:

@akesterton https://github.com/akesterton @gaurav-nelson https://github.com/gaurav-nelson For what you described, customer wanted to run the postgresql-apb from github master branch, yes Ansible 2.5 is expected and required if they are running the playbook directly outside context of the containerized APB image. (Also note that OCP 3.9 maps to release-1.1 branch in APB examples and not master as master is for newer OCP development)

Below is some more information that may help, please let me know if anything is unclear and I'd be happy to setup a call to chat on any specifics.

The typical workflow is for an end user to interact with Service Catalog which will instruct the Automation Broker to execute the APB. The APB is a containerized environment which has the Ansible dependencies and roles/playbooks, so all versioning requirements are self-contained in the image, i.e. end user doesn't need to worry about this since the container image has the dependencies solved.

Ansible support for k8s integration has been improving, you will see that example APBs have been evolving to leverage the latest improvements to Ansible. To be clear, these Ansible version dependencies are satisfied at the container image level when discussing consuming/publishing APBs, so end customer does not need to worry about specific dependencies in normal workflows.

Yet....during development of APBs, i.e. building a new APB and wanting to test out the Ansible k8s modules/roles the developer will need to have the version of Ansible they wish to use installed along with any dependencies.

Note, this is only for the development case or for someone who wants to debug and run the playbook by hand to observe what it does, this is not for the typical workflow of deployment via Service Catalog.

When discussing the developer use case, in OCP 3.9 the example Ansible code used Ansible 2.4 with an early version of the work on k8s modules. If you are looking at the latest code in 'master' of the examples you will see most of the examples use Ansible 2.5, yet we are beginning to update examples to use Ansible 2.6 which has better k8s modules required for some of the new support with Custom Resources.

Technically the APB itself does not impose a requirement on Ansible versions, yet normally a Developer will want to leverage the Ansible k8s modules, at which point they need to ensure they have the dependencies installed for what they want to run.

Hope this helps to clear things up, happy to discuss further.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ansibleplaybookbundle/ansible-playbook-bundle/issues/313#issuecomment-404892699, or mute the thread https://github.com/notifications/unsubscribe-auth/ADeNDHoABVlFai47W3wDq9JhGWn9gtgaks5uGNIggaJpZM4VDGMv.

akesterton commented 6 years ago

Apologies for not replying sooner. The customer is looking at the examples we provide in the documentation and this does not mention the need for another version of Ansible. I believe that we need to provide better instructions for this section as to what is required to use the example. People read these instructions in order to work out how to create an APB of their own.