Skip to content
This repository has been archived by the owner on Dec 10, 2021. It is now read-only.

SUSE/spacewalk-osad2

Repository files navigation

(the new) osad

EXPERIMENTAL

This is an experiment to improve osad, a service that simulates instant execution of actions in a Spacewalk environment.

Hacked during an internal SUSE workshop by

Design

The original osad was based on a jabber (XMPP) hub, with individual systems connected as clients (osad) and one agent (osad-dispatcher) running on the Spacewalk server polling actions from the database and then sending messages to the systems, notifying them to run rhn_check and pick up the actions from the server.

The original osad suffered from hard to debug issues due to jabberd corrupting its database and connectivity issues between clients and the server.

The new osad is based on zmq (http://zeromq.org). It consists on two components:

  • osad-server : creates a PUB socket and polls actions from the database that are published.
  • osad-client : creates a SUB socket and executes rhn_check when an event is published

Handshake

Handshake reuses some pieces from the old osad:

  • Client register itself as a push client using the same XML-RPC call which associates the random client name with the server-side system. This uses osad_register_push_client to get a server host and a client-name. The client name is used as a topic for the PUB queue so that clients only get the relevant notifications.
  • Client connects to the zmq sockets on osad-server and start getting events This connection uses a server public key to authenticate the server. zmq uses libsodium for this.

Install on a Spacewalk server

# python setup.py install
# python setup.py createserver

Deploy a new client

# python setup.py createclient --name="testclient"
  • A RPM package will be generated for this new client
  • Package includes the osad2 client module, autogenerated client CURVE keys and server public CURVE key
  • Now install the enerated package in your client

TODO/issues/ideas

  • Think how to test it, may be using Docker
  • zmq with certificate deployment means deploying yet another certificate

About

Experimental Spacewalk/osad replacement

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published