前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上安装和使用CFEngine Community Edition

如何在Ubuntu 14.04上安装和使用CFEngine Community Edition

原创
作者头像
姚啊姚
修改2018-09-29 17:08:22
1.1K0
修改2018-09-29 17:08:22
举报
文章被收录于专栏:云计算教程系列

介绍

如果您正在为IT基础架构寻找快速且高度可扩展的配置管理工具,那么您应该尝试使用CFEngine。虽然它提供的功能与其他流行工具(如Puppet和Chef)提供的功能非常相似,但CFEngine在内存和CPU利用率方面的占用空间要小得多,并且通常更快,因为它是用C语言编写的,因此在操作系统上的运行时原生的。

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

课程准备

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

  • 运行Ubuntu 14.04的服务器,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 一个sudo非root用户。

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

要使用 apt-get来安装最新版本的CFEngine,您应该将CFEngine的软件包存储库添加到服务器的存储库列表中。使用add-apt-repository命令执行此操作:

代码语言:javascript
复制
sudo add-apt-repository 'deb http://cfengine.com/pub/apt/packages stable main'

第2步 - 添加CFEngine的公钥

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

使用wget来下载CFEngine的公钥。

代码语言:javascript
复制
wget http://cfengine.com/pub/gpg.key -O /tmp/gpg.key

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

代码语言:javascript
复制
sudo apt-key add /tmp/gpg.key

第3步 - 安装CFEngine

您现在可以使用apt-get来安装CFEngine Community Edition。

代码语言:javascript
复制
sudo apt-get update && sudo apt-get install cfengine-community

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

代码语言:javascript
复制
cf-agent --version

您应该看到以下输出:

代码语言:javascript
复制
CFEngine Core 3.6.5

第4步 - 启动Policy Hub

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

代码语言:javascript
复制
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目录中:

代码语言:javascript
复制
nano /tmp/myPolicy.cf

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

代码语言:javascript
复制
bundle agent SayHello {
    reports:
        "Hello!";
}

保存文件并退出。

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

代码语言:javascript
复制
sudo cf-agent -b SayHello /tmp/myPolicy.cf

您应该看到以下输出:

代码语言:javascript
复制
R: Hello!

步骤6 - 将策略添加到策略服务器

在上一步中,您使用该cf-agent命令手动运行策略。如果要自动运行策略 - 更重要的是,要在在多台计算机上自动运行 - 您应该将其添加到策略服务器。默认情况下,添加到服务器的策略每5分钟由cf-agent执行一次。

现在让我们编写一个稍微更高级的策略,在/tmp目录中创建一个文件。

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

代码语言:javascript
复制
nano /tmp/createFilePolicy.cf

在此策略中,您将使用files来创建文件,并且reports会显示一条消息,声明该文件已创建。

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

代码语言:javascript
复制
bundle agent CreateHelloFile {
   files:
      "/tmp/hello.txt"
        create => "true";
​
   reports:
      "File created";
}

保存文件并退出nano

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

代码语言:javascript
复制
sudo cf-agent -b CreateHelloFile /tmp/createFilePolicy.cf

完成后,您可以运行该ls命令以查看在/tmphello.txt是否已被创建。

代码语言:javascript
复制
ls /tmp

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

策略服务器从/var/cfengine/masterfiles/目录中提供其策略。因此,请复制createFilePolicy.cfmasterfiles

代码语言:javascript
复制
sudo cp /tmp/createFilePolicy.cf /var/cfengine/masterfiles/

接下来,为了让CFEngine了解您的策略文件及其中的包,应该将对它们的引用添加到CFEngine的主策略文件promises.cf中。使用nano编辑promises.cf

代码语言:javascript
复制
sudo nano /var/cfengine/masterfiles/promises.cf

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

代码语言:javascript
复制
inputs => {
​
    ...
​
  # List of services here
  "services/file_change.cf",
​
  "createFilePolicy.cf",
};

确保不要在行尾省略逗号。

此外,应在文件顶部的bundlesequence列表中提及策略文件中的包的名称。添加CreateHelloFile作为bundlesequence最后一项:

代码语言:javascript
复制
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来管理服务器的配置。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How to Install and Use CFEngine Community Edition on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 课程准备
  • 第1步 - 添加CFEngine的软件包存储库
  • 第2步 - 添加CFEngine的公钥
  • 第3步 - 安装CFEngine
  • 第4步 - 启动Policy Hub
  • 第5步 - 创建您的第一个政策
  • 步骤6 - 将策略添加到策略服务器
  • 结论
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档