阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何用Puppet和Augeas管理Linux配置

458次阅读
没有评论

共计 3853 个字符,预计需要花费 10 分钟才能阅读完成。

虽然 Puppet 是一个真正独特的有用工具,但在有些情况下你可以使用一点不同的方法来用它。比如,你要修改几个服务器上已有的配置文件,而且它们彼此稍有不同。Puppet 实验室的人也意识到了这一点,他们在 Puppet 中集成了一个叫做 Augeas 的伟大的工具,它是专为这种使用情况而设计的。

Augeas 可被认为填补了 Puppet 能力的空白,比如在其中一个指定对象的资源类型(例如用于维护 /etc/hosts 中的条目的主机资源)还不可用时。在这个文档中,您将学习如何使用 Augeas 来减轻你管理配置文件的负担。

Augeas 是什么?

如何用 Puppet 和 Augeas 管理 Linux 配置

Augeas 基本上就是一个配置编辑工具。它以他们原生的格式解析配置文件并且将它们转换成树。配置的更改可以通过操作树来完成,并可以以原生配置文件格式保存配置。

Puppet 学习系列:

Puppet 学习一:安装及简单实例应用 http://www.linuxidc.com/Linux/2013-08/88710.htm

Puppet 学习二: 简单模块配置和应用 http://www.linuxidc.com/Linux/2013-08/88711.htm

相关阅读:

有关 Puppet agent 端三种备份恢复方案探讨研究 http://www.linuxidc.com/Linux/2013-07/87885.htm
选择更安全的方式注册你的 Puppet 节点 http://www.linuxidc.com/Linux/2013-07/87884.htm
通过配置 SSH 深刻理解 Puppet 的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm
Puppet 利用 Nginx 多端口实现负载均衡 http://www.linuxidc.com/Linux/2013-02/79794.htm
CentOS(5 和 6)下 Puppet 的 C / S 模式实例 http://www.linuxidc.com/Linux/2011-12/50502.htm

这篇教程要达成什么目的?

我们会针对我们之前构建的 Puppet 服务器安装并配置 Augeas。我们会使用这个工具创建并测试几个不同的配置文件,并学习如何适当地使用它来管理我们的系统配置。

前置阅读

我们需要一台工作的 Puppet 服务器和客户端。如果你还没有,请先按照我先前的教程来。

Augeas 安装包可以在标准 CentOS/RHEL 仓库中找到。不幸的是,Puppet 用到的 Augeas 的 ruby 封装只在 puppetlabs 仓库中(或者 EPEL)中才有。如果你系统中还没有这个仓库,请使用下面的命令:

在 CentOS/RHEL 6.5 上:

  1. # rpm -­ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs­release­6­10.noarch.rpm

在 CentOS/RHEL 7 上:

  1. # rpm -­ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs­release­7­10.noarch.rpm

在你成功地安装了这个仓库后,在你的系统中安装 Ruby­Augeas:

  1. # yum install ruby­augeas

或者如果你是从我的上一篇教程中继续的,使用 puppet 的方法安装这个包。在 /etc/puppet/manifests/site.pp 中修改你的 custom_utils 类,在 packages 这行中加入“ruby­augeas”。

  1. class custom_utils {
  2. package{[“nmap”,“telnet”,“vim­enhanced”,“traceroute”,“ruby­augeas”]:
  3. ensure=> latest,
  4. allow_virtual =>false,
  5. }
  6. }

不带 Puppet 的 Augeas

如我先前所说,最初 Augeas 并不是来自 Puppet 实验室,这意味着即使没有 Puppet 本身我们仍然可以使用它。这种方法可在你将它们部署到 Puppet 环境之前,验证你的修改和想法是否是正确的。要做到这一点,你需要在你的系统中安装一个额外的软件包。请执行以下命令:

  1. # yum install augeas

Puppet Augeas 示例

用于演示,这里有几个 Augeas 使用案例。

