在 Ubuntu 20.04 上安装 Chef 服务器和工作站 |在 Ubuntu 20.04 上安装 Chef 服务器和工作站 |在 Ubuntu 20.04 上安装 Chef 服务器和工作站 |在 Ubuntu 20.04 上安装 Chef 服务器和工作站 |
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Ubuntu 20.04 上安装 Chef 服务器和工作站 |

发表 admin at 2025年2月28日
类别
  • 未分类
标签

欢迎阅读今天关于如何在 Ubuntu 20.04 (Focal Fossa) 上安装 Chef 服务器和工作站的指南。 Chef 是一款功能强大的自动化解决方案,旨在帮助您将基础架构转变为代码。基础设施可以是本地、云或混合环境。借助 Chef,您可以自动化基础架构的部署、配置和管理方式。 Chef 服务器充当您的食谱及其管理的每个节点的信息的中央存储库。

Chef 自动化服务器背后的公司还开发了其他自动化工具,其中包括:

  1. Chef – 基础设施自动化
  2. Habitat – 应用自动化
  3. INSPEC – 合规自动化

按照以下部分中的步骤在 Ubuntu 20.04 Linux 服务器上安装和配置 Chef Server。

第 1 步:更新系统并设置主机名

我们需要更新系统以确保所有安装的软件包都是最新版本。

sudo apt update
sudo apt -y upgrade

设置服务器主机名,该主机名将是部署在 Ubuntu 20.04 上的 Chef 服务器的 DNS 名称。

sudo hostnamectl set-hostname chef-server.computingforgeeks.com

如果您有活动的 DNS 服务器,请相应地设置 A 记录。对于没有 DNS 服务器的安装,请在 /etc/hosts 文件中设置记录:

$ sudo vim /ect/hosts
192.168.200.10 chef-server.example.com

还要在您的 Ubuntu 计算机上安装一些其他基本软件包。

sudo apt -y install curl wget bash-completion

安装这些软件包并升级您的计算机后,我建议您重新启动。

sudo reboot

步骤 2:配置本地邮件中继

Chef 服务器使用电子邮件发送各种事件的通知:

  • 密码重置
  • 用户邀请
  • 故障转移通知
  • 作业失败通知

使用指南在 Chef 服务器上配置本地邮件传输代理:

  • 在 Ubuntu 上将 Postfix 配置为仅发送 SMTP 服务器

步骤 3:配置 NTP 时间同步

Chef 服务器对时钟漂移特别敏感,它要求运行它的系统连接到网络时间协议 (NTP)。

在 Ubuntu 20.04 上安装 chrony 软件包。

sudo apt -y install chrony

设置正确的时区以便自动选择日期。

sudo timedatectl set-timezone Africa/Nairobi

您可以选择限制对 NTP 服务器的访问,例如从您的 Chef 客户端节点,设置如下:

restrict 192.168.18.0 mask 255.255.255.0 nomodify notrap

其中192.168.18.0是您本地网络的IP子网。更改后重新启动 ntp 服务:

sudo systemctl restart chrony

如果您启用了 UFW 防火墙,请不要忘记允许 ntp 端口:

sudo ufw allow ntp

显示 ntp 状态:

sudo chronyc sources

确认时间同步:

$ timedatectl
               Local time: Fri 2020-07-10 20:38:57 EAT
           Universal time: Fri 2020-07-10 17:38:57 UTC
                 RTC time: Fri 2020-07-10 17:38:58
                Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

在 Chef 客户端上,安装 ntp 并将 NTP 服务器设置为 Chef 服务器 IP 地址

sudo apt install chrony
sudo vim /etc/ntp.conf

取消注释 NTP 池服务器行并指定 Chef 服务器 IP 地址

#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

server  192.168.18.39

步骤 4:下载并安装 Chef 服务器包

首先,从 Chef 下载页面检查最新版本的 Chef 服务器

截至撰写本文时,最新版本为 14.11.21。这是我们将下载并安装的包:

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

下载完成后,使用 dpkg 命令安装软件包:

sudo apt install ./chef-server-core_${VERSION}-1_amd64.deb

样品状态:

