Salt Spacewalk integration reactor
This process allows you to integrate a Saltstack environment in Spacewalk.
- Automatic registration of (accepted) minions in Spacewalk
- (WIP) Integration of a (minimal) part of the minion hardware inventory in Spacewalk
- (WIP) Integration of the software inventory of the minion in Spacewalk
- Integration of Salt jobs into the event history and synchronization of the action status and results
- Events happening when the reactor is down will not be recorded
- Initiating actions from the Spacewalk user interface require additional changes in Spacewalk, which are also being done as part of the concept, but are not part of the reactor. (incl. a Java library to interact with salt-api)
Run the salt-master on the Spacewalk server
Setup pillar data so set the default admin user and activation key for salt minions. Put the following data in /srv/pillar
base: '*': - data
spacewalk-activation-key: 1-salt-testing spacewalk-admin-user: admin
and refresh the pillar data
$ salt '*' saltutil.refresh_pillar
This gives the same admin user and key for all minions. You can change top.sls to match different minion names or grains.
Some patches to Spacewalk to introduce a SaltJob Action type. If you use Spacewalk upstream you will need to apply these: https://gist.github.com/dmacvicar/a53e3cf972d0583ed1f0
Run salt-api locally in the Spacewalk so that the webapp can interact with it
The reactor reads events from the master in a loop. It reacts to the following events.
When a minion starts, it will be registered with Spacwalk if it is not already registered. A refresh of the software inventory and hardware will be done
- tag salt/job/$jobid/new
If the job was not created by the reactor itself (like hardware refresh), an action will be created, of type SaltJob
- tag salt/job/$jobid/ret/$minion
When an action is returned, if it was not created by the reactor itself, the status will be updated.
The Spacewalk Salt reactor was developed by the SUSE Manager team during Hackweek 11 https://hackweek.suse.com/11/projects/514