您的位置 首页 传感器

用Puppet和Augeas办理Linux装备

虽然Puppet是一个真正独特的有用工具,但在有些情况下你可以使用一点不同的方法来用它。比如,你要修改几个服务器上已有的配置文件,而且它们彼

尽管Puppet是一个实在共同的有用东西,但在有些情况下你能够运用一点不同的办法来用它。比方,你要修正几个服务器上已有的装备文件,而且它们互相稍有不同。Puppet实验室的人也认识到了这一点,他们在 Puppet 中集成了一个叫做Augeas的巨大的东西,它是专为这种运用情况而规划的。

Augeas可被以为填补了Puppet才能的空白,比方在其中一个指定方针的资源类型(例如用于保护/etc/hosts中的条意图主机资源)还不可用时。在这个文档中,您将学习怎么运用Augeas来减轻你办理装备文件的担负。

Augeas是什么?

Augeas根本上便是一个装备修正东西。它以他们原生的格局解析装备文件而且将它们转化成树。装备的更改能够经过操作树来完结,并能够以原生装备文件格局保存装备。

这篇教程要达到什么意图?

咱们会针对咱们之前构建的Puppet服务器装置并装备Augeas。咱们会运用这个东西创立并测验几个不同的装备文件,并学习怎么适当地运用它来办理咱们的体系装备。

前置阅览

咱们需求一台作业的Puppet服务器和客户端。假如你还没有,请先依照我从前的教程来。

Augeas装置包能够在规范CentOS/RHEL库房中找到。不幸的是,Puppet用到的Augeas的ruby封装只在puppetlabs库房中(或许EPEL)中才有。假如你体系中还没有这个库房,请运用下面的指令:

在CentOS/RHEL 6.5上:

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

在CentOS/RHEL 7上:

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

在你成功地装置了这个库房后,在你的体系中装置Ruby­Augeas:

# yum install ruby­augeas

或许假如你是从我的上一篇教程中持续的,运用puppet的办法装置这个包。在/etc/puppet/manifests/site.pp中修正你的custom_utils类,在packages这行中参加“ruby­augeas”。

class custom_utils {package { [nmap,telnet,vim­enhanced,traceroute,ruby­augeas]:ensure => latest,allow_virtual => false,}}

不带Puppet的Augeas

如我从前所说,开始Augeas并不是来自Puppet实验室,这意味着即便没有Puppet自身咱们依然能够运用它。这种办法可在你将它们布置到Puppet环境之前,验证你的修正和主意是否是正确的。要做到这一点,你需求在你的体系中装置一个额定的软件包。请履行以下指令:

# yum install augeas

Puppet Augeas 示例

用于演示,这里有几个Augeas运用事例。

办理 /etc/sudoers 文件

给wheel组加上sudo权限。

这个比如会向你展现怎么在你的GNU/Linux体系中为%wheel组加上sudo权限。

# 装置sudo包package { ‘sudo’:ensure => installed, # 保证sudo包已装置} # 答应用户归于wheel组来运用sudoaugeas { ‘sudo_wheel’:context => ‘/files/etc/sudoers’, # 方针文件是 /etc/sudoerschanges => [# 答应wheel用户运用sudo’set spec[user = %wheel]/user %wheel’,’set spec[user = %wheel]/host_group/host ALL’,’set spec[user = %wheel]/host_group/command ALL’,’set spec[user = %wheel]/host_group/command/runas_user ALL’,]}

现在来解说这些代码做了什么:spec界说了/etc/sudoers中的用户段,[user]界说了数组中给定的用户,一切的界说放在该用户的斜杠( / ) 后那部分。因此在典型的装备中这个能够这么表达:

user host_group/host host_group/command host_group/command/runas_user

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

%wheel ALL = (ALL) ALL

增加指令别称

下面这部分会向你展现怎么界说指令别号,它能够在你的sudoer文件中运用。

# 创立新的SERVICE别号,包含了一些根本的特权指令。augeas { ‘sudo_cmdalias’:context => ‘/files/etc/sudoers’, # 方针文件是 /etc/sudoerschanges => [set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/name SERVICES,set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[1] /sbin/service,set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[2] /sbin/chkconfig,set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[3] /bin/hostname,set Cmnd_Alias[alias/name = ‘SERVICES’]/alias/command[4] /sbin/shutdown,]}

sudo指令别号的语法很简单:Cmnd_Alias界说了指令别号字段,[alias/name]绑定一切给定的别号,/alias/name SERVICES 界说实在的别号,alias/command 是归于该别号的一切指令的数组。以上将被转化如下:

Cmnd_Alias SERV%&&&&&%ES = /sbin/service , /sbin/chkconfig , /bin/hostname , /sbin/shutdown

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

向一个组中参加用户

要运用Augeas向组中增加用户,你或许要增加一个新用户,不管是排在 gid 字段仍是最终的用户 uid 之后。咱们在这个比如中运用SVN组。这能够经过下面的指令达到:

在Puppet中:

augeas { ‘augeas_mod_group:context => ‘/files/etc/group’, #方针文件是 /etc/groupchanges => [ins user after svn/*[self::gid or self::user][last()],set svn/user[last()] john,]}

运用 augtool:

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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/322874.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部