内容简介:這篇的主角是原生 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 兩者的選擇需要照情境來選擇。
參考:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 技术管理者标准管理模板
- VMware管理集群可协助管理
- MySQL用户账户管理与权限管理详解
- 项目管理基础:什么是项目管理?
- 软件管理理论:目标管理 & SMART 原则
- Go 语言内存管理(二):Go 内存管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。