Seite wählen

vim, puppet-lint und syntastic

von | Nov 13, 2012 | Development, Puppet

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.
Mehr Beiträge zum Thema Development | Puppet

Kubernetes: Mehrere Cluster mit kubectl

Während man mit Kubernetes arbeitet oder entwickelt, wird man in den seltensten Fällen alles auf einem Cluster machen. Ob man ein lokales Minikube verwendet, oder Zugriff auf verschiedene Cluster für Produktion und Testing hat, muss man die Daten ja verwalten, und...

Von Fackeln, elektrischen Schafen und Datenpunkten

Hallo und Willkommen im Jahr 2021! Damit sind wir offiziell 2 Jahre nach dem originalen Zeitablauf von Blade Runner welcher 2019 spielt. Hmm, nirgends sind Nexus 6 Modelle die Rumlaufen und von elektrischen Schafen träumen. (Auch keine Flugautos) *seufz*. Egal !!...

Kommende Icinga Web-Funktion: Rememberme

Wir freuen uns immer über Feedback von euch, um Icinga noch besser zu machen. Viele Icinga-Benutzer haben die Meinung geäußert, dass sie gerne eine Rememberme-Checkbox auf der Login-Seite von Icinga Web hätten, damit sie sich nicht jedes Mal anmelden müssen, wenn sie...

Ansible – Loop over multiple tasks

The last time I wrote about Ansible and the possibility to use blocks to group multiple tasks. Which you can read here. Sadly this feature does not work with loop, so there is no clean way to loop over multiple tasks in a play without writing the same loop statement...

Veranstaltungen

Di 02

Icinga 2 Fundamentals Training | Online

März 2 @ 09:00 - März 5 @ 17:00
Di 09

Ansible Fundamentals Training | Online

März 9 @ 09:00 - März 11 @ 17:00
Fr 12

Ansible AWX (Tower) Training | Online

März 12 @ 09:00 - 17:00
Di 23

Ansible Advanced Training | Online

März 23 @ 09:00 - März 24 @ 17:00
Apr 13

Kubernetes Quick Start | Online

April 13 @ 09:00 - 17:00