如何在 Debian 12 上安装 Chef Infra 服务器如何在 Debian 12 上安装 Chef Infra 服务器如何在 Debian 12 上安装 Chef Infra 服务器如何在 Debian 12 上安装 Chef Infra 服务器
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 12 上安装 Chef Infra 服务器

在此页面上

  1. 先决条件
  2. 设置 FQDN
  3. 同步服务器之间的时间

    1. 在 Chef 服务器上设置 Chrony
    2. 关于厨师工作站和客户端
  4. 安装和配置 Chef 服务器

    1. 通过 DEB 安装 Chef 服务器
    2. 配置用户和组织
  5. 安装和配置 Chef 工作站

    1. 通过 DEB 安装 Chef 工作站
    2. 配置 Chef 工作站
  6. 配置 Knife Utility - Chef 服务器的接口
  7. 从 Chef Workstation 增强客户端/节点
  8. 结论

Chef 是 Debian Linux 上的一款功能强大的自动化软件,专为管理和配置大型服务器环境而设计。它通过使用代码促进应用程序和基础设施的部署、配置和管理,促进基础设施即代码 (IaC) 原则。 Chef 使用用 Ruby 编写的特定于域的语言 (DSL) 来定义指定服务器应如何配置的“食谱”和“食谱”。这使得系统管理员和 DevOps 团队能够自动执行重复性任务,确保跨环境的一致性,并轻松扩展基础设施。 Chef 支持广泛的资源和集成,使其成为管理 Debian、Ubuntu Linux 和其他平台上的复杂环境的多功能工具。

在本教程中,我们将向您展示如何在 Debian 12 服务器上逐步安装 Chef Server 和 Chef Workstation。

先决条件

要完成本指南,请确保您具备以下条件:

  • 3 台 Debian 12 服务器。
  • 具有管理员权限的非 root 用户。

设置 FQDN

在第一步中,您将为 Chef 服务器、Chef 工作站和客户端配置 FQDN(完全限定域名)。

运行以下 hostnamectl 命令为每台服务器设置 FQDN。

sudo hostnamectl set-hostname chef.howtoforge.local
sudo hostnamectl set-hostname workstation.howtoforge.local
sudo hostnamectl set-hostname client.howtoforge.local

使用以下 nano 编辑器命令打开每台服务器上的 /etc/hosts 文件。

sudo nano /etc/hosts

插入以下配置,并确保使用您的设置更改详细的 IP 地址、主机名和 FQDN。

192.168.5.15     chef.howtoforge.local     chef
192.168.5.20     workstation.howtoforge.local     workstation
192.168.5.21     client.howtoforge.local     client

完成后保存并关闭文件。

现在运行以下命令以确保每个 fqdn 都指向服务器的正确 IP 地址。

sudo hostname -f
ping -c3 chef.howtoforge.local

同步服务器之间的时间

配置 FQDN 后,您将确保每个服务器的时间同步。在这种情况下,您将在 Chef 服务器上设置 NTP 服务器并配置 Chef 工作站和客户端以连接到它。

在 Chef 服务器上设置 Chrony

在 Chef 服务器上,运行以下命令来更新存储库包索引并安装 Chrony 包。

sudo apt update
sudo apt install chrony -y

安装 Chrony 后,使用以下 nano 编辑器命令打开文件 /etc/chrony/chrony.conf。

sudo nano /etc/chrony/chrony.conf

插入以下配置以设置默认 NTP 服务器。请务必选择离您最近的服务器位置,请查看 ntp.org 了解详细信息。

此外,您还将在 Chef 服务器中将 Chrony 配置为 Chef 工作站和客户端的 NTP 服务器。

pool 0.nl.pool.ntp.org iburst
pool 1.nl.pool.ntp.org iburst
pool 2.nl.pool.ntp.org iburst
pool 3.nl.pool.ntp.org iburst
allow 192.168.5.0/24

完成后保存并关闭文件。

接下来,运行以下命令设置默认时区并启用 NTP。

sudo timedatectl set-timezone Europe/Amsterdam
sudo timedatectl set-ntp true

然后,重新启动 chrony 服务以应用更改。

sudo systemctl restart chrony

最后,使用以下命令验证 NTP 源。

chronyc sources

您应该收到如下所示的输出:

关于厨师工作站和客户端

