如何在Ubuntu 17.04上安装和配置Chef

Chef是一个免费的开源配置管理工具。 它是用Ruby和Erlang编写的。 Chef可以轻松地与基于云的平台(如AWS,OpenStack或RackSpace等)集成,以自动创建和管理服务器。 当组织增长并且节点数量增加时,系统管理员自身难以管理每个节点。 在这种情况下,Chef来抢救。 Chef生态系统由Chef服务器,Chef工作站和Chef节点三部分组成。 此DevOps工具允许系统管理员从中央位置管理多个节点。

在本教程中,我们将在Ubuntu 17.04(Zesty Zapus)中安装最新版本的Chef。

条件

  • 最小Ubuntu 17.04服务器。
  • 根权限 本指南以root用户身份编写,如果以sudo用户身份登录,请运行sudo -i
  • 指向您的服务器的域名。

更新基本系统

在安装任何软件包之前,建议您使用以下命令更新软件包和存储库。

apt update && apt -y upgrade

更新系统后,继续进行。

更新主机名

Chef需要在服务器上设置可解析的主机名。 主机名必须是FQDN或完全限定域名,例如, chef.yourdomain.com 。 要在服务器上设置主机名,请运行以下命令。

hostname 'chef.yourdomain.com'

chef.yourdomain.com替换为您的实际域名。 另外,更新/ etc / hostname文件中的主机名

echo "chef.yourdomain.com" | tee /etc/hostname

通过运行以下命令,将主机名的IP地址添加到/ etc / hosts文件中。

echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts

192.168.1.1替换为您的实际公用IP地址。

设置NTP

网络时间协议服务器的NTP需要同步服务器的时钟。 Chef需要连接的系统运行NTP,因为它对时钟变化非常敏感。 NTP在UDP端口123上运行。 要在服务器上安装NTP,请运行以下命令。

apt install ntp

通过运行以下命令启动NTP。

systemctl start ntp

要启用NTP在引导时自动启动,请运行以下命令。

systemctl enable ntp

您可以通过运行以下命令来验证NTP是否同步了时钟。

ntpq -p

您应该看到以下输出:

root@chef:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000
#hydrogen.consta 129.6.15.29      2 u   34   64   17  174.427   -9.145   0.751
#helium.constant 128.59.0.245     2 u   30   64   17  176.812   -8.253   0.726
#lithium.constan 18.26.4.105      2 u   33   64   17  175.435    0.357   0.684
#ntppublic.uzh.c 130.60.159.8     3 u   24   64   17  256.712    8.982   0.927
+x.ns.gin.ntt.ne 249.224.99.213   2 u   25   64   17    0.872   -1.636   0.805
-borris.netwurx. 144.92.9.22      2 u   22   64   17  163.284    0.848   1.141
-ns1.do.steersne 195.66.241.3     2 u   23   64   17  222.882   -3.528   0.965
-sircabirus.von- 36.224.68.195    2 u   28   64   17  266.005    3.502   1.173
*chobi.paina.net 131.113.192.40   2 u   26   64   17    1.280   -1.852   1.046
#213.251.53.11   193.62.22.74     2 u   27   64   17  246.940    9.920   1.405
-flightplandatab 210.240.96.206   2 u   27   64   17  258.052   -1.338   2.789
-time.platformni 118.211.218.186  2 u   27   64   17    1.592    3.394   1.127

下载并安装Chef

通过运行以下命令,为Ubuntu下载Chef Server软件包。

wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb

您可以随时通过访问Chef下载页面找到最新版本的Chef的链接 。 现在,通过运行以下命令安装软件包。

dpkg -i chef-server-*.deb

Chef现在安装在您的系统上。 使用前需要配置服务器。

配置Chef

现在,您可以运行以下命令来启动所需的所有服务。

chef-server-ctl reconfigure

上述命令将需要几分钟的时间才能完成,因为它可以安装和配置Chef服务器的所有组件。 一旦成功完成,您应该在最后收到以下消息。

Chef Client finished, 491/1096 resources updated in 03 minutes 13 seconds
Chef Server Reconfigured!

您可以通过运行以下步骤检查服务是否成功启动:

chef-server-ctl status

