Pilatus Kulm

Il 23 agosto approfittando della bella giornata di sole siamo partiti da Zug per andare a Pilatus Kulm (2128 mt). Il treno ci ha portato fino a Luzern, dove si prende un bus per Kriens. Noi ci siamo sbagliati ed abbiamo preso il bus nella direzione sbagliata, ma superato il piccolo imprevisto siamo arrivati ai piedi della cabinovia che ci ha portati fino al rifugio di Fräkmüntegg. In questo luogo è stato costruito uno scivolo per bob a rotelle, il più lungo della Svizzera. Hanieh non ha perso l’occasione per lanciarsi giù !

hanieh e lo scivolo

hanieh e lo scivolo

Da Fräkmüntegg si prosegue in funivia fino a Pilatus Kulm, dove si possono esplorare a piedi le varie vette, ed è possibile pranzare ad un buonissimo ristorante benessere.

Per scendere abbiamo utilizzato il trenino che invece si arrampica sull’altro lato della montagna. Anche qui siamo in viaggio su un treno particolare, il Pilatus Bahn, il percorso in treno più ripido della Svizzera. In 40 minuti ci si trova a valle dove si prenderà il treno per Luzern.

In conclusione una bellissima domenica, paesaggi fantastici e cibo ottimo in alta montagna!!! Il Pilatus Kulm è certamente una tappa consigliata se vi trovate dalle parti di Luzern (Lucerna).

Saverio und Hanieh

Posted in Uncategorized | Tagged , , , , | Leave a comment

Writing about OpenStack on cloudblog.switch.ch

You can read my first blog post on cloudblog.switch.ch here http://cloudblog.switch.ch/2015/08/10/buffering-issues-when-publishing-openstack-dashboard-and-api-services-behind-a-http-reverse-proxy/

Posted in Uncategorized | Leave a comment

Version control and provisioning of F5 iRules with git hooks

Hallo Zusammen 🙂

In Switzerland I started to work with the F5 BIG LTM Load Balancer. It is a great device to balance HTTP traffic, and TCP traffic in general, to a pool of servers.

f5-big-ip-8950

F5 BigIP Load Balancer

These devices are highly programmable, the can intercept HTTP sessions and trigger code snippets when some event occurs. In the code you can hack many HTTP options, inject headers and cookies, and even more. With the vendor terminology these code snippets are called iRules.

The subject was completely new to me, so I started reading the very good book An Introduction to F5 Networks LTM iRules. The language used to program iRules is Tcl, I am not an expert but it is easy to learn, and everybody wrote a little bit in Tcl when playing with ns2 at the university.

Pretty soon I realized that this is not the typical Cisco/Juniper device where it is enough to keep a backup/history of the configuration with rancid. You will end up with a lot of code running in the device, and you need to version control this code. Moreover handling code writing to the web interface is terrible,  you will want to write the code with a proper editor.

One more nice to have feature, is to have a central repository for the code, and use an easy workflow to push the latest code version to all devices in your network automatically. It is really hard to manage the network cutting and pasting code on the web interface of the devices.

The good news is that the F5 BIGIP Load Balancer can be accessed with a SOAP API called iControl. There is also an official python library called bigsuds released from F5.

At my github page I published a collection of Git Hooks to update the F5 device as soon the new version of the code is pushed to a git repository.

Here is a nice ASCII art schema of the architecture:

|DevPC| <--- git+ssh ---> |GitBareRepository| <--- iControl SOAP API ---> |BIG-IP LTM|

The key idea is that the developer (or network administrator if you prefer) works on his PC. When the git commits are pushed to a remote git bare repository,  the pre-receive hook is triggered, and the changes are synced to the BIGIP devices using the SOAP API.

It is a couple of months now I am using these hooks in production, and I did not find anything similar on the web ready to use. If you try this stuff please comments are appreciated, and pull requests are even more welcome !

Cheers !

Saverio

Posted in Uncategorized | Tagged , , , , , | Leave a comment

sudo proc

Ieri ho visto scritto su una mailing list di Ninux:

echo 0 | sudo tee /proc/sys/net/ipv6/conf/all/disable_ipv6

E’ geniale ! Vi state chiedendo perché ?

Qualche anno fa avevo avuto questo problema:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

Ma cosa significa? esegui "sudo echo 1", poi l’output del comando viene preso
e scritto su /proc/sys/net/ipv4/ip_forward

Quando viene effettuata la scrittura però non abbiamo più i privilegi di root, e quindi questa forma NON FUNZIONA !

Avevo risolto all’epoca usando la sintassi corretta:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Ovvero con il privilegio sudo chiamiamo l’interprete dei comandi sh e gli diciamo di eseguire con -c il comando nella stringa che segue tra le “”. In questo modo funziona, e quando redirigo l’output verso /proc ho ancora i privilegi di root.

Ma devo dire che la soluzione echo sudo tee è molto più elegante !!!

Posted in Uncategorized | Tagged | Leave a comment

Da Zug a Zurigo in bici

Cliccando qui i dettagli del percorso dal sito di Runtastic.

Posted in Uncategorized | Tagged , , , , , , | Leave a comment