现在转到 Chef 工作站和客户端计算机。然后,运行以下命令来更新存储库并在两台服务器上安装 Chrnoy。

sudo apt update
sudo apt install chrony -y

之后,使用以下 nano 编辑器命令修改 Chrony 配置 /etc/chrony/chrony.conf。

sudo nano /etc/chrony/chrony.conf

注释默认 NTP 源以将其禁用,然后输入 Chef 服务器 IP 地址作为 NTP 服务器,如下所示。

# default chrony
server 192.168.5.15 iburst

完成后保存并关闭文件。

接下来,运行以下命令设置默认时区并启用 NTP。

sudo timedatectl set-timezone Europe/Amsterdam
sudo timedatectl set-ntp true

然后,重新启动 Chrony 服务以应用您的更改。

sudo systemctl restart chrony

最后,使用以下命令验证 Chef 工作站和客户端上的 NTP 源。

chronyc sources

您应该看到 Chef 工作站和客户端的默认 NTP 源都是 Chef 服务器,其 IP 地址为 192.168.5.15。

安装和配置 Chef 服务器

现在您已经配置了 FQDN 并在服务器之间同步了时间,您就可以安装 Chef 了。首先,您将安装和配置 Chef Server。

Chef Server 是一个连接各个部分的中央 Chef 生态系统,因此您必须首先对其进行配置。在本例中,我们将使用具有 8 GB RAM 的 Chef 服务器。

通过 DEB 安装 Chef 服务器

转到 Chef 服务器并运行以下命令来下载 Chef 服务器包。在此示例中,您将使用 Chef 15。

VERSION="15.7.0"
wget https://packages.chef.io/files/stable/chef-server/${VERSION}/ubuntu/22.04/chef-server-core_${VERSION}-1_amd64.deb

现在使用以下命令通过 .deb 文件安装 Chef 服务器。安装将需要几分钟时间。

sudo apt install ./chef-server-core_*.deb

安装完成后,您应该会收到确认信息“感谢您安装 Chef Infra Server”。

接下来,运行下面的 Chef-server-ctl 命令来重新配置您的 Chef Server 安装。

sudo chef-server-ctl reconfigure

当询问时,输入 Y 以确认 Chef 许可证。

Chef 服务器初始化将开始。完成后,您应该会收到确认信息,例如“Chef Infra Server Reconfigured”。

配置用户和组织

现在您已经重新配置了 Chef Server,您将在 Chef Server 安装上设置用户和组织。

使用以下命令创建一个新目录~/.chef。

mkdir -p ~/.chef

然后,使用以下命令创建一个新的 Chef 用户。在此示例中,我们将创建一个新用户alice,密码为password,TLS 证书将存储在~/.chef/alice.pem。

