Dependency between jobs in Satellite 6.2

Latest response

I want to realize an automatic update process for all my systems. Part of this process is to notify a specific system at start/end of the updates:
1. Send the start-event
2. Install all available updates
3. reboot the machine
4. Send the end-event

I do this in Satellite 5 using actionchains which works like a charm. Because there are no actionchains in Satellite 6, I'm searching for an alernative.
My problem is that the job invocation is considered failed (or done if I use the "Power Action" to reboot) after step 3 and the last step (send end event) is never triggerd.

Is there a way to define dependencies between two jobs or to pause the job execution and wait for the reboot to happen?

Thanks for your help!


With the lack of action chaining in Satellite 6, we ended up going back to a patching script deployed to all systems that takes args based on the patching but it 1) Applies errata by ID, or security updates, or all 2) schedules a reboot in the future via at if one is required (based on reboot_required in the errata) I messed around with one script to do it all in Satellite, but as you mentioned the reboot action ended in a failed job status, so its hard to track accurately if jobs finished ok.

This is just a workaround for us, till hopefully: a) action-chaining becomes a thing b) reboots don't cause a failure in the job task.

Thanks for your response. Just to let you know, there is a way to reboot a system and not let the job fail. If you use the specific Power-Action template to restart your system, the job will get the succeeded status:

But it gets problematic if you want to do some more stuff after the reboot. Because the connection is closed during the reboot, the job will be marked as finished even if there are steps after.

Perhaps consider using Ansible with Ansible playbooks that are written with the tasks in mind that are deployed based on the groups established in the /etc/ansible/hosts file you run your Ansible playbooks from. You would =not= need Ansible Tower, but just the regular Ansible (non-paid) to do this.

Thank's for your idea. I also considered using a other software to do this. The problem here is, that the update is scheduled one day in advance for specific hosts. These dates are saved for each system individually, so there is no fixed host group which will get their updates at a given time. This requires that the system is able to schedule the update process for a given system at a given time.

As far as I know, plain ansible can only execute a playbook against a host/host group at the time Ansible is called. So there is no way to schedule specific actions without using some sort of task scheduler.