Saltstack, hoe cool is dit

Ik beheer een vrij grote server met een aantal domeinen, een server van de voedselbank alhier en mijn eigen laptop, en ben nu bezig met Saltstack, oftewel Salt. Hieronder even een eerste indruk van wat Salt kan



**salt:/home/knurpht #** salt '*' cmd.run 'rpm -qa | grep fortune'                                                                                                
voedselbank-groningen:                                                                                                                                        
salt:                                                                                                                                                         
knurphtlaptop:                                                                                                                                                
ERROR: Minions returned with non-zero exit code                                                                                                               
**salt:/home/knurpht #** salt '*' pkg.install fortune*                                                                                                            
voedselbank-groningen:                                                                                                                                        
    ----------
    fortune-mod:                                                                                                                                              
        ----------
        new:                                                                                                                                                  
            1.99.1-13.el6
        old:                                                                                                                                                  
salt:                                                                                                                                                         
    ----------
    fortune:                                                                                                                                                  
        ----------
        new:
            1.99.1-10.2
        old:
knurphtlaptop:
    ----------
    fortune:
        ----------
        new:
            1.99.1-10.2
        old:
**salt:/home/knurpht #** salt '*' cmd.run 'rpm -qa | grep fortune'             
voedselbank-groningen:
    fortune-mod-1.99.1-13.el6.x86_64
salt:
    fortune-1.99.1-10.2.x86_64
knurphtlaptop:
    fortune-1.99.1-10.2.x86_64
**salt:/home/knurpht #** salt '*' pkg.remove pkgs='"fortune", "fortune-mod"]'
voedselbank-groningen:
    ----------
    fortune-mod:
        ----------
        new:
        old:
            1.99.1-13.el6
salt:
    ----------
    fortune:
        ----------
        new:
        old:
            1.99.1-10.2
knurphtlaptop:
    ----------
    fortune:
        ----------
        new:
        old:
            1.99.1-10.2
**salt:/home/knurpht #** salt '*' cmd.run 'rpm -qa | grep fortune'             
voedselbank-groningen:
salt:
knurphtlaptop:
ERROR: Minions returned with non-zero exit code
**salt:/home/knurpht #**


Het bijzondere is dat de voedselbank op een Centos 6 server draait, mijn eigen cloudserver en laptop op Tumbleweed. Binnenkort meer.

Nog wat meer voorbeelden
salt:/home/knurpht # salt ‘*’ test.echo ‘Aanwezig !!’
salt:
Aanwezig !!
knurphtserver.knurpht.nl: #mijn eigen Leap server ook toegevoegd
Aanwezig !!
knurphtlaptop:
Aanwezig !!
voedselbank-groningen:
Aanwezig !!

salt:/home/knurpht # salt knurphtlaptop disk.usage
knurphtlaptop:
----------
/:
----------
1K-blocks:
25675140
available:
8268000
capacity:
67%
filesystem:
/dev/sda2
used:
16079852
/dev:
----------
1K-blocks:
2999088
available:
2999088
capacity:
0%
filesystem:
devtmpfs
used:
0
/dev/shm:
----------
1K-blocks:
3005708
available:
2870464
capacity:
5%
filesystem:
tmpfs
used:
135244
/home:
----------
1K-blocks:
115247656
available:
5230304
capacity:
96%
filesystem:
/dev/sdb1
used:
104140004
/run:
----------
1K-blocks:
3005708
available:
3004092
capacity:
1%
filesystem:
tmpfs
used:
1616
/run/user/1001:
----------
1K-blocks:
601140
available:
601120
capacity:
1%
filesystem:
tmpfs
used:
20
/srv:
----------
1K-blocks:
15299584
available:
12382864
capacity:
20%
filesystem:
/dev/sda4
used:
2916720
/sys/fs/cgroup:
----------
1K-blocks:
3005708
available:
3005708
capacity:
0%
filesystem:
tmpfs
used:
0
salt:/home/knurpht # salt knurphtlaptop cmd.run ‘df -h’
knurphtlaptop:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 130M 2.8G 5% /dev/shm
tmpfs 2.9G 1.6M 2.9G 1% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/sda2 25G 16G 7.9G 67% /
/dev/sdb1 110G 100G 5.0G 96% /home
/dev/sda4 15G 2.8G 12G 20% /srv
tmpfs 588M 20K 588M 1% /run/user/1001
salt:/home/knurpht # salt knurphtlaptop network.interfaces
knurphtlaptop:
----------
enp4s0:
----------
hwaddr:
30:85:a9:04:06:46
up:
True
lo:
----------
hwaddr:
00:00:00:00:00:00
inet:
|_
----------
address:
127.0.0.1
broadcast:
None
label:
lo
netmask:
255.0.0.0
inet6:
|_
----------
address:
::1
prefixlen:
128
scope:
host
up:
True
wlp3s0:
----------
hwaddr:
dc:85:de:01:96:81
inet:
|_
----------
address:
10.59.1.38
broadcast:
10.59.1.255
label:
wlp3s0
netmask:
255.255.255.0
inet6:
|_
----------
address:
fe80::8f4c:487d:73ac:5609
prefixlen:
64
scope:
link
up:
True

