Augeas

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Éditeur de configuration piloté par arborescence (lentilles)
Écrit en C, avec liaisons Python/Ruby/Perl/Java...
Interface CLI interactive (augtool) ou bibliothèque
Voir aussi Puppet · Hiera

Augeas est un outil qui permet de lire et modifier les fichiers de configuration Unix « à plat » comme une arborescence structurée, sans recourir à des expressions régulières fragiles. Chaque type de fichier est décrit par une lentille (lens) qui traduit sa syntaxe propre en un arbre interrogeable et modifiable sous /files.

Utilisation de base

$ augtool print /files/etc/ssh/sshd_config/PermitRootLogin
/files/etc/ssh/sshd_config/PermitRootLogin = "yes"

$ augtool
augtool> set /files/etc/ssh/sshd_config/PermitRootLogin no
augtool> save
Saved 1 file(s)

$ grep PermitRootLogin /etc/ssh/sshd_config
PermitRootLogin no

L'arborescence reflète directement le chemin du fichier édité : /files/emplacement/du/fichier/clé = valeur.

Charger une lentille hors configuration par défaut

Utile pour tester une lentille sur un fichier situé hors des chemins standards, sans dépendre du chargement automatique de toutes les lentilles connues :

$ augtool --noload
augtool> rm /augeas/load
augtool> set /augeas/load/monfichier/lens @Php
augtool> set /augeas/load/monfichier/incl /usr/local/etc/php5/cgi/php.ini
augtool> load
augtool> print
/files/usr/local/etc/php5/cgi/php.ini/soap/soap.wsdl_cache_limit = "5"
/files/usr/local/etc/php5/cgi/php.ini/ldap/ldap.max_links = "-1"
...

(correction par rapport à la source : le nom de la lentille est @Php, et non @PHP.)

Lecture et écriture directe

augtool> get /files/etc/php.ini/PHP/upload_max_filesize
augtool> get /files/etc/hosts/3/ipaddr

augtool> set /files/etc/hosts/3/ipaddr 8.8.8.8
augtool> save
augtool> exit

Intégration avec Puppet

Augeas est fréquemment invoqué depuis Puppet (type de ressource augeas, ou module puppetlabs-augeas) pour effectuer des modifications ciblées et idempotentes dans un fichier de configuration existant, sans avoir à gérer le fichier entier comme un template — utile quand seule une ligne doit être garantie, au milieu d'un fichier par ailleurs géré manuellement ou par un autre outil.

Voir aussi

  • Puppet — gestion de configuration consommant Augeas pour des éditions ciblées
  • Hiera — source de données hiérarchisées, autre brique de l'écosystème Puppet