失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > puppet自动化运维之puppet的资源基础知识

puppet自动化运维之puppet的资源基础知识

时间:2019-06-21 20:43:05

相关推荐

puppet自动化运维之puppet的资源基础知识

独角兽企业重金招聘Python工程师标准>>>

puppet自动化运维之puppet的资源基础知识

此篇文章,主要是让读者提前了解puppet资源的一些知识。

变量和数组会经常用的,你懂得。

资源或变量,都分为:定义和引用。这一点一定要注意。

1.变量和数组

①、变量:

学过编程的同学,都应该知道变量的优点。一般的变量都区分全局变量和局部变量,以我个人习惯,一般只用全局变量,这样就不必在变量的区分上费时间了。例如,在shell里,我就是这样的。

puppet用$符号定义变量,变量的内容。

声明格式: $变量名="值"

引用格式: ${变量名}

例:

②、数组:

(1)、直接定义数组:

puppet利用方括号来定义数组,数组的内容由逗号分割,分别用双引号括起来.

[ "apache2" , " httpd " , " ssh " ]

例:

(2)、从字符串创建数组,像这样使用split 函数:

例:

注意:split需要两个参数,第1个是需要split的字符串,第二个是split的分隔符。

split(字符串,分隔符)

例:正则表达式

2.资源总述

puppet基本单元是资源。资源描述了系统的某些方面的属性,这些方面包括文件,服务,软件包甚至是你自定义的一个资源。

定义一个资源,需要指定资源的type(类型)和资源的title(标题)。

格式:

type { "title1",…,"title":

attribute => "value",

...

attribute => "value";

}

例:

上面的代码让/etc/passwd的权限保持644,并且属于root用户和root用户组;

第一行的file是指定资源的类型是"file"类型;

第二行的"/etc/passwd"是资源title,title的作用是让puppet能唯一标识这个资源;第三行的name指定了要对那个文件操作,默认情况下,name都等于title,所以很多时候name是可以省略的。这点要注意。

例:

资源的title是sshdconfig,但是name却可以通过判定操作系统自己选择合适的值。这样,当其他的资源要依赖sshdconfig的时候,只需要说明依赖sshdconfig就行,不需要关心文件到底在什么路径下面。例如下面的代码:

指定了一个sshd的服务,这个服务如果发现文件资源sshdconfig 有变动,就会自己reload配置文件。是不是很方便呢?注意上面的subscribe后面的File,第一个字母要大写,定义资源关系的时候,这里的字母要大写。

通常,在puppet代码里面可能会定义很多相同的资源,可以用[]把所有资源的title写在一起,即数组,例如:

你可能已经发现了,每次定义文件的时候如果都输入mode,owner,group会很繁琐,因此你可以在puppet的site.pp的开头定义资源的默认值。

定义资源的默认值需要把资源的第一个资源大写。例如下面的代码让所有的file资源的mode是644,owner是root。默认值可以被后面的设置覆盖。

在puppet里面可以定义资源之间的关系,例如前面提到的,如果sshdconfig文件如果有修改,sshd服务就重启。puppet里面还有另一个资源关系:依赖。例如资源A依赖资源B,如果资源B不存在,资源A就不被执行。定义资源依赖的属性是requre 。例如:

file资源设置port.conf的内容为80,但是在设置file资源之前,要求apache2这个软件包配置好了(即file资源依赖Package["apache2"])。

3.资源的类型

puppet的资源是由具体的系统管理任务抽象而来的,系统管理中遇到什么任务,就会有相应的资源类型,目前puppet支持的资源类型有:

file 文件/目录的管理

package 软件包的管理(yum install|remove)

service 服务的管理(start|restart|stop|status)

cron crontab定时任务的管理

user 添加用户

group 添加用户组

exec shell命令

notify 资源之间的通讯

至此,puppet的资源基础知识就结束了,变量和数组会经常用的,接下来的是puppet的file资源学习,请听下回分解!!!

如果觉得《puppet自动化运维之puppet的资源基础知识》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。