个性化阅读
专注于IT技术分析

Puppet清单

本文概述

在puppet中, 所有程序都是用Ruby编程语言编写的, 并以.pp扩展名添加, 称为清单。 .pp的完整格式是Puppet程序。

清单文件是Puppet程序。这用于管理目标主机系统。所有的Puppet程序都遵循Puppet编码风格。

我们可以在任何清单中使用一组不同种类的资源, 这些资源按定义和类分组。

Puppet清单也支持条件语句。默认清单文件位于/etc/puppet/manifests/site.pp位置。

清单组件

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目录。
  • 利用相关性和订购信息来确定评估顺序。
  • 评估所需的资源, 以决定是否应实施更改。
  • 创建, 更新或删除资源-通知中将生成一条消息。
  • 提供有关目录应用程序的详细输出。

赞(0)
未经允许不得转载:srcmini » Puppet清单

评论 抢沙发

评论前必须登录!