CentOS 8 上的 Chef 初学者指南

什么是厨师?

Chef 是一个开源配置管理 DevOps 工具,用于配置和管理基础架构中的多个系统。 使用 Chef,我们可以使用所谓的食谱和食谱来自动化和加速管理我们环境中的多个系统。 通过使用 Chef,我们可以将环境中的每个系统调整到我们想要的状态,这是我们使用食谱中的代码定义的。 在此过程中,使用 Chef 不断测试和部署代码。

值得注意的是,Chef 是用于配置管理的工具之一。 在某种程度上,Chef 正在对我们环境中的节点进行编程控制。 有些人会争辩说它更倾向于开发人员,而它的竞争对手 Puppet 更倾向于系统管理员。 阅读有关配置管理工具(Ansible、Chef、SaltStack 和 Puppet)比较的更多信息。

食谱和食谱

在 Chef 的核心,我们有食谱。 配方是用 Ruby 编写的代码,它包含我们要部署的各种配置。 我们可以将这些配方与其他组件(例如属性、文件、库等)组合成构建说明书(我们的工作站),然后我们可以将其部署到节点上。

Chef 的几个优点是庞大的支持社区和出色的在线文档。 这有助于用户找到广泛可用的食谱,因为 Chef 是开源软件。

Knife 是一个命令行工具,可以在食谱、食谱和 Chef 服务器之间进行通信(中继 chef-repo 的内容)。 更重要的是,Knife 还允许我们管理节点、cookbook、环境、角色、数据包、资源以及节点上的 chef-client 安装。

厨师设置

Chef 设置由我们要管理的三个主要组件组成:

  • 厨师工作站
  • 厨师基础设施服务器
  • 厨师节点

在 Chef 工作站内,我们可以创建食谱和食谱来配置和管理我们的基础设施。 然后,我们可以使用 Knife 将这些食谱和食谱上传到 Infra 服务器。

Chef Infra 服务器是工作站和节点之间的“桥梁”。 在可以本地或远程托管的 Infra 服务器上,我们可以存储食谱和食谱并将它们部署在节点上。

Chef 节点是我们要配置和管理的基础架构上的主机。 在节点上运行的 Chef 客户端服务支持 Chef Infra 服务器与我们要部署和管理的节点之间的通信。

在今天 example,我们将介绍在 CentOS 8 上安装 Chef。在继续之前,请确保您满足一些基本先决条件:

  • 足够的系统资源(检查官方系统要求)
  • 确保网络和防火墙设置正确。
  • 在您的系统上启用 NTP(网络时间协议)

如何在 CentOS 8 上安装 Chef Infra 服务器

作为第一步,我们可以使用该命令导航到我们的 /tmp/ 目录。

cd /tmp/

之后,我们就可以下载最新的 RPM 包了。

 [root@chefserver tmp]# curl -O https://packages.chef.io/files/stable/chef-server/14.0.65/el/7/chef-server-core-14.0.65-1.el7.x86_64.rpm
  % Total % Received % Xferd  Average Speed   Time Time  Time  Current
                              Dload  Upload   Total   Spent Left  Speed
100  241M  100  241M 0  0   840k   0  0:04:54  0:04:54 --:--:--  767k 

或者,您可以 从网站下载软件包 然后将其上传到将运行 Infra Server 的系统。

下载完成后,我们可以使用以下命令安装RPM包。

[root@chefserver tmp]# rpm -Uvh chef-server-core-14.0.65-1.el7.x86_64.rpm
warning: chef-server-core-14.0.65-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
Verifying...                       ################################# [100%]
Preparing...                       ################################# [100%]
Updating / installing...
   1:chef-server-core-14.0.65-1.el7   ################################# [100%]

配置厨师

RPM 安装完成后,我们可以通过运行 reconfigure 命令使说明书可用。

[root@chefserver]# chef-server-ctl reconfigure
 
Documentation: https://docs.chef.io/server_overview/
Patents:    https://www.chef.io/patents
 
+---------------------------------------------+
         Chef License Acceptance
 
Before you can continue, 3 product licenses
must be accepted. View the license at
https://www.chef.io/end-user-license-agreement/
 
Licenses that need accepting:
  * Chef Infra Server
  * Chef Infra Client
  * Chef InSpec
 
Do you accept the 3 product licenses (yes/no)?
 
> yes
 
Running handlers:
Running handlers complete
Chef Infra Client finished, 410/878 resources updated in 03 minutes 22 seconds
Chef Server Reconfigured!

reconfigure 命令的输出可能非常大,因此我们只粘贴了产品许可证接受提示和最终输出。 请注意,运行重新配置命令可能需要几分钟才能完成(如我们的 example),因为必须更新资源。

此外,chef-server-ctl 用于配置 Infra 服务器、服务、用户、组织等。

重新配置命令完成后,我们可以使用以下命令查看可用软件列表。

[root@chefserver]# chef-server-ctl service-list
bookshelf*
elasticsearch*
nginx*
oc_bifrost*
oc_id*
opscode-erchef*
postgresql*
redis_lb*

创建管理员用户

该过程的下一步是创建 Chef 管理员/用户。 为此,我们可以使用以下命令。

chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename FILE_NAME

在我们的 example,我们将输入以下信息。

root@chefserver]# chef-server-ctl user-create tom Thomas Janson [email protected] 'us3str0ngp4$$w0rd_!' --filename /home/tom/tjanson.pem

管理用户

我们可以使用以下子命令来管理我们的用户。

user-create
user-delete
user-edit
user-list
user-show

创建用户后,我们可以继续使用以下语法创建组织。

sudo chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem

我们的信息 example 在下面。

[root@chefserver]# chef-server-ctl org-create BYNSS 'Liquid Web' --association_user tom --filename /home/tom/org-validator.pem

子命令的语法 管理您的组织类似于管理用户。

结论

在今天的文章中,我们介绍了 Chef 的理论基础以及如何在 CentOS 8 上安装 Chef。我们建议通过 Chef的官方文档 并滚动浏览我们广泛的知识库,以获取有关 Chef 和许多其他相关主题的更多信息和教程。

立即致电 1.800.580.4985 联系我们,与知识渊博的解决方案提供商交谈,他们可以为您提供所需的信息,以便立即做出明智的决定。

太忙没时间说话? 点击 这里 打开与我们的快速聊天以了解更多信息。

想通过电子邮件查看更多信息,您可以在闲暇时查看? 立即给我们发送电子邮件,以获得最适合您需求的产品的实用建议。

我们期待您的回音!