Ja, pretty cool.

Maar eens op ons lab-netwerk op mijn werk proberen; de DNS settings moeten binnenkort bijgewerkt worden.

Het begin is ook zo makkelijk. Je start de salt-master op, vraagt de master_finger uit, plakt IP en master_finger in de minion configuratie, master en minion herstarten, klaar. Daarna begint 't pas, want de mogelijkheden zijn oneindig. Volgende stap is voor mij om saltpad ( webinterface ) werkend te krijgen. Vereist nog wat leeswerk.

En nog maar één. Jammer genoeg waren drie systemen ( ook handmatig gecontroleerd ) al up to date.
Dit commando vertelt alle machines dat ze moeten updaten. Ik moet nog even controleren of ik daarvoor op beide machines met TW nog een no-allow-vendor-change moet “zetten” in de configuratie ( staat me iets van bij, ik voeg dat nu zelf aan het commando om TW te updaten toe ).

knurpht@salt:~> sudo salt ‘’ test.ping
[sudo] wachtwoord voor root:
salt:
True
knurphtserver.knurpht.nl:
True
voedselbank-groningen:
True
knurphtlaptop:
True
knurpht@salt:~> sudo salt '
’ pkg.upgrade
voedselbank-groningen:
----------
salt:
----------
knurphtserver.knurpht.nl:
----------
changes:
----------
mixxx:
----------
new:
2.0.0+git20160111.2121-4.1
old:
2.0.0+git20160111.2121-3.2
comment:
result:
True
knurphtlaptop:
----------

Nog maar één: Maak op alle machines een TESTFILE aan met daar het woord TESTFILE, controleer, verwijder, controleer nogmaals:
salt:/etc/zypp # salt ‘’ cmd.run ‘echo “TESTFILE” > /root/TESTFILE’
salt:
voedselbank-groningen:
knurphtserver.knurpht.nl:
knurphtlaptop:
salt:/etc/zypp # salt '
’ cmd.run ‘cat /root/TESTFILE’
salt:
TESTFILE
voedselbank-groningen:
TESTFILE
knurphtserver.knurpht.nl:
TESTFILE
knurphtlaptop:
TESTFILE
salt:/etc/zypp # salt ‘’ cmd.run ‘rm /root/TESTFILE’
salt:
voedselbank-groningen:
knurphtserver.knurpht.nl:
knurphtlaptop:
salt:/etc/zypp # salt '
’ cmd.run ‘cat /root/TESTFILE’
salt:
cat: /root/TESTFILE: No such file or directory
voedselbank-groningen:
cat: /root/TESTFILE: No such file or directory
knurphtserver.knurpht.nl:
cat: /root/TESTFILE: No such file or directory
knurphtlaptop:
cat: /root/TESTFILE: No such file or directory
ERROR: Minions returned with non-zero exit code

Lekker bezig. :good:

Yep, en ondertussen ook Collabora Online aan de praat. (LibreOffice webversie in Nextcloud).

Hee dat is even interessant. Dat moet ik eens van dichtbij gaan bekijken.

Heb je Nextcloud of Owncloud al draaien? Op een ‘fully qualified domain’, dwz een DNS A-record voor bijv. cloud.benhenderson.nl ?