sudo chef-server-ctl user-create alice Alice Wonderland [email  'password' --filename ~/.chef/alice.pem

现在使用以下命令创建一个新组织。请务必更改组织名称、关联用户和 TLS 证书路径的详细信息。

sudo chef-server-ctl org-create hworgz 'HW Corp, Inc.' --association_user alice --filename ~/.chef/hworgz-validator.pem

一切完成后,使用以下命令验证 Chef 服务器上的列表用户和组织。

sudo chef-server-ctl user-list
sudo chef-server-ctl org-list

如果一切顺利,您应该会看到 Chef 服务器,其中包含用户 alice 和组织 hworgz,如下所示。

此外,您还可以使用以下命令检查生成的 TLS 证书。您应该会看到 alice.pem 和 hworgz-validator.pem 证书。

ls ~/.chef/

至此,Chef Server 的安装就完成了。

安装和配置 Chef 工作站

安装 Chef 服务器后,您将安装 Chef 工作站。厨师工作站是管理员/用户用来创建和测试食谱和菜谱的节点。

在此示例中,您将在具有 2 GB RAM 的 Debian 12 服务器上安装 Chef 工作站。

通过 DEB 安装 Chef 工作站

移至 Chef 工作站并运行以下命令,使用下面的 wget 命令下载 Chef 工作站包。在本例中,您将安装 Chef Workstation 23。

VERSION="23.7.1042"
wget https://packages.chef.io/files/stable/chef-workstation/${VERSION}/debian/11/chef-workstation_${VERSION}-1_amd64.deb

下载后,运行以下命令将 Chef 工作站包安装到您的系统。

sudo apt install ./chef-workstation_*.deb

完成后,您应该会收到确认信息“感谢您安装 Chef Workstation”。

最后,运行以下命令来验证 Chef 版本。

chef -v

以下输出确认您已在 Debian 服务器上安装了 Chef 23。

配置 Chef 工作站

现在您已经安装了 Chef 工作站,接下来将配置您的安装。

首先,使用以下命令生成新的 SSH 密钥。出现提示时输入 ro 设置密钥的密码。

ssh-keygen -t ed25519

现在运行以下命令将密钥上传到 Chef 服务器 chef.howtoforge.local。这将用于从 Chef 服务器检索 TLS 证书到工作站。

ssh-copy-id [email 

当询问时输入您的密码。

接下来,使用以下命令生成新的 Chef 存储库。在此示例中,您将创建一个新的 Chef 存储库 test-repo。

chef generate repo test-repo

现在创建一个新目录 ~/test-repo/.chef 并移入其中。

mkdir ~/test-repo/.chef; cd ~/test-repo/.chef

使用以下命令将 TLS 证书从 Chef 服务器复制到工作站的当前目录。

scp [email :~/.chef/*.pem .

完成后,检查 ~/test-repo/.chef 目录中的文件列表。

ls ~/test-repo/.chef/

确保您的 TLS 证书在 Chef 工作站服务器上可用。

配置 Knife Utility - Chef 服务器的接口

现在您已经安装了 Chef 工作站,您将在 Chef 工作站上配置 Knife。 Knife 是一种用于与 Chef Server 通信的命令行工具,使您能够管理节点、菜谱、菜谱、角色和环境。

在 Chef 工作站计算机上,移动到 ~/test-repo/.chef 目录并使用以下 nano 编辑器命令创建一个新文件 knife.rb。

cd ~/test-repo/.chef
nano knife.rb

插入以下 Ruby 脚本,并确保更改用户、组织、TLS 证书文件和 Chef 服务器 URL 的详细信息。

current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                'alice'
client_key               "alice.pem"
validation_client_name   'hworgz-validator'
validation_key           "hworgz-validator.pem"
chef_server_url          'https://chef.howtoforge.local/organizations/hworgz'
cache_type               'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path            ["#{current_dir}/../cookbooks"]

完成后保存并关闭文件。

现在移动到 ~/test-repo 目录并使用下面的 Knife 命令从 Chef Server 检索证书。

cd ~/test-repo
knife ssl fetch

完成后,您应该得到以下输出。

从现在开始,您可以使用 Knife 与 Chef 服务器和 Bootstrap 客户端计算机进行通信。

knife client list

从 Chef Workstation 增强客户端/节点

在下一节中,您将了解如何使用 Knife 从 Chef 工作站通过 SSH 自动引导节点 192.168.5.21。

首先,移动到 ~/test-repo/.chef 目录。

cd ~/test-repo/.chef

运行下面的 Knife 命令来引导客户端 192.168.5.21。请务必使用您的信息更改用户 root 和密码 password。

在此示例中,您将添加节点 192.168.5.21 并将其命名为客户端。

knife bootstrap 192.168.5.21 -U root -P password --node-name client

输入 Y 以继续并继续该过程。

完成后,您应该会收到“基础设施阶段完成”确认消息。

现在使用以下命令验证 Chef 环境中的可用节点列表。如果一切顺利,您应该看到客户端节点可用。

knife node list

然后,使用下面的 Knife 命令验证客户端节点的详细信息。

knife node show client

在以下输出中,您可以看到带有 FQDN client.howtoforge.local 的客户端节点 Debian 12 计算机。

最后,您现在可以通过下面的 Knife 命令在客户端节点上运行任意命令。

knife ssh "client" "whoami;top" -u alice

出现提示时,输入 Chef 用户 alice 的密码。如果命令成功,您应该得到以下信息。

结论

恭喜!您现在已经在 Debian 12 服务器上完成了 Chef Server 和 Workstation 的安装。您还学习了如何使用 Knife 命令行工具通过 SSH 引导客户端节点。 现在。您可以添加新的客户端节点并设置用于安装应用程序的说明书和配方。

©2015-2025 艾丽卡 support@alaica.com