puppet单机模型

puppet配置

命令

  • facter -p: 显示所有的变量
  • puppet apply [-v] [--noop] [-e 'puppet expression: 一般为include httpd等']
  • puppet module
  • puppet describe [-l] [list]

常用资源

  • file
  • user
  • group
  • exec
  • package
  • service
  • notify

puppet的资源

puppet中的正则表达式的匹配

  • $operatingsystem =~ /(?i-mx:(macox|majaro|debain|gentoo))
  • 上述表达的说明
    • $operatingsystem是puppet的内置变量
    • =~ 是字符串的模式匹配
    • 其中/(?i-mx:): 表示模式匹配, /.../里面写正则表达式
    • 此表达式表示操作系统的名称是否匹配maosx, majaro, debain, gentoo其中的一种
  • /.../是必须的, 里面的(?i-mx:可以不要, 那么就采用默认的

puppet中的语句

  • if 语句
if CONDITION {
    # statement like notice("Hello, World!")
} elsif CONDITION {

} else {

}
  • case 语句

case {
    case1, case2: {

    }
    case3: {

    }
    case 4, case5, case6: {

    }
}
  • selector语句

$rootgroup = $osfamily ? {
        'Solaris'          => 'wheel',
        /(Darwin|FreeBSD)/ => 'wheel',
        default            => 'root',
}

原型为:
variable = $var ? {
    var1 => value1,
    var2 => value2
}

自定义模块

  • 创建一个module_name目录, 在该目录中包含manifests, lib, tests, spec, files, templates目录, 其中在manifests中放的文件是.pp文件, 且和python一样有类似的要求, 需要有一个init.pp文件, 并且在该文件中需要定义一个class, 他的class name需要和module_name一致

  • 下面为一个简单的示例

nginx/
|-- files # 放置普通的文件
|-- lib 
|-- manifests # 放置.pp文件
|   `-- init.pp
|-- spec
|-- templates # 放置嵌入ruby脚本的plain text, 就是里面有 <%= %>等标志的文件
|   `-- nginx.conf
`-- tests

转载于:https://www.cnblogs.com/megachen/p/9622991.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值