Puppet清单

本文概述

  • 清单组件
  • 使用清单
  • 例子
在puppet中, 所有程序都是用Ruby编程语言编写的, 并以.pp扩展名添加, 称为清单。 .pp的完整格式是Puppet程序。
清单文件是Puppet程序。这用于管理目标主机系统。所有的Puppet程序都遵循Puppet编码风格。
我们可以在任何清单中使用一组不同种类的资源, 这些资源按定义和类分组。
Puppet清单也支持条件语句。默认清单文件位于/etc/puppet/manifests/site.pp位置。
清单组件 【Puppet清单】Puppet清单包含以下组件:
  • 文件:文件是纯文本文件, 可以直接在你的clients客户端上部署。例如yum.conf, httpd.con等。
  • 资源:资源是我们需要评估或更改的元素。资源可以是包, 文件等。
  • 模板:用于在节点上创建配置文件, 以后我们可以重复使用。
  • 节点:代码块, 此处定义了与客户端有关的所有信息和定义。
  • 类:类用于对不同类型的资源进行分组。
使用清单 使用变量
Puppet提供了许多内置变量, 我们可以在清单中使用它们。以及我们可以创建自己的变量来在Puppet清单中定义。Puppet提供不同类型的变量。一些经常使用的变量是字符串或字符串数??组。
让我们看一个字符串变量的例子:
$package = "vim"package {$package: ensure => "installed" }

使用循环
循环用于多次运行同一组代码, 直到定义的条件变为真为止。要执行循环, 我们可以使用数组。让我们来看一个例子:
$packages = ['vim', 'git', 'curl']package { $packages: ensure => "installed" }

使用条件
Puppet允许我们使用不同类型的条件语句。例如if-else语句, case语句等。让我们来看一个示例:
if $Color != 'White' { warning('This color is not good for wall') } else { notify { 'This color is best for wall': } }

例子 写清单
众所周知, 我们可以创建资源。让我们从通知资源之类的常见资源开始。
notify { 'greeting': message => 'Hello, world!' }

在上面的代码中, 通知是资源, 消息是属性。消息具有以逗号分隔其值的属性, 这是在Ruby, PHP, Perl和其他脚本语言中识别键值对的一种非常通用的方式。
创建清单, 并在该清单中编写以上脚本。首先, 你必须切换到root用户。
nikita@puppetClient:~$ sudo su root@puppetClient:~# vi helloworld.pp

Puppet清单

文章图片
Puppet清单

文章图片
在这里, 我们可以看到清单是扩展名为.pp的文本文件。我们可以使用任何编辑器使用任何文本编辑器来创建或修改清单。
应用清单
Puppet的主要品质是易于测试代码。这样, 无需处理复杂的测试环境, 即可处理Puppet清单。
为了应用清单, puppet使用apply命令, 该命令告诉puppet应用一个单一的puppet清单:
# puppet apply helloworld.pp Notice: Compiled catalog for puppetclient in environment production in 0.03 seconds Notice: Hello, World! Notice: /Stage[main]/Main/Notify[greeting]/message: defined 'message' as 'Hello, World!' Notice: Applied catalog run in 0.01 seconds

Puppet清单

文章图片
在这里, 你可以看到Puppet已成功应用清单。此过程分许多步骤完成:
  • 从清单编译或构建Puppet目录。
  • 利用相关性和订购信息来确定评估顺序。
  • 评估所需的资源, 以决定是否应实施更改。
  • 创建, 更新或删除资源-通知中将生成一条消息。
  • 提供有关目录应用程序的详细输出。

    推荐阅读