- Puppet 教程
- Puppet - 首页
- Puppet 基础
- Puppet - 概述
- Puppet - 架构
- Puppet - 安装
- Puppet - 配置
- Puppet - 环境配置
- Puppet - 主服务器
- Puppet - 代理设置
- Puppet - SSL 证书设置
- r10K 的安装与配置
- Puppet - 验证设置
- Puppet - 编码风格
- Puppet - 清单文件
- Puppet - 模块
- Puppet - 文件服务器
- Puppet - Facter 和事实
- 高级 Puppet
- Puppet - 资源
- Puppet - 资源抽象层
- Puppet - 模板
- Puppet - 类
- Puppet - 函数
- Puppet - 自定义函数
- Puppet - 环境
- Puppet - 类型和提供程序
- Puppet - RESTful API
- Puppet - 实时项目
- Puppet 有用资源
- Puppet - 快速指南
- Puppet - 有用资源
- Puppet - 讨论
Puppet - 清单文件
在 Puppet 中,所有使用 Ruby 编程语言编写并以 .pp 扩展名保存的程序都称为 清单(manifests)。一般来说,所有旨在创建或管理任何目标主机机的 Puppet 程序都称为清单。所有用 Puppet 编写的程序都遵循 Puppet 编码风格。
Puppet 的核心是资源的声明方式以及这些资源如何表示其状态。在任何清单中,用户都可以拥有各种资源的集合,这些资源使用类和定义组合在一起。
在某些情况下,Puppet 清单甚至可以包含条件语句以实现所需状态。但是,最终一切都归结为确保所有资源都以正确的方式定义和使用,并且在转换为目录后应用的已定义清单能够执行其设计任务。
清单文件工作流程
Puppet 清单包含以下组件:
文件(这些是普通文件,Puppet 与它们无关,只需将它们拾取并放置到目标位置)
资源
模板(这些可用于在节点上构建配置文件)。
节点(此处定义了与客户端节点相关的所有定义)
类
注意事项
在 Puppet 中,所有清单文件都使用 Ruby 作为其编码语言,并以 .pp 扩展名保存。
许多清单中的“导入”语句用于在 Puppet 启动时加载文件。
为了导入目录中包含的所有文件,您可以以另一种方式使用 import 语句,例如 import 'clients/*'。这将导入该目录内所有 .pp 文件。
编写清单
使用变量
在编写清单时,用户可以在清单中的任何位置定义新变量或使用现有变量。Puppet 支持不同类型的变量,但其中一些常用变量例如字符串和字符串数组。除此之外,还支持其他格式。
字符串变量示例
$package = "vim" package { $package: ensure => "installed" }
使用循环
当希望对同一组代码进行多次迭代直到满足定义的条件时,可以使用循环。它们还用于使用不同的值执行重复性任务。为 10 件不同的事情创建 10 个任务。可以创建一个单一任务并使用循环来重复该任务,其中包含想要安装的不同软件包。
最常用的方法是使用数组来使用不同的值重复测试。
$packages = ['vim', 'git', 'curl'] package { $packages: ensure => "installed" }
使用条件语句
Puppet 支持传统编程语言中大多数可找到的条件结构。条件可用于动态定义是否执行特定任务或应执行一组代码。例如 if/else 和 case 语句。此外,像 execute 这样的条件还将支持类似于条件的属性,但仅接受命令输出作为条件。
if $OperatingSystem != 'Linux' { warning('This manifest is not supported on this other OS apart from linux.') } else { notify { 'the OS is Linux. We are good to go!': } }