[WLANware] [ANNOUNCE] Gluon-Puppet Release 0.1.0

Martin Tippmann martin.tippmann at gmail.com
Tue Oct 14 01:09:12 CEST 2014


Am 14. Oktober 2014 00:15 schrieb Philipp Borgers <borgers at mi.fu-berlin.de>:

> On Mon, Oct 13, 2014 at 10:08:58PM +0200, Martin Tippmann wrote:
> Wichtig wäre Erfahrung mit OpenWrt und Tool X. Habt ihr das schon mal was
> ausprobiert oder Interesse daran zu arbeiten? Vielleicht kann man sich ja
> gegenseitig unterstützen, wenn das noch andere sinnvoll finden.
>

Aus eigener Erfahrung mit Saltstack (und ein wenig Puppet) würd ich sagen,
dass wenn es funktioniert prima ist aber es erstmal zum laufen zu bekommen
und alle Eventualitäten damit abzudecken ist schon Arbeit. Zudem hat man
damit auch die Möglichkeit schnell eine defekte Konfiguration zu verteilen
:)

Wenn es z.B. darum geht eine Konfigurationsdatei oder einen uci Wert zu
setzen, dann ist dafür fabric eventuell praktisch:

apt-get install fabric

Hier ein kleines Beispiel-Script was die uci-Konfiguration ausliest:


#!/usr/bin/env python
from fabric.api import run,env

env.shell = '/bin/ash -c'  # no bash - so scheint es auf openwrt zu laufen
env.user = 'root'
env.password = 'admin'  # ssh key geht auch

# das ist die funktion
@parallel # läuft auf allen Hosts parallel
def update_uci():
    run('uci show wireless')
    run('ip r | wc -l')


Dann kann man dann z.B. so aufrufen: -H können auch mehrere Hosts sein, die
kann man auch über den Code auflisten oder aus einer Datei auslesen z.B.
update_uci ist die Funktion im Python Code:

$ fab -f openwrt.py -H host1,host2,host3 update_uci

[192.168.2.118] Executing task 'update_uci'
[192.168.2.118] run: uci show wireless
[192.168.2.118] out: wireless.radio0=wifi-device
[192.168.2.118] out: wireless.radio0.type=mac80211
[192.168.2.118] out: wireless.radio0.country=US
[192.168.2.118] out: wireless.radio0.channel=5
[192.168.2.118] out:

[192.168.2.118] run: ip r | wc -l
[192.168.2.118] out: 726
[192.168.2.118] out:
...

Das kann man auch parellel für hunderte von Maschinen laufen lassen.

Ist sozusagen ein Python-Wrapper um SSH - man kann u.a. auch Rückgabewerte
prüfen und u.a. auch mit Templates Dateien befüllen.

Das geht sicher auch anders/einfacher/komplizierter. Aber damit kann man
relativ einfach auf hunderten Geräten etwas verändern ohne großen Aufwand.

Das ist etwas mehr "low level" als komplette
Konfigurationsmanagement-Systeme wie Puppet/Salt/Ansible aber dafür meiner
Erfahrung nach schneller um einmalige Änderungen durchzuführen.

Ist vielleicht interessant.. wirklich einfach und unkompliziert ist das
aber auch nicht.


vg
Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freifunk.net/pipermail/wlanware-freifunk.net/attachments/20141014/ad7f3db6/attachment.html>


More information about the WLANware mailing list