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:直接给出文件内容,支持\n,\t
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..

最新文章

  1. Scala 深入浅出实战经典 第47讲:Scala多重界定代码实战及其在Spark中的应用
  2. 2016 版 Laravel 系列入门教程(五)【最适合中国人的 Laravel 教程】
  3. Keil AGDI Header File
  4. Linux内核树的建立-基于ubuntu系统
  5. 再探Tomcat
  6. hadoop错误FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOException There appears to be a gap in the edit log
  7. 可编辑tab选项卡
  8. Frame与启动流程
  9. js中widow.open()方法详解
  10. 文成小盆友python-num11-(2) python操作Memcache Redis
  11. 解决centos无法上传文件和打开文件夹
  12. c#的unity
  13. thinkphp5.1的公共函数库 common.php
  14. PYTHON-匿名函数,递归与二分法,面向过程编程
  15. rhev 虚拟化
  16. Joint Extraction of Entities and Relations论文解析
  17. MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)
  18. 【洛谷】【动态规划(二维)】P1508 Likecloud-吃、吃、吃
  19. 标准I/O库
  20. 36. Valid Sudoku + 37. Sudoku Solver

热门文章

  1. ABP Linq 扩展的 WhereIf 查询内部实现
  2. 一个很笨的方法,写脚本来实现自动调dmp,找有用的数据
  3. 2019-8-31-dotnet-core-发布只带必要的依赖文件
  4. 洛谷P3239 [HNOI2015]亚瑟王
  5. idea-----Idea在不关闭project的情况下进行Import Project
  6. PAT甲级——A1003Emergency
  7. java基础之Integer包装类
  8. Open CASCADE Technology: IGES Support
  9. C开发系列-预处理指令
  10. Redis List类型学习