您应该看到以下输出。

root@chef:~# chef-server-ctl status
run: bookshelf: (pid 6030) 87s; run: log: (pid 6047) 86s
run: nginx: (pid 5859) 91s; run: log: (pid 6387) 82s
run: oc_bifrost: (pid 5766) 92s; run: log: (pid 5842) 92s
run: oc_id: (pid 5849) 91s; run: log: (pid 5854) 91s
run: opscode-erchef: (pid 6244) 84s; run: log: (pid 6108) 85s
run: opscode-expander: (pid 5926) 88s; run: log: (pid 6010) 87s
run: opscode-solr4: (pid 5895) 89s; run: log: (pid 5912) 89s
run: postgresql: (pid 5718) 93s; run: log: (pid 5745) 92s
run: rabbitmq: (pid 5239) 101s; run: log: (pid 5099) 105s
run: redis_lb: (pid 5036) 121s; run: log: (pid 6361) 83s

安装Web管理控制台

Chef向管理员Chef服务器提供基于Web的图形用户界面。 您可以使用基于GUI的控制台来管理数据包,属性,运行列表,角色,环境和Recipe。

要安装Chef Manage,请运行以下命令:

chef-server-ctl install chef-manage

重新配置Chef服务器,方法是:

chef-server-ctl reconfigure

最后,通过运行以下命令配置Chef Manage。

chef-manage-ctl reconfigure

上述命令将要求您接受许可协议。 您可以选择在运行期间接受许可协议,或者直接运行以下命令来自动接受许可证。

chef-manage-ctl reconfigure --accept-license

创建管理员和组织

在登录并使用管理控制台之前,您需要创建一个用户和组织。 在用户和组织创建过程中,它会自动生成连接到工作站和客户端所需的RSA私钥。 您可以创建一个新的.chef目录来存储密钥。 运行命令创建一个新的目录来存储私钥。

mkdir ~/.chef

现在通过运行以下命令创建一个新的管理员。

chef-server-ctl user-create admin Chef Administrator chef@yourdomain.com StrongPassword -f ~/.chef/admin.pem

使用您的首选用户名替换管理员 ,具有姓氏的Chef和姓氏的管理员 chef@yourdomain.com与您的电子邮件和admin.pem应该根据您的用户名。 用强大的密码替换StrongPassword

现在通过运行以下命令创建一个新的组织。

chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem

使用您创建的管理用户,将组织的名称,组织名称和管理员的名称替换为my_org

访问Web控制台

现在,访问Web控制台所需的一切都已安装和配置,您可以通过浏览以下URL访问控制台。

http://Your-Server-IP

如果您配置了域,还可以使用您的域名而不是服务器IP。 您应该看到以下登录屏幕。

使用您创建的用户名和密码登录。 成功登录后,您将看到以下界面。

安装可选插件

您可以启用报告来了解由Chef服务器管理的所有Chef客户端上发生的过程。 您可以通过Chef管理控制台运行报告,以查看Web控制台上的报告。 可以为整个组织生成报告,并且可以为特定节点生成报告。 要安装报告,请运行以下命令。

chef-server-ctl install opscode-reporting

通过运行以下命令重新配置Chef服务器:

chef-server-ctl reconfigure

通过运行以下命令配置报告模块

opscode-reporting-ctl reconfigure

您可以通过运行以下步骤验证报告插件是否已安装并正常工作:

opscode-reporting-ctl test

以类似的方式,您可以安装Chef Push作业来运行作业。 Chef推送作业允许Chef服务器独立于Chef - 客户端运行而独立运行作业。 Chef推送作业使用Chef服务器API和Ruby客户端来启动与Chef服务器的所有连接。 通过运行以下命令安装推送作业。

chef-server-ctl install opscode-push-jobs-server

通过运行以下命令重新配置Chef服务器:

chef-server-ctl reconfigure

通过运行以下命令配置推送作业模块

opscode-push-jobs-server-ctl reconfigure

结论

在本教程中,我们已经学会了在最新版本的Ubuntu上安装最新版本的Chef。 您可以访问Chef网站了解更多关于Chef的信息

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

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

支付宝扫一扫打赏

微信扫一扫打赏