← Back to team overview

ubuntu-phone team mailing list archive

saltstack - call for testers

 

Hi everyone,

for those of you who don't know what SaltStack is, let me give you a quick
introduction first: SaltStack is an infrastructure management tool.
Something like Chef or Puppet if you want. You can use it for provisioning
to some degree and orchestration. It's very flexible and can easily be
extended.

The last few weeks I've invested some time to see if SaltStack could be
used with Ubuntu Touch [1]. Since SaltStack is already in the official
repos, the effort was quite reasonable. The packages just where not up to
date. So I compiled zeromq3 for Ubuntu Touch (raring) and build the
bindings (python-zmq). Both can be found in my test repo
[2]: libzmq3_3.2.3-1_armhf.deb and python-zmq_13.1.0_armhf.deb. fpm
makefiles to build from scratch can be found in my bitbucket repo [3].
According to the SaltStack developers zeromq3 enhances the connection
stability, which might be a very good idea for a mobile device.

So we've got a working setup. But things should be tested a bit more, on
more devices and out in the field. Right now I've only got a Nexus7 to
test. It might be a good idea to also check the stability on Nexus4 devices
over cellular network, aso.

If you are interested, this is the setup (for Ubuntu Touch raring):


*1. Install the master*

You need a master your devices connect to. Keep in mind, that the master
has to have a public IP if you don't just want to test in your LAN.
Installation instructions can be found here:
http://docs.saltstack.com/index.html

*
*
*2. Setup the minions (Ubuntu Touch)*

You need to be able to use the shell.

*2.1 zeromq3*

Either add "*deb http://pelicanbay.de/ raring main*" to your sources.list
or create a file in sources.list.d. Then do a "*apt-get update && apt-get
install libzmq3 python-zmq*".

*2.2. SaltStack*

Add the SaltStack ppa from launchpad via "*add-apt-repository
ppa:saltstack/salt*". Now install the SaltStack minion with "*apt-get
update && apt-get install salt-minion*".

*2.3. Configuration*

You'll find the minion config in "*/etc/salt/minion*". Just two things have
to be changed here. "master" should be the IP or Hostname of your master
and since your minions most likely won't have a FQDN "id" should be set to
a catchy name for the device. After that you should start the minion
via "*start
salt-minion*".


*3. Accepting the key on the master*

In the meantime your minion should have contacted your master. On the
master you'll have to accept the key of the minion with "salt-key -A
<id_name>". To list all keys you can enter "salt-key -L".


*4. Check if things are really working*

On the master enter: *salt '*' test.ping*

Your minion(s) should answer with something like:
*Nexus7:*
*    True*



Have fun and tell me if things break!

Jochen


[1]:
https://groups.google.com/forum/#!searchin/salt-users/ubuntu$20touch/salt-users/h-GZYnfjft4/hlEUUQuFDqEJ
[2]: http://pelicanbay.de
[3]: https://bitbucket.org/brejoc/fpm-makefiles/src