`
zhengdl126
  • 浏览: 2542729 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

puppet模块汇总

 
阅读更多

在磁盘上,一个模块对应一个特殊的目录结构:

  • MODULE_NAME
    • manifests
    • files
    • templates
    • lib
    • tests
    • spec

 

例如,一个名为"my_module"的模块,它的目录结构应该是:

  • my_module - 顶层目录,对应到模块名称。
    • manifests/ - 模块所有的清单。
      • init.pp - 类定义。该文件中的类名必须对应到模块名称。
      • other_class.pp - 类定义。该文件中的类名必须是my_module::other_class。
      • my_defined_type.pp - 函数定义。该文件中的函数名必须是my_module::my_defined_type。
      • implementation/ - 清单子目录。
        • foo.pp - 类定义。该文件中的类名必须是my_module::implementation::foo。
        • bar.pp - 类定义。该文件中的类别必须是my_module::implementation::bar。
    • files/ - 静态文件目录,能够被被代理节点下载。
      • service.conf - 该文件对应的URL是puppet://modules/my_module/service.conf。
    • lib/ - 插件目录 ,例如自定义的行为和自定义的资源类型。查阅"使用插件 "获取更多的细节。
    • templates/ - 清单中用到的模板文件目录 。查阅"模版 "获取更多的细节。
      • component.erp - 在清单中可以使用template('my_module/component.erp')的方式使用该模版。
    • tests/ - 讲述如何使用类和函数的一些实例。
      • init.pp
      • other_class.pp - 清单目录中的每个类和函数在实例目录中都可以有对应的实例。
    • spec/ - 讲述如何使用插件的一些实例。

 

manifests目录中的每个清单文件都只能定义一个类或函数,文件名称要与其中定义的类或函数名称对应。

init.pp是特殊的清单文件,包含的类名同模块名。 其它清单文件包含的类或函数要满足下面的规则:

模块名 :: 其它目录::(如果存在) 文件名(不包含后缀)
my_module ::   other_class
my_module :: implementation:: foo

 

 

 

  • my_module::other_class必须在 my_module/manifests/other_class.pp文件中定义。
  • my_module::implementation::foo必须在 my_module/manifests/implementation/foo.pp定义。

类名中间的双冒号(::)被称为命名空间分割符 (namespace separator)

 

模块名只能包含小写字母、数字和下划线,而且必须以小写字母开头,也就是必须满足正则表达式[a-z][a-z0-9_]*。类名在相同限制上再加上不能包含命名空间分隔符。一些特殊的名称是不允许的,例如:

  • main
  • settings

 

模块中的静态文件都可以通过file 资源类型的source属性访问。每个静态文件都可以映射到一个URL

协议 三个斜杠符号 “modules”/ 模块名/ 文件名
puppet: /// modules/ my_module/ service.conf

例如,puppet:///modules/my_module/service.conf对应的文件是 my_module/files/service.conf。

 

每个ERB模版文件(查阅"模版 "获取更多信息)都可以通过template函数被输出。输出的内容是一个简单的字符串,通常作为file 资源类型的content属性,或者保存到一个变量。

template函数按照下面的方式定位模版文件:

template函数 (‘ 模块名/ 模版名 ’)
template (' my_module/ component.erb ')

例如,template('my_module/component.erb')对应的文件是 my_module/templates/component.erb

分享到:
评论

相关推荐

    Ruby-用来管理SSH的Puppet模块

    1. **Puppet模块结构**:Puppet模块通常包含manifests、lib、spec等目录,每个都有特定的功能。manifests目录下有init.pp文件,这是模块的主入口点,通常定义了该模块的核心类。其他pp文件可能包含了特定功能的定义...

    用于管理systemd的Puppet模块.zip

    这个名为"用于管理systemd的Puppet模块.zip"的压缩包包含了一个名为`puppet-systemd-master`的目录,这表明它是Puppet的一个模块,专门用于管理和配置systemd服务。这个模块通常会包含以下组件: 1. **manifests** ...

    garethr-docker, 用于管理 Docker的Puppet 模块.zip

    garethr-docker, 用于管理 Docker的Puppet 模块 用于安装,配置和管理来自官方知识库( 或者来自 RedHat的 EPEL的Puppet MODULE的)的。 支持这里 MODULE 目前已经被测试:Debian 8.0Debian 7.812.0414

    puppet-ssh, 管理ssh服务器和客户端的Puppet 模块.zip

    puppet-ssh, 管理ssh服务器和客户端的Puppet 模块 Puppet 通过 Puppet 管理SSH客户端和服务器。 源:https://github.com/saz/puppet-ssh要求主机密钥管理的导出资源puppetlabs/stdlibpupp

    puppet-redis, 没有主动开发 redis Puppet 模块.zip

    puppet-redis, 没有主动开发 redis Puppet 模块 Puppet 模块 安装和配置 redis 。用法安装redis服务器和客户端以获得合理的默认值。include redis安装具有版本 2.6.5的redis服务器和客户端。class {

    puppet-module-skeleton, 编写自己的Puppet 模块的一个非常固执的框架.zip

    puppet-module-skeleton, 编写自己的Puppet 模块的... 内置puppet模块工具使得启动模块变得容易,但是框架 MODULE的构建非常简单。 这个骨架真是 opinionated 。 假设你要开始测试( 单元和系统),你需要关心 Puppet 风

    vagrant-librarian-puppet, 一个使用图书管理员 Puppet 安装 Puppet 模块的Vagrant插件.zip

    vagrant-librarian-puppet, 一个使用图书管理员 Puppet 安装 Puppet 模块的Vagrant插件 vagrant-librarian-puppet使用工具安装 Puppet 插件模块的 Vagrant插件插件。要求Vagrant版本 1.2.0或者更高版本。安装vagrant...

    puppet-rvm, 用于安装和使用 RVM ( ruby 版本管理器)的Puppet 模块.zip

    puppet-rvm, 用于安装和使用 RVM ( ruby 版本管理器)的Puppet 模块 用于 ruby 版本管理器( RVM )的 Puppet 模块这个模块处理安装系统 RVM ( 也称为 root的多用户安装) 并使用它来安装红宝石和 Gems 。 还包括安装和...

    尚未积极开发 - redis puppet 模块.zip

    尚未积极开发 - redis puppet 模块redis puppet 模块安装并配置redis。用法使用合理的默认值安装 redis 服务器和客户端。include redis安装2.6.5版本的redis服务器和客户端。class { 'redis': version => '2.6.5',}...

    puppetlabs-apt, Puppet 模块帮助管理 Apt.zip

    puppetlabs-apt, Puppet 模块帮助管理 Apt apt 目录MODULE 描述 MODULE 做什么,为什么它是有用的。设置apt入门的基础。是什么影响以 apt 开头。用法配置选项和附加功能。添加GPG密钥对backports的优先级进行排序...

    puppet-mesos, 用于管理Mesos节点的Puppet 模块.zip

    puppet-mesos, 用于管理Mesos节点的Puppet 模块 Mesos Puppet 模块 兼容性说明: 当前版本( 0.6. x ) 需要 puppetlabs-apt> = 2.1.0,它具有重构 API ( 如果你不想使用中级 APT repo,那并不重要) 。安装主机

    Puppet运维自动化全部文档

    2. 如何将Puppet模块生成带有箭头关系依赖图 3. 如何从互联网获取 Puppet的各项特殊资源 4. Puppet——Luke Kanies 的钢铁侠 5. 如何根据版本制作属于自己的 puppet yum源 6. 如何从Puppet Forge获取puppet的...

    managedmac, 用于 OS X的全面 Puppet 模块.zip

    managedmac, 用于 OS X的全面 Puppet 模块 managedmac版权所有 2015,西蒙Fraser大学。概述Puppet 类的全面集合和用于管理 OS X的类型。 Puppet 版本 4.x-目前不支持描述这是一个巨大的Puppet 模块。 它把所有的东西...

    puppet-modules:我常用的puppet模块

    在"puppet-modules:我常用的puppet模块"这个主题中,我们可以深入探讨Puppet模块及其在实际工作中的应用。 首先,让我们了解什么是Puppet模块。Puppet模块是Puppet代码的组织单位,它们封装了特定功能或服务的配置...

    puppet-tilde, 用于设置 tilde 样式服务器的Puppet 模块.zip

    puppet-tilde, 用于设置 tilde 样式服务器的Puppet 模块 tilde这是一个实验,alpha Puppet MODULE,用于设置一个Ubuntu服务器风格的tilde.club 。总的来说,在 tilde.town 上的AWS微型运行 Ubuntu 14.04,总有保证...

    puppet-letsencrypt, 安装Letsencrypt客户端和请求证书的Puppet 模块.zip

    puppet-letsencrypt, 安装Letsencrypt客户端和请求证书的Puppet 模块 让我们加密 这里 MODULE 安装让我们加密来自源的客户端,并允许你申请证书。支持这里 MODULE 要求 Puppet> = 4.7.0. 目前只是为了使用Debian和on...

    Puppet 模块用于管理 Redis.zip

    金宝博官方网站木偶Redis 示例用法独立include redis主节点class { 'redis': bind => '10.0.1.1',}带有身份验证class { 'redis': bind => '10.0.1.1', masterauth => 'secret',}从节点class { 'redis': bind => '...

    puppet-tomcat-module:Puppet 模块安装 Tomcat

    Puppet Tomcat 模块 介绍 这个 Puppet 模块安装 Tomcat(定制的或干净的)并可以在其上部署包 安装 将此存储库克隆到 puppet 模块目录中的 tomcat 目录中 git clone ...

Global site tag (gtag.js) - Google Analytics