Augeas
| 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.