Bug 1729029

Summary: [RFE] Ability to choose the launch order for Ansible roles
Product: Red Hat Satellite Reporter: Kenny Tordeurs <ktordeur>
Component: Ansible - Configuration ManagementAssignee: Ondřej Pražák <oprazak>
Status: CLOSED ERRATA QA Contact: Danny Synk <dsynk>
Severity: medium Docs Contact:
Priority: high    
Version: 6.5.0CC: bkearney, egolov, kkinge, pjasbuti, smajumda
Target Milestone: 6.10.0Keywords: FutureFeature, RFE, Triaged
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: tfm-rubygem-foreman_ansible-6.3.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-16 14:08:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kenny Tordeurs 2019-07-11 08:49:31 UTC
Description of problem:
Currently the Ansible roles are launched in a different order then presented for the host.

Version-Release number of selected component (if applicable):
Satellite 6.5

How reproducible:
100%

Steps to Reproduce:
1. Assign several Ansible roles to a host in a specific order 
2. Run Ansible roles on host
3.

Actual results:
Roles do not get executed in the configured order

Expected results:
Roles to be executed in the expected order

Additional info:

Comment 3 Bryan Kearney 2021-01-25 14:35:10 UTC
Upstream bug assigned to oprazak

Comment 4 Bryan Kearney 2021-01-25 14:35:12 UTC
Upstream bug assigned to oprazak

Comment 5 Bryan Kearney 2021-02-23 09:53:12 UTC
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/27273 has been resolved.

Comment 6 Danny Synk 2021-07-19 15:54:17 UTC
Steps to Test:

1. Register a host to Satellite and configure it for remote execution using the Global Registration Template.
2. On the Configure > Host Groups page of the Satellite webUI, create a host group and assign two Ansible roles to the host group.
3. Add the host to the host group.
4. On the Configure > Host Groups page, select the "Run all Ansible roles" option from the dropdown menu in the "Actions" column.
5. When the task completes, check the Dynflow console entry for the Ansible roles run and note the execution order of the roles.
6. On the Configure > Host Groups page, edit the host group and reverse the order of the Ansible roles.
7. Run all Ansible roles on the host group again.
8. In the Dynflow console, check the order of execution of the roles for the second run.
9. Create a new host group nested under the original host group and assign two different roles to the new, nested host group.
10. Edit the host and change its assigned host group to the nested host group.
11. On the Configure > Host Groups page, run all Ansible roles against the nested host group.
12. Check the order of execution of roles in the Dynflow console.
13. Reverse the order of the roles on both the original host group and the nested host group.
14. Run all Ansible roles against the nested host group.
15. Check the order of execution in the Dynflow console 
16. On the Hosts > All Hosts page of the webUI, click the "Edit" button in the "Actions" column for the host. 
17. Remove the host from any host groups and assign 2 Ansible roles to the host.
18. On the Hosts > All Host > [hostname] page, select the "Run Ansible roles" option.
19. Check the order of execution of the roles in the Dynflow console.
20. Edit the host and reverse the order of the assigned Ansible roles.
21. Run ansible roles on the host again.
22. Check the order of execution of the roles in the Dynflow console.

Expected Results:
Roles assigned to the parent host group (if one exists) are run first, followed by roles assigned to the nested host group and, lastly, roles assigned to the individual host. Any changes to the order of roles within each of those three categories are respected. This is true for both ad hoc and recurring remote execution jobs.

Actual Results:
Roles assigned to the parent host group (if one exists) are run first, followed by roles assigned to the nested host group and, lastly, roles assigned to the individual host. Any changes to the order of roles within each of those three categories are respected. This is true for both ad hoc and recurring remote execution jobs.

Verified on Satellite 6.10, snap 9 (tfm-rubygem-foreman_ansible-6.3.1-1.el7sat.noarch).

Comment 13 errata-xmlrpc 2021-11-16 14:08:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: Satellite 6.10 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:4702