....
The following NEW packages will be installed:
  chef-server-core
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/246 MB of archives.
After this operation, 956 MB of additional disk space will be used.
Get:1 /home/ubuntu/chef-server-core_14.11.21-1_amd64.deb chef-server-core amd64 14.11.21-1 [246 MB]
Selecting previously unselected package chef-server-core.
(Reading database ... 63527 files and directories currently installed.)
Preparing to unpack .../chef-server-core_14.11.21-1_amd64.deb ...
Unpacking chef-server-core (14.11.21-1) ...
Setting up chef-server-core (14.11.21-1) ...
Thank you for installing Chef Infra Server!

Run 'chef-server-ctl reconfigure' to configure your Chef Infra Server

For more information on getting started see https://docs.chef.io/server/

等待安装完成然后配置 Chef Server:

sudo chef-server-ctl reconfigure

在开始配置之前,您需要接受许可协议。

....
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

Persisting 3 product licenses...
✔ 3 product licenses persisted.

+---------------------------------------------+

创建管理员帐户

格式为:

sudo chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename FILE_NAME
  • RSA 私钥是自动生成的。
  • 这是用户的私钥,应保存到安全位置。
  • 选项--filename将把RSA私钥保存到指定的绝对路径。

例子 :

sudo chef-server-ctl user-create chefadmin Chef Admin \
  [email  'StrongPassword' \
  --filename /home/chefadmin.pem

另外,创建一个组织。语法是:

sudo chef-server-ctl org-create short_name 'full_organization_name' --association_user user_name --filename ORGANIZATION-validator.pem
  • 名称必须以小写字母或数字开头,
  • 全名必须以非空格字符开头
  • --association_user 选项会将 user_name 与 Chef 服务器上的 admins 安全组关联起来。
  • RSA 私钥是自动生成的。这是厨师验证者密钥,应保存到安全位置。
  • --filename 选项会将 RSA 私钥保存到指定的绝对路径。

请参阅下面的示例:

chef-server-ctl org-create mycompany 'Company X, Inc.' \
  --association_user chefadmin \
  --filename /home/mycompany-validator.pem

生成的密钥应位于 /home 目录中

# ls /home/
chefadmin.pem  mycompany-validator.pem

安装 Chef 管理

Chef Manage 是一款高级插件,提供图形用户界面来管理常见的 Chef 服务器任务。最多 25 个节点免费。

让我们安装管理控制台:

sudo chef-server-ctl install chef-manage 
sudo chef-server-ctl reconfigure 
sudo chef-manage-ctl reconfigure

您还可以从 .deb 软件包安装 Chef Manage:

VER="3.2.20"
wget https://packages.chef.io/files/stable/chef-manage/${VER}/ubuntu/18.04/chef-manage_${VER}-1_amd64.deb
sudo apt install -f ./chef-manage_${VER}-1_amd64.deb
sudo chef-manage-ctl reconfigure

所有 Chef Server 服务都将在用户名/组 opscode 下运行。 PostgreSQL 的用户名是 opscode-pgsql。可以从 https://packages.chef.io/ 安装其他软件包

如果您希望使用或已经使用 UFW 防火墙,请通过运行以下命令打开端口 80 和 443:

sudo ufw allow proto tcp from any to any port 80,443

您应该能够通过 https://serverip/login 访问 Chef Web 管理仪表板

使用之前添加的用户名登录。一个新的 Chef 仪表板应该类似于下面

第 5 步:在您的工作站计算机上安装 Chef 开发套件

Chef 工作站是安装 Chef 开发套件的地方。它包含开发和测试基础设施所需的所有工具,由出色的 Chef 社区构建。使用以下指南安装 Chef 开发套件/工作站:

  • 如何在 Ubuntu 上安装 Chef 开发套件/工作站

对于 Arch Linux 用户,请使用:

  • 如何在 Arch Linux 上安装 Chef 开发套件

第6步:在Chef Workstation上配置knife

Knife 是一个命令行工具,提供工作站和 Chef 服务器之间的接口。接下来阅读:

  • 配置 Chef Knife、上传食谱并在 Chef 客户端节点上运行菜谱
©2015-2025 Norria support@norria.com