如何安装和在Ubuntu 14.04使用Cfengine的社区版

介绍

如果您正在寻找一个快速,高度可扩展的配置管理工具为您的IT基础设施,您应该给CFEngine一试。 虽然它提供的功能与其他流行工具(如Puppet和Chef)提供的功能非常相似,但是CFEngine在内存和CPU利用率方面具有小得多的空间,并且通常更快,因为它用C编写,因此运行本机在操作系统上。

在本教程中,您将学习如何在Ubuntu 14.04上安装和使用CFEngine Community Edition 3.6.5。

先决条件

在开始之前,您应该有权访问:

第1步 - 添加CFEngine的软件包存储库

要使用安装最新版本的cfengine的apt-get ,你应该添加cfengine的封装库到您的服务器的存储库列表中。 使用add-apt-repository命令这样做:

sudo add-apt-repository 'deb http://cfengine.com/pub/apt/packages stable main'

第2步 - 添加CFEngine的公共密钥

在您还将CFEngine的公钥添加到APT的信任密钥列表之前,您无法使用上一步中添加的存储库。

使用Cfengine的下载的公钥wget

wget http://cfengine.com/pub/gpg.key -O /tmp/gpg.key

使用apt-key将其添加到可信任的密钥列表。

sudo apt-key add /tmp/gpg.key

第3步 - 安装CFEngine

您现在可以使用apt-get安装Cfengine的社区版。

sudo apt-get update && sudo apt-get install cfengine-community

在继续操作之前,请验证安装:

cf-agent --version

您应该看到以下输出:

cf-agent的输出
CFEngine Core 3.6.5

第4步 - 启动策略集线器

由于我们在本教程中使用单个Ubuntu服务器,因此我们将其用作策略中心和客户端。 要启动CFEngine的策略集线器,您必须使用服务器的IP地址进行引导。

sudo cf-agent --bootstrap your_server_ip

一旦此命令成功完成,您将使CFEngine完全配置并准备在您的服务器上使用。

注意:如果你想使用你的Ubuntu服务器来管理多台机器,你将不得不重复第1步,2和3在每个机器。 但是,在第4步中,要将计算机配置为仅客户端,您应该使用当前Ubuntu服务器的IP地址(即策略集线器的IP地址)来引导计算机。

第5步 - 创建您的第一个策略

要使用CFEngine自动执行系统管理任务,您应该为其创建策略文件。 策略文件用CFEngine自己的DSL(域特定语言)编写。 语言有一个相当陡峭的学习曲线,但执行基本任务很容易。

让我们开始创建一个简单的“Hello World”策略。 使用nano或你喜欢的文本编辑器创建一个名为新文件myPolicy.cf/tmp目录:

nano /tmp/myPolicy.cf

要使用Cfengine的执行的命令应该捆绑在一起进行分组。 包可以是不同类型。 现在,您将创建一个捆绑cf-agent即可乐趣。 要打印一个消息到控制台,该reports应使用的承诺。 因此,将以下代码添加到文件中:

myPolicy.cf
bundle agent SayHello {
    reports:
        "Hello!";
}

保存文件并退出。

现在,您可以使用运行政策cf-agent命令。

sudo cf-agent -b SayHello /tmp/myPolicy.cf

您应该看到以下输出:

cf-agent的输出
R: Hello!

第6步 - 向策略服务器添加策略

在前面的步骤中,您运行政策使用手动cf-agent命令。 要自动运行策略,更重要的是在多台计算机上运行策略,您应该将其添加到策略服务器。 缺省情况下,添加到服务器策略执行一次,每5分钟通过cf-agent

现在让我们写了创建一个文件一个更高级的政策/tmp目录。

使用nano或你喜欢的文本编辑器创建一个名为新文件createFilePolicy.cf

nano /tmp/createFilePolicy.cf

在此策略,您将使用files承诺创建一个文件,并reports承诺显示一个消息,说该文件的创建。

以下策略创建一个名为的空文件hello.txt/tmp目录。 将以下代码添加到策略中:

createFilePolicy.cf
bundle agent CreateHelloFile {
   files:
      "/tmp/hello.txt"
        create => "true";

   reports:
      "File created";
}

保存文件并退出nano

通过键入以下命令运行策略:

sudo cf-agent -b CreateHelloFile /tmp/createFilePolicy.cf

它完成后,您可以运行ls命令来查看hello.txt已创建/tmp

ls /tmp

现在我们知道我们的策略没有任何错误,并正在做它应该做的,让我们将它添加到服务器。

策略服务器从供应的政策/var/cfengine/masterfiles/目录下。 因此,复制createFilePolicy.cfmasterfiles

sudo cp /tmp/createFilePolicy.cf /var/cfengine/masterfiles/

接下来,Cfengine的了解你的政策文件,它里面的捆绑,对它们的引用应加promises.cf ,cfengine的主要政策文件。 使用nano编辑promises.cf

sudo nano /var/cfengine/masterfiles/promises.cf

在末尾添加策略文件的名称inputs列表中。 更改后,列表应如下所示:

promises.cf摘录
inputs => {

    ...

  # List of services here
  "services/file_change.cf",

  "createFilePolicy.cf",
};

确保您不省略行末尾的逗号。

此外,在政策文件中的包的名称应在提到bundlesequence向文件的顶部名单。 添加CreateHelloFile作为最后一个项目bundlesequence

promises.cf摘录
bundlesequence => {

     ...

     # Agent bundle
      cfe_internal_management,   # See cfe_internal/CFE_cfengine.cf
      service_catalogue,
      @(cfengine_enterprise_hub_ha.management_bundles),

      CreateHelloFile,

};

确保您不要在行末尾省略逗号。 保存文件并退出。

您的策略现已添加到策略服务器,并且将每五分钟运行一次。 这意味着,即使你删除/tmp/hello.txt ,Cfengine的会自动重新五分钟后创建它。

如果你想删除的政策,你应该先删除该包,并从政策文件名的名称promises.cf ,然后移动策略文件出的masterfiles目录。

结论

在本教程中,您学习了如何使用CFEngine的软件包存储库在Ubuntu 14.04服务器上安装最新版本的CFEngine Community Edition。 您还学习了如何手动和自动创建和运行简单策略。 现在可以使用CFEngine来管理服务器的配置。

要了解更多关于DSL,请参阅Cfengine的3.6手册

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