Puppet简介
IT基础设施自动化管理工具,作者:Luck Kanies,官方站点:www.puppetlabs.com
管理设施的整个生命周期:
provisioning、configuration、orchestration、reporting
Puppet安装
(1)官方的yum仓库
CentOS 6.*:
# rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
CentOS 7.*:
# rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
(2)EPEL源
Puppet基础应用
puppet <subcommand> [options] <action> [options]
使用puppet help获取相应帮助
1.资源定义
①定义法则
A.资源类型定义时必须使用小写字符
B.资源名称(title)仅是一个字符串,但同一个类型中其必须唯一
②定义格式
type {'title': attribute1 => value1, attribute2 => value2[,] }
③资源的特殊属性
NameVar,ensure,Metaparameters
Metaparameters: //资源引用: Type['title'] //依赖关系: 被依赖的资源中使用before 依赖的资源中使用require ->:链式依赖 //通知关系: 被依赖的资源中使用notify 监听其他资源的资源使用subscribe ~>:链式通知
④常用资源类型
/*管理组*/group /*常用属性*/ name:组名,NameVar gid:GID ensure:present,absent system:true,false members:组内成员
/*管理用户*/user /*常用属性*/ name:用户名,NameVar uid:UID gid:基本组ID groups:附加组 home:家目录 shell:默认shell system:true,false commet:注释信息 ensure:present,absent expiry:过期期限 password:设置用户密码
/*管理文件*/file /*常用属性*/ force:强制运行,可用值{yes|no|true|false} group:属组 owner:属主 mode:权限,支持八进制格式权限,以及u,g,o赋权方式 path:目标路径 source:源文件路径,可以是本地文件路径(单机模型),也可以使用puppet:///modules/module_name/file_name target:当ensure为'link'时,target表示path指向的文件是一个符号链接文件,其目标为此target属性所指向的路径;此时content及source属性自动失效 content:直接给出文件内容,支持 , source:从指定位置下载文件 ensure:file,directory,link,present,absent
/*运行外部具有‘幂等性’的命令*/exec /*常用属性*/ command:运行的命令,NameVar creates:此属性指定的文件不存在时才执行命令 cwd:以此属性指定的路径下执行命令 user:以指定用户身份运行命令 group:指定组 onlyif:给定一个测试命令;仅在此命令执行成功($?为0)时才运行command指定的命令 unless:给定一个测试命令;仅在此命令执行失败($?不为0)时才运行command指定的命令 refresh:接收到其他资源发来的refresh通知时,默认是重新执行exec定义的command,refresh属性可改变这种行为,即可指定仅在refresh时运行的命令 refreshonly:仅在收到refresh通知时,才运行此资源 returns:期望的状态返回值,返回非此值时表示命令执行失败 tries:尝试执行的次数 timeout:超时时长 path:指明命令搜索路径,其功能类似PATH环境变量;其值通常为列表['path1','path2',...];日过不定义此属性,则必须指定命令的绝对路径
/*管理周期性任务*/cron /*常用属性*/ ensure:present,absent command:要执行的job hour:时 minute:分 month:月 monthday:日 weekday:周 name:job名称 user:运行时以哪个用户身份运行 environment:运行时的环境变量
/*管理程序包*/package /*常用属性*/ configfiles:替换程序时,原来的配置文件如何处理{keep|replace},默认值是keep ensure:installed,latest,VERSION(2.3.1-2.el7),present,absent name:程序包名称 source:程序包来源,可以是本地文件路径或URL provider:指明程序包的提供者
/*管理服务*/service /*常用属性*/ name:服务名称,NameVar ensure:启动(running),停止(stopped) enable:是否开机自启{true|false} hasrestart:是否支持restart参数 hasstatus:是否支持status参数 path:服务脚本查找路径 pattern:用于搜索此服务相关的进程的模式;当脚本不支持restart/status时,用于确定服务是否处于运行状态 restart:用于服务重启 start,status,stop..