一、关于Puppet
puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期:供应(provisioning)、配置(configuration)、联动(orchestration)及报告(reporting),基于puppet,可以实现自动化重复任务,快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等。
puppet资源
如果把OS的所有配置,如用户账号、特定的文件、文件所属的目录、运行的服务、程序包以及cron任务等,看作是许多独立原子单元的集合的话,这些所谓的“单元”就是“资源”,不过,这些资源在其大小、复杂程度以及生命周期的跨度上等多个维度上可能会各不相同。
通常来说,类属于同一种资源的属性是相近的,如文件都有其属主和属组,而用户账号则由用户名、UID、GID等组成。但,即便是同一种资源,其在不同OS上的实现方式却又可能各不相同,例如,在windows上和Linux上启动和停止服务的方式相去甚远。
因此,puppet从以下三个维度来对资源完成抽象:
相似的资源被抽象成同一种资源“类型”,如程序包资源、用户资源及服务资源等;
将资源属性或状态的描述与其实现方式剥离开来,如仅说明安装一个程序包而不用关心其具体是通过yum、pkgadd、ports或是其它方式实现;
仅描述资源的目标状态,也即期望其实现的结果,而不是其具体过程,如“确定nginx运行起来”而不是具体描述为“运行nginx命令将其启动起来”;
这三个也被称作puppet的资源抽象层(RAL)。RAL由type(类型)和provider(提供者,即不同OS上的特定实现)组成。
puppet资源解构
在为puppet定义一个资源时,这种语法被称作“资源申报(resource declaration)”,它是puppet语言的核心组成部分。上述的定义中,仅描述了资源的目标状态而没有提到为达成目标所需要采取的任何步骤。而资源定义的核心也可以抽象为type、title、attribute和value四个部分。
puppet有许多内置的资源类型,而通过安装插件还可以继续新增额外的类型。可以通过puppet官方的类型参考页面(/references/latest/type.html)获取详细的信息。也可以使"puppet describe"命令来获取puppet当前所支持的类型列表及每种类型的详细信息,下面给出了一个简要的使用说明。
puppet describe -l:例如puppet支持的所有资源类型及其描述信息;
puppet describe -s <TYPE>:列出指定资源的简要说明;
puppet describe <TYPE>:显示指定资源的详细说明;
下面说一下,puppet几个常用的资源使用方法:
首先安装puppet
package资源使用:
service资源使用
group资源使用:
user资源使用:
cron资源使用:
file资源使用:
资源间的应用次序
exec资源使用
发现资源按照顺序依次执行
资源间通知的使用:
正则表达式的使用
首先定义一个webserver变量,$operatingsystem是pupppet中的顶级变量,表示当前系统的版本,可以随时调用"?"表示判断语句,然后后面是正则模式匹配,"i"表示忽略字符大小写,"-m"表示不把.当作换行符,"x"表示忽略模式中的空白字符和注释,然后通过notify资源输出,因为当前是centos系统,所以通知要安装httpd。
puppet资源使用,暂时先介绍这么多,以后会不断更新。
本文转自ljl_19880709 51CTO博客,原文链接:/luojianlong/1394841,如需转载请自行联系原作者
如果觉得《Puppet常用资源使用详解》对你有帮助,请点赞、收藏,并留下你的观点哦!