Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:yaml_check_syntax

Mit Ansible YAML arbeiten ohne Nerven Zusammenbruch

Das Problem:

Wer mit YAML Konfigurationsdateien arbeitet, wird am Ende irgendwann ganz wirr, besonders in Ansible.

Von der Idee ist das bestimmt ganz gut, aber der kleinste Fehler kann oft dazu führen, das sehr lange gesucht werden muss wo denn der Tipp Fehler steckt.

Zumal in Ansible ein Syntaktischer und eine Logischer Fehler wie ein falsches Package ähnliche Fehlermeldungen verursachen.

D.h. wenn auf einer gehosteten Umgebung über drei virtuelle Desktops maximal mit dem VI entwickelt werden kann, treibt das einen am Ende in den Wahnsinn.

Das Problem mit Ansible und „–syntax-check“ ist die Verquickung von syntaktischen und Logischen Fehlern.

Gelegentlich hilft genaues Lesen der Fehlermeldung, meist ist aber die Ursache hier zu (nicht) finden „but may be elsewhere in the file depending on the exact syntax problem.“ und schon sucht man eine Stunde nach einen falschen Einrückung oder einen einen falschen Modulnamen oder einen Fehlenden { oder „ oder ähnlichen ganz kleinen Fehlerchen.

Wie hier schneller werden und Oracle Linux 8?

Lösung:

Wie bei jeder Programmiersprache wird eine vernünftige Programmierumgebung mit gute Tools benötigt um hier einfach schneller zu werden.

Und an Ende viel Übung und Geduld um das ganze besser hinzubekommen.


VI Unterstützung

Für den VIM (Extend Edition!) gibt es viele Erweiterungen um hier performanter zu werden.

Vim installieren

VIM zuvor installieren aus Repostitory „ol8_appstream“ für Oracle Linux8:

dnf install vim-enhanced

Und als Default für vi und setzen

Allias hinterlegen und vim für crontab als Editor hinterlegen

.bashrc,

alias vi="vim"
export VISUAL="vim" 

Plugin Manager

Um die Plugins einfach zu verwalten gibt es verschiedene Plugin Manager, hier wird vim-plug eingesetzt.

Vim Plugin Manager installieren wie den Vim-Plug von https://github.com/junegunn/vim-plug

Verzeichnis für die Plugins anlegen:

mkdir -p ~.vim/plugged

Vim-Plugin herunter laden:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

.vimrc mit den passenden Plugins für unsere Umgebung anpassen:

" Plugins will be downloaded under the specified directory.
call plug#begin('~/.vim/plugged')
 
" List ends here. Plugins become visible to Vim after this call.
Plug 'sheerun/vim-polyglot'
Plug 'pearofducks/ansible-vim'
Plug 'Yggdroot/indentLine'
 
call plug#end()

Bzgl. Plugins siehe ⇒ https://vimawesome.com/plugin/ansible-vim / https://vimawesome.com/plugin/vim-polyglot / https://vimawesome.com/plugin/indentline

Darauf achten das für vim-plug die Syntax leicht anderes ist ( Plug statt Plugin )!

vim starten und mit :PlugInstall die in der .vimrc hinterlegten Plugins dann initialisieren.

Ansible Syntax aktiveren

in der .vimrc hinterlegen das alle .yml Dateien für ansible gelten:

au BufRead,BufNewFile *.yml set filetype=yaml.ansible

Lässt sich noch genauer einschränken aber auf der Maschine unter dem User wird nur für Ansible gescripted.


YAML Lint

Mit einen Lint Program läßt sich der YAML Code prüfen und optimal entwickeln, da alle Fehler aufgezeigt werden, auch die die Ansible dann wieder weg ignoriert.

Installation

Installieren aus dem „ol8_developer_EPEL Repository“ für Oracle Linux 8:

#Was ist bereits aktiviert?
dnf repolist
 
# fall nicht bereits aktiviert
# dnf install oracle-epel-release-el8.x86_64
# oder falls nur dekativiert
# yum-config-manager --enable ol8_developer_EPEL
 
 
dnf install yamllint.noarch

Konfigurieren

Datei “„ anlegen

mkdir -p  ~/.config/yamllint
touch     ~/.config/yamllint/config

Datei ~/.config/yamllint/config anpassen:

extends: relaxed
 
rules:
  line-length: disable

siehe dazu ⇒ https://yamllint.readthedocs.io/en/stable/rules.html#module-yamllint.rules.line_length

Ausführen

yamllint --no-warnings install_ahf.yml

YAML Lint in VIM 8 einbinden

Mit dem ALE Plugin läßt sich der Lint auch in VI einbinden, aber nur in der Version 8.

siehe dazu⇒ https://www.arthurkoziel.com/setting-up-vim-for-yaml/

Plugin mit aufnehmen und mit :PlugInstall aktivieren

Plug 'dense-analysis/ale'

so sieht das dann am Ende mit Syntax Highlighting / Indent Kennzeichnung und Lint aus:

 Arbeiten mit YAML Ansible mit Lint Unterstüzung


In die gehostete Umgebung übertragen

Der Nachteil diese schönen Plugin System ist ja leider der, wenn nicht online dann geht es nicht…

In echten Produktiven Umgebung ist daher so ein freie Zugriff auf Ressourcen im Netz nicht so einfach umzusetzen.

tar cfvz vim_yaml_env.tar.gz .vimrc .vim/

Datei auf den andern Host übertragen und dort die Daten wieder auspacken

cd ~
tar xfvz vim_yaml_env.tar.gz

Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/yaml_check_syntax.txt · Zuletzt geändert: 2022/02/11 15:37 von gpipperr