返回顶部
首页 > 资讯 > 操作系统 >怎么在Linux中借助Puppet和Augeas管理配置
  • 656
分享到

怎么在Linux中借助Puppet和Augeas管理配置

2023-06-16 17:06:26 656人浏览 独家记忆
摘要

这篇文章给大家分享的是有关怎么在linux中借助Puppet和Augeas管理配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。虽然Puppet是一款非常独特而实用的工具,但有些情况下你可能会使用有点不一样的方法

这篇文章给大家分享的是有关怎么在linux中借助Puppet和Augeas管理配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

虽然Puppet是一款非常独特而实用的工具,但有些情况下你可能会使用有点不一样的方法。比如这种情况:修改已经在你的几台服务器上,同时在每一台服务器上又很独特的配置文件。Puppet实验室的工作人员同样认识到了这种情况,已开发出一款名为Augeas的出色工具,它就是专门为这种用途而设计的。

怎么在Linux中借助Puppet和Augeas管理配置

准确地说,在缺少针对特定对象的资源类型(比如处理/etc/hosts条目的主机资源)的情况下,Augeas就可以弥补Puppet功能方面的不足。在这篇实用文章中,你将学会如何使用Augeas,简化配置文件的管理。

Augeas简介

Augeas基本上是一种配置编辑工具。它能够分析采用原生格式的配置文件,并将它们转变成一棵树。只要处理这棵树,并将它保存回成原生配置文件,就可以变更配置。

我们在本教程中要实现什么样的目的?

我们将安装和配置Augeas工具,以便与我们之前构建的Puppet服务器配合使用。我们将借助这个工具创建和测试几个几种不同的配置,并学习如何合理使用它来管理我们的系统配置。

前提条件

我们需要一个正常运行的Puppet服务器和客户机环境。要是你还没有这个环境,请参阅我之前的那篇教程Http://xmodulo.com/manage-configurations-linux-puppet-augeas.html

可以在我们的Centos/RHEL标准软件库中找到Augeas软件包。遗憾的是,Puppet使用puppetlabs软件库(或EPEL)里面才有的Augeas ruby包装器。要是你的系统里面还没有这个软件库,使用下面这个命令来添加它:

在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类,以便在软件包数组里面含有“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文件

1. 将sudo权限添加到wheel群组

这个例子将显示如何在你的GNU/Linux系统中为群组%wheel添加简单的sudo权限。

# Install sudo package   package { 'sudo':       ensure => installed, # ensure sudo package installed   }       # Allow users belonging to wheel group to use sudo   augeas { 'sudo_wheel':       context => '/files/etc/sudoers', # The target file is /etc/sudoers       changes => [           # allow wheel users to use 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

2. 添加命令别名

下面这部分将显示如何定义你可以在sudoers文件里面使用的命令别名。

# Create new alias SERVICES which contains some basic privileged commands   augeas { 'sudo_cmdalias':       context => '/files/etc/sudoers', # The target file is /etc/sudoers       changes => [         "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 SERVICES = /sbin/service , /sbin/chkconfig , /bin/hostname , /sbin/shutdown

想了解关于/etc/sudoers的更多信息,请访问官方说明文档:http://augeas.net/docs/references/lenses/files/sudoers-aug.html。

为群组添加用户

想使用Augeas为群组添加用户,你可能需要在gid字段后面或者在上一个用户后面添加新的用户。为了该示例,我们将使用群组SVN。可以使用下面这个命令来做到这一点:

在Puppet中:

