Puppet 模块
Puppet 模块是文件、类、模板和资源的集合。每个模块处理基础架构中的特定任务,例如安装和配置软件。
由于模块允许您将代码划分为多个清单,因此它非常有助于组织您的傀儡代码。模块是 puppet 中可重用和可共享的单元。
模块必须安装在 puppet 模块路径中。而模块路径是/etc/puppet/modules目录。
模块配置
我们在任何Puppet模块中都有两个分区,这允许我们定义编码和控制面额。
- 模块搜索路径在 puppetmasterd 或 masterd 中配置,并使用以冒号分隔的目录列表。其他部分使用 modulepath 参数进行配置。 即:
[puppetmasterd] ... modulepath = /var/lib/puppet/modules:/data/puppet/modules
- 第二个分区是 fileserver.conf 中文件服务器模块的访问控制设置。我们不需要为那个模块指定路径,如果你指定了路径,它会给出警告。
模块源
Puppet 允许使用不同的位置来存储模块。我们可以将模块存储在我们机器的不同文件系统中。只有一个条件,模块的所有路径都必须在名为 modulepath 的配置变量中定义。 modulepath 是一个路径变量,puppet 搜索所有模块目录并在启动时加载所有模块目录。
默认路径是:
/etc/puppet/modules:/usr/share/puppet:/var/lib/modules
模块内部组织
在 Puppet 中创建新模块时,它使用相同的结构,并添加以特定目录结构组织的分布式文件、清单、模板和插件,如下面的代码所示。
MODULE_PATH/ downcased_module_name/ files/ manifests/ init.pp lib/ puppet/ parser/ functions provider/ type/ facter/ templates/ README
创建模块后,它会在清单目录中的特定修复位置添加 init.pp 清单文件。 init.pp 是一个默认文件,它首先在任何模块中运行,并包含与该模块相关的所有类的列表。
示例
让我们看一个示例创建一个 autofs 模块,用于安装固定的 auto.homes 映射并从模板生成 auto.master:
class autofs { package { autofs: ensure => latest } service { autofs: ensure => running } file { "/etc/auto.homes": source => "puppet://$servername/modules/autofs/auto.homes" } file { "/etc/auto.master": content => template("autofs/auto.master.erb") } }
文件系统会有以下文件:
MODULE_PATH/ autofs/ manifests/ init.pp files/ auto.homes templates/ auto.master.erb
安装 Puppet 模块
开源 Puppet 有许多预先存在的模块。这些模块由傀儡社区编写和开发。任何人都可以更新预先存在的模块。这些是任何人都可以下载、安装和使用的内置公共模块。 Puppet Forge 中有超过 6,000 多个预先存在的模块。
让我们看看下载和安装这些预先存在的 Puppet 模块的步骤。
在这里,我们将从 Puppet Forge 下载 vim 模块。 Vim 可在 Linux 操作系统 中的免费开源文本编辑器包中使用。
第一步: 点击这里打开官方Puppet伪造页面。
当你点击链接时,它会显示以下页面:
第 2 步: 在搜索栏中,输入要下载的模块的名称。在这里,我们将下载 vim 模块:
步骤 3: 当您点击搜索按钮时,它会显示多个结果。选择合适的。要决定您的选择,您可以单击单个模块以查看完整的详细信息。在我们的例子中,我们将使用 dhoppe vim。
第 4 步: 要下载模块,请点击页面右侧的下载按钮,我们将获得 tarball 格式的模块。
步骤 5: 下载完成后,执行以下命令从 tarball 安装模块:
puppet module install /path/dhoppe-vim-1.4.1.tar.gz
在上面的命令中,'path'是你的tarball所在目录的路径。
我们也可以在线安装puppet模块。
下载和从puppet模块工具安装模块,执行如下命令:
puppet module install dhoppe-vim--version 1.4.1
在 Puppet 中,我们可以在 Facter 的帮助下将多个值作为环境变量。 Facter 是 puppet 的一个工具,用来保持环境级别的变量。它就像 Bash 或 Linux。有时存储在 ...