Der letzte Blogpost von mir zeigte wie schnell und einfach man mit pathogen, tabular und vim-puppet die Konfigurationsdateien einheitlich formatieren kann. Von dem Puppet Style Guide ist das Ganze leider noch weit entfernt. Es wird eigentlich ja nur korrekt eingerückt und Syntaxhighlighting macht alles bunter. Mit Hilfe von syntastic, puppet und puppet-lint kann auch noch die Syntax überprüft werden (gemäß des Puppet Style Guides) und es kommt sofort Feedback wenn z.B. eine Variable in einfachen Hochkommas steht (z.B. bla => ‘$blubb’).
syntastic ist ein Vim-Plugin zum überprüfen der Syntax verschiedenster Programmiersprachen (und Ähnliches). Im Fall von Puppet-Konfigurationsdateien greift es auf puppet-lint und puppet zurück, parsed die Ausgabe und zeigt uns durch kleine Spitze Klammern und Fehlermeldungen an was genau in unserem Code noch schief läuft. Jeder kennt das ganze aus halbwegs modernen IDEs wie Eclipse und Co.
Dank pathogen ist die Installation von syntastic mit Hilfe eines einfach git clone erledigt:

$ cd ~/.vim/bundle
$ git clone git://github.com/scrooloose/syntastic.git

Puppet und puppet-lint kann man über den Paketmanager installieren.

# apt-get install puppet puppet-lint

Wer eine aktuellere Version von puppet-lint bevorzugt kann dies auch über rubygems installieren:

$ gem install puppet-lint

Ob nun wirklich alles installiert ist und ob das ganze auch wirklich gut ist kann man ganz leicht mit einem kleinem Beispiel testen:

$ vim test.pp
   class test {
     file { '/tmp/test':
       ensure => present,
         owner  => 'root',
       group => 'root',
       mode   => "0440"
       source => 'puppet:///test/etc/test',
       force  => true,
     }
   }

Speichert man nun die Datei ab (:w), wird im Hintergrund puppet-lint gestartet und syntastic zeigt uns die Fehler. In der Statuszeile werden immer die Fehler der aktuellen Zeile angezeigt. Links am Rand werden Warnungen gelb und Errors mit rot dargestellt, aber seht selbst.
Die meisten von euch denken sich vermutlich: “Für was soll das ganze gut sein? Fehler? Mach ich doch keine!”
sytastic with vim

Achim Ledermüller
Achim Ledermüller
Lead Senior Systems Engineer

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist unter anderem für die Automatisierung des RZ-Betriebs und der Evaluierung und Einführung neuer Technologien zuständig.