augeas { 'augeas_mod_group:       context => '/files/etc/group', # The target file is /etc/group       changes => [          "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

感谢各位的阅读!关于“怎么在Linux中借助Puppet和Augeas管理配置”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 怎么在Linux中借助Puppet和Augeas管理配置

本文链接: https://lsjlt.com/news/284538.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Linux中借助Puppet和Augeas管理配置
    这篇文章给大家分享的是有关怎么在Linux中借助Puppet和Augeas管理配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。虽然Puppet是一款非常独特而实用的工具,但有些情况下你可能会使用有点不一样的方法...
    99+
    2023-06-16
  • 如何在Linux中配置和管理SNMP服务
    要在Linux系统中配置和管理SNMP服务,可以按照以下步骤操作: 安装SNMP服务:在终端中执行以下命令以安装SNMP服务: ...
    99+
    2024-04-02
  • Puppet 学习资源大盘点:精选书籍、教程和在线课程, 助您成为配置管理高手
    Puppet是一种开源的配置管理工具,它可以帮助您以声明的方式管理您的IT基础设施。Puppet使用一种称为Puppet Manifest的语言来声明服务器应该处于什么状态。Puppet然后使用这些清单来确保服务器处于所需的状态。Pup...
    99+
    2024-02-12
    Puppet 配置管理 自动化 IT基础设施 资源
  • 如何在Linux中配置并管理RAID
    在Linux中配置和管理RAID(冗余磁盘阵列)可以通过mdadm命令来完成。以下是一些基本的步骤: 1、安装mdadm:在大多数L...
    99+
    2024-04-02
  • Linux怎么配置管理系统
    Linux系统的配置管理可以通过修改配置文件来实现。下面是一些常见的配置文件和配置管理方法:1. /etc目录下的配置文件:Linu...
    99+
    2023-10-12
    Linux
  • Linux中帮助和用户管理命令是什么
    这篇文章主要介绍Linux中帮助和用户管理命令是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、帮助命令 一、获得命令或配置文件帮助信息:man  ①、命令名称:man  ②、英文原意:manual  ③、命令...
    99+
    2023-06-09
  • 怎么在linux中创建和管理LVM卷
    这篇文章主要介绍了怎么在linux中创建和管理LVM卷的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在linux中创建和管理LVM卷文章都会有所收获,下面我们一起来看看吧。LVM(Logical Volum...
    99+
    2023-06-27
  • 电脑中怎么不借助第三方软件就可以管理启动项
    这篇文章主要介绍电脑中怎么不借助第三方软件就可以管理启动项,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法/步骤:打开开始菜单,随后输入“msconfig”搜索系统的高级设置打开。此时打开“服务”选项即可查看所有开...
    99+
    2023-06-27
  • 怎么在linux中配置raid
    今天就跟大家聊聊有关怎么在linux中配置raid,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 什么是RAID,RAID的级别和特点 ;什么是RAID呢?全称是 “A Case ...
    99+
    2023-06-10
  • 如何在Fedora中配置和管理DNS解析
    在Fedora中配置和管理DNS解析有多种方法,以下是其中一种简单的方法: 打开终端,并使用以下命令安装DNS解析工具: sud...
    99+
    2024-04-02
  • springboot怎么配置mybatis和事务管理
    本篇内容主要讲解“springboot怎么配置mybatis和事务管理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot怎么配置mybatis和事务管理”吧!一、spring b...
    99+
    2023-07-05
  • 怎么在Linux中管理设备
    这篇文章主要介绍了怎么在Linux中管理设备,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设备文件设备文件也称为设备特定文件。设备文件用来为操作系统和用户提供它们代表的设备接...
    99+
    2023-06-16
  • PostgreSQL中怎么管理表空间和存储配置
    在 PostgreSQL 中,可以通过以下步骤来管理表空间和存储配置: 创建表空间:使用 CREATE TABLESPACE 命令...
    99+
    2024-03-11
    PostgreSQL
  • SUSE中怎么配置和管理虚拟化技术
    SUSE Linux中配置和管理虚拟化技术通常使用KVM(内核虚拟机)和Xen。以下是在SUSE中配置和管理这两种虚拟化技术的基本步...
    99+
    2024-04-09
    SUSE
  • SQL Server中怎么配置管理器
    本篇文章给大家分享的是有关SQL Server中怎么配置管理器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  SQL Server 2005...
    99+
    2024-04-02
  • 怎么在 Linux 中创建和管理归档文件
    本篇内容介绍了“怎么在 Linux 中创建和管理归档文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简而言之,归档是一个包含一系列文件和(...
    99+
    2023-06-15
  • 怎么在Linux中安装、配置和使用Fish Shell
    这篇文章主要讲解了“怎么在Linux中安装、配置和使用Fish Shell”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中安装、配置和使用Fish Shell”吧!什么是 F...
    99+
    2023-06-16
  • 怎么在Debian Linux上设置和配置网桥
    小编给大家分享一下怎么在Debian Linux上设置和配置网桥,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Q:我是一个新 Debian Linux 用户,我想...
    99+
    2023-06-16
  • ASP.NET Core怎么配置和管理Web主机
    本篇内容主要讲解“ASP.NET Core怎么配置和管理Web主机”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Core怎么配置和管理Web主机”吧!1.前言...
    99+
    2023-06-29
  • SSH密钥对在Linux SysOps中的配置与管理方法
    在Linux SysOps中,配置和管理SSH密钥对涉及以下步骤:1. 生成密钥对:使用ssh-keygen命令生成SSH密钥对。在...
    99+
    2023-10-09
    Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作