Puppet基础应用

Posted 林纳克斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Puppet基础应用相关的知识,希望对你有一定的参考价值。

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..

 

以上是关于Puppet基础应用的主要内容,如果未能解决你的问题,请参考以下文章

puppet入门与掌握之puppet工作原理(原理篇)

puppet 学习总结——puppet 入门详解

puppet完整模块实例分步解读

puppet介绍

自动化运维工具puppet详解

Puppet module命令参数介绍