管理 /etc/sudoers 文件

  1. 给 wheel 组加上 sudo 权限。

这个例子会向你展示如何在你的 GNU/Linux 系统中为 %wheel 组加上 sudo 权限。

  1. # 安装 sudo 包
  2. package{‘sudo’:
  3. ensure=> installed,# 确保 sudo 包已安装
  4. }
  5.  
  6. # 允许用户属于 wheel 组来使用 sudo
  7. augeas {‘sudo_wheel’:
  8. context =>‘/files/etc/sudoers’,# 目标文件是 /etc/sudoers
  9. changes =>[
  10. # 允许 wheel 用户使用 sudo
  11. ‘set spec[user = “%wheel”]/user %wheel’,
  12. ‘set spec[user = “%wheel”]/host_group/host ALL’,
  13. ‘set spec[user = “%wheel”]/host_group/command ALL’,
  14. ‘set spec[user = “%wheel”]/host_group/command/runas_user ALL’,
  15. ]
  16. }

现在来解释这些代码做了什么:spec 定义了 /etc/sudoers 中的用户段,[user] 定义了数组中给定的用户,所有的定义放在该用户的斜杠 (/) 后那部分。因此在典型的配置中这个可以这么表达:

  1. user host_group/host host_group/command host_group/command/runas_user

这个将被转换成 /etc/sudoers 下的这一行:

  1. %wheel ALL =(ALL) ALL
  1. 添加命令别称

下面这部分会向你展示如何定义命令别名,它可以在你的 sudoer 文件中使用。

  1. # 创建新的 SERVICE 别名,包含了一些基本的特权命令。
  2. augeas {‘sudo_cmdalias’:
  3. context =>‘/files/etc/sudoers’,# 目标文件是 /etc/sudoers
  4. changes =>[
  5. “set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/name SERVICES”,
  6. “set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[1] /sbin/service”,
  7. “set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[2] /sbin/chkconfig”,
  8. “set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[3] /bin/hostname”,
  9. “set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[4] /sbin/shutdown”,
  10. ]
  11. }

sudo 命令别名的语法很简单:Cmnd_Alias 定义了命令别名字段,[alias/name] 绑定所有给定的别名,/alias/name SERVICES 定义真实的别名,alias/command 是属于该别名的所有命令的数组。以上将被转换如下:

  1. Cmnd_Alias SERVICES =/sbin/service ,/sbin/chkconfig ,/bin/hostname ,/sbin/shutdown

关于 /etc/sudoers 的更多信息,请访问官方文档。

向一个组中加入用户

要使用 Augeas 向组中添加用户,你也许要添加一个新用户,不管是排在 gid 字段还是最后的用户 uid 之后。我们在这个例子中使用 SVN 组。这可以通过下面的命令达成:

在 Puppet 中:

  1. augeas {‘augeas_mod_group:
  2. context => ‘/files/etc/group‘, #目标文件是 /etc/group
  3. changes => [
  4. “ins user after svn/*[self::gid or self::user][last()]”,
  5. “set svn/user[last()] john”,
  6. ]
  7. }

使用 augtool:

  1. augtool> ins user after /files/etc/group/svn/*[self::gid or self::user][last()] augtool> set /files/etc/group/svn/user[last()] john

总结

目前为止,你应该对如何在 Puppet 项目中使用 Augeas 有点明白了。随意地试一下,你肯定需要浏览官方的 Augeas 文档。这会帮助你了解如何在你的个人项目中正确地使用 Augeas,并且它会让你知道可以用它节省多少时间。

如有任何问题,欢迎在下面的评论中发布,我会尽力解答和向你建议。

有用的链接

  • http://www.watzmann.net/categories/augeas.html: 包含许多关于 Augeas 使用的教程。
  • http://projects.puppetlabs.com/projects/1/wiki/puppet_augeas: Puppet wiki 带有许多实例。

Puppet 的详细介绍 :请点这里
Puppet 的下载地址 :请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3853字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7986017
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...