📜  Puppet-清单文件

📅  最后修改于: 2020-10-31 14:05:13             🧑  作者: Mango


在Puppet中,所有使用Ruby编程语言编写并以.pp扩展名保存的程序都称为manifests 。一般而言,所有旨在创建或管理任何目标主机的Puppet程序都称为清单。用Puppet编写的所有程序都遵循Puppet编码风格。

Puppet的核心是资源的声明方式以及这些资源如何表示其状态。在任何清单中,用户都可以拥有使用类和定义分组在一起的不同种类资源的集合。

在某些情况下,Puppet清单甚至可以具有条件语句以实现所需的状态。但是,归根结底,要确保以正确的方式定义和使用所有资源,并且定义的清单在转换为目录后应用时能够执行为其设计的任务。

清单文件工作流程

人偶清单包含以下组件-

  • 文件(这些是纯文件,与Puppet无关,仅是将它们拾起并放在目标位置)

  • 资源资源

  • 模板(可用于在节点上构造配置文件)。

  • 节点(与客户端节点有关的所有定义均在此处定义)

  • 班级

注意事项

  • 在Puppet中,所有清单文件均使用Ruby作为其编码语言,并以.pp扩展名保存。

  • Puppet启动时,许多清单中的“导入”语句用于加载文件。

  • 为了导入目录中包含的所有文件,可以以其他方式使用import语句,例如import’clients / *’。这将导入该目录内的所有.pp文件。

表现

写作清单

使用变量

在编写清单时,用户可以在清单中的任何点定义新变量或使用现有变量。木偶支持不同类型的变量,但他们几个经常使用如字符串和字符串数组。除此之外,还支持其他格式。

字符串变量示例

$package = "vim"  

package {  $package: 
   ensure => "installed" 
}

使用循环

当一个人希望对同一组代码进行多次迭代直到满足定义的条件时,将使用循环。它们还用于执行具有不同值集的重复性任务。为10种不同的事物创建10个任务。一个人可以创建一个任务,然后使用循环用一个要安装的不同软件包重复该任务。

最常见的是,使用数组重复具有不同值的测试。

$packages = ['vim', 'git', 'curl']  

package { $packages: 
   ensure => "installed" 
}

使用条件

Puppet支持大多数条件结构,这些条件结构可以在传统编程语言中找到。条件可用于动态定义是执行特定任务还是应执行一组代码。像if / else和case语句。另外,像execute这样的条件也将支持与condition一样的属性,但仅接受命令输出作为条件。

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!': }
}