Augeas 與 Puppet 管理設定檔

栏目: 服务器 · 发布时间: 5年前

内容简介:這篇的主角是原生 Puppet 管理檔案使用 File 管理的是整個檔案內容,但是在某種情況下僅需要管理單一行設定,之前其實有介紹過file_line 這個由 Puppet 官方開發的 Module,除此之外 Puppet 就是利用 Augeas 這個工具來管理「單行設定」。Augesa 的核心有一部分是使用

這篇的主角是 Augesa 這個工具,Puppet 只是配角,原因是 Puppet 管理設定檔有一部分採用了 Augeas 這個強大的工具。

原生 Puppet 管理檔案使用 File 管理的是整個檔案內容,但是在某種情況下僅需要管理單一行設定,之前其實有介紹過file_line 這個由 Puppet 官方開發的 Module,除此之外 Puppet 就是利用 Augeas 這個 工具 來管理「單行設定」。

Augesa 的核心有一部分是使用 Stock lenses 來參考設定檔的資訊,大部分在 Linux 上的設定檔都可以在 Stock lenses 找到,自定義的 xml、JSON、ini 也都可以管理。

安裝 Augeas 參考 官方文件 ,一般需要兩個套件

  • augeas-tools
  • augeas-lenses

在這篇提供幾種使用情境

使用 ag command line 管理 json 檔案

$ augtool -A
 
augtool> set /augeas/load/Json/lens Json.lns
augtool> set /augeas/load/Json/incl /var/lib/transmission/.config/settings.json
augtool> load
  • 使用 Set 先把 Json 的 lenses 和要管理的 settings.json 讀進來
  • augeas print 測試讀 setting.json 是否正常

使用 ag command line 管理 /etc/yum.repo.d/epel.repo 檔案

$ augtool -A
 
augtool> set /augeas/load/Yum/lens Yum.lns
augtool> set /augeas/load/Yum/incl /etc/yum.repos.d/epel.repo
augtool> load
augtool> print /files
 
/files
/files/etc
/files/etc/yum.repos.d
/files/etc/yum.repos.d/epel.repo
/files/etc/yum.repos.d/epel.repo/epel
/files/etc/yum.repos.d/epel.repo/epel/name = "Extra Packages for Enterprise Linux 7 - $basearch"
/files/etc/yum.repos.d/epel.repo/epel/mirrorlist = "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=$basearch"
/files/etc/yum.repos.d/epel.repo/epel/enabled = "1"
/files/etc/yum.repos.d/epel.repo/epel/gpgcheck = "1"
/files/etc/yum.repos.d/epel.repo/epel/gpgkey = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7"
/files/etc/yum.repos.d/epel.repo/epel/failovermethod = "priority"
/files/etc/yum.repos.d/epel.repo/epel/exclude[1] = "puppet*"
/files/etc/yum.repos.d/epel.repo/epel/exclude[2] = "*augeas*"
  • 因為 agueas 剛好有支援 Yum.lns 格式就直接 Set 讀進來
  • augeas print 測試讀 epel.repo 是否正常

在 EPEL 這個 yum repository 加一筆 includepkgs=ossec-hids*

augtool> set /files/etc/yum.repos.d/epel.repo/epel/includepkgs "ossec-hids*"
augtool> print /files
/files
/files/etc
/files/etc/yum.repos.d
/files/etc/yum.repos.d/epel.repo
/files/etc/yum.repos.d/epel.repo/epel
/files/etc/yum.repos.d/epel.repo/epel/name = "Extra Packages for Enterprise Linux 7 - $basearch"
/files/etc/yum.repos.d/epel.repo/epel/mirrorlist = "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=$basearch"
/files/etc/yum.repos.d/epel.repo/epel/enabled = "1"
/files/etc/yum.repos.d/epel.repo/epel/gpgcheck = "1"
/files/etc/yum.repos.d/epel.repo/epel/gpgkey = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7"
/files/etc/yum.repos.d/epel.repo/epel/failovermethod = "priority"
/files/etc/yum.repos.d/epel.repo/epel/exclude[1] = "puppet*"
/files/etc/yum.repos.d/epel.repo/epel/exclude[2] = "*augeas*"
/files/etc/yum.repos.d/epel.repo/epel/includepkgs = "ossec-hids*"
/files/etc/yum.repos.d/epel.repo/includepkg = "ossec-hids*"
augtool> save
Saved 1 file(s)

augease save 後就會寫入檔案。

使用 Puppet augeas 移除 /opt/tomcat/conf/server.xml 內建的 Value 參數。

augeas { 'absent-default-config-server-valve':
  lens    => 'Xml.lns',
  incl    => '/opt/tomcat/conf/server.xml',
  changes => 'rm Server/Service/Engine/Host/Valve',
}

結論

augeas 更好用的地方是在 Shell Script,不需要利用 sed、egrep 等工具 filter

如果是 Puppet 來說,file_line、augeas 兩者的選擇需要照情境來選擇。

參考:


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

美工神话

美工神话

聂小燕、赵秋轶 / 人民邮电出版社 / 2006 / 52.00元

本书是一本专门针对网页美工设计的图书,全面、细致地介绍利用 Dreamweaver 8 和 Photoshop CS2 进行创意和设计的具体方法和步骤。 全书共分为4篇12章,在阐述网页色彩设计和风格创意的基础上,以生动的实例引导读者全面地掌握 Photoshop 网页元素设计与 Dreamweaver 网页布局美化。书中涉及了诸多网页美化所必须掌握的知识点,比如色彩知识,风格创意,网页规划......一起来看看 《美工神话》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具