puppet 入口文件site.pp 和init.pp 的使用

注:所有的puppet节点,资源配置都可以在site.pp 和 init.pp 中配置,但是,puppet配置并不仅仅是一种配置规则,它还是一种语言—puppet语言,为了易维护和易编写,我们使用模块化module

一、site.pp 入口文件
  • site.pp 是 puppet 的主入口文件
1、import 节点文件
  • import 可以引用外部 .pp 文件,限于puppet3之前版本
  • 在puppet3以上版本勉强也可以使用,但会出一些问题
# pwd
/etc/puppet/manifests

# cat site.pp 
import 'nodes/*'

在nodes/ 下配置node.pp 节点文件
2、include 节点模块

在puppet3以上版本,import被认为是deprecated,客户端自动同步时,会生成lock文件,无法同步(注意是 “自动”同步时,假如没有lock文件,是可以手动同步的,而且也不会生成lock文件,但是我们用puppet的意义就在于 “自动”)

语法检测
puppet parser validate /etc/puppet/manifests/site.pp

Warning: The use of 'import' is deprecated at /etc/puppet/manifests/site.pp:3. See http://links.puppetlabs.com/puppet-import-deprecation
   (at /usr/lib/ruby/site_ruby/1.8/puppet/parser/parser_support.rb:110:in `import')

解决方法:使用include
- include是引用模块,和模块中的类的
- 在模块目录 /etc/puppet/modules 下创建一个nodes 模块

# cd /etc/puppet/modules
# tree nodes/
nodes/
└── manifests
    ├── game_master_node.pp
    ├── init.pp
    └── puppet.pp
  • 在init.pp 中使用 include 引用此模块即可
# cat site.pp 
include nodes
二、init.pp 入口文件
1、目录结构
  • init.pp 是模块的主入口文件

以tools 模块为例

# cd /etc/puppet/modules
# tree tools/
tools/
├── files
│   └── netcat-0.7.1-1.i386.rpm
├── manifests
│   ├── baseset.pp
│   ├── baseyum.pp
│   ├── epel.pp
│   ├── init.pp
│   └── netcat.pp
└── templates
2、主类定义
  • init.pp 中定义主类,类名为模块名
  • 在init.pp 使用include 包含其它 子类
# cat init.pp 
class tools{

        #include tools::netcat
        include tools::epel
        include tools::baseyum
}
3、子类定义
  • 子类定义在其它 .pp 文件
  • 以子类文件 baseyum.pp 为例:
  • 子类的定义方法是 class 模块名::子类文件名
  • require 依赖其它子类:require => Class[‘tools::epel’],
  • epel 子类必须在init.pp 被引用才可以require
以子类 baseyum为例(安装jq工具,先要安装epel-release源)
# cat 
baseyum.pp 
class tools::baseyum{
package { "jq":
                name => $operatingsystem ?
                {
                CentOS => ["jq"],
                default => ["jq"],
                },
                ensure => installed,
                require => Class['tools::epel'],
        }


}

注:写这个文档前其实是解决了两个问题
- 一个是 site.pp 中import现在不支持了
- 一个是 安装 json 处理工具 jq

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值