📜  puppet清单

📅  最后修改于: 2021-01-08 04:58:13             🧑  作者: Mango

人偶清单

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

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

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

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

清单组件

人偶清单包含以下组件:

  • 文件:文件是纯文本文件,可以直接在您的clients客户端上部署。例如yum.conf,httpd.con等。
  • 资源:资源是我们需要评估或更改的元素。资源可以是包,文件等。
  • 模板:用于在节点上创建配置文件,以后我们可以重复使用。
  • 节点:此处定义了与客户端相关的所有信息和定义的代码块。
  • 类:类用于对不同类型的资源进行分组。

写作清单

使用变量

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

在上面的代码中,通知是资源,消息是属性。消息具有以逗号分隔其值的属性,这是在Perl和其他脚本语言中识别键值对的一种非常通用的方式。

创建清单,并在该清单中编写以上脚本。首先,您必须切换到root用户。

nikita@puppetClient:~$ sudo su
root@puppetClient:~# vi helloworld.pp


在这里,我们可以看到清单是扩展名为.pp的文本文件。我们可以使用任何编辑器使用任何文本编辑器来创建或修改清单。

应用清单

木偶的主要品质是易于测试代码。这样,无需处理复杂的测试环境,即可处理人偶清单。

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