如何在Ubuntu 14.04上安装和配置Chef Server
中央Chef服务器是Chef基础结构自动化的核心组件之一。
Central Chef服务器充当代理的单一联系点,以提取适用于他们的配置。
Chef服务器存储食谱,节点的元数据,环境和策略详细信息等。
环境中的每个代理都将配置为与中央Chef服务器联系。
在本文中,我们将介绍在Linux的Ubuntu 14.04发行版上安装和配置此中央Chef服务器的步骤。
在开始之前,让我们了解一下Chef服务器的不同组件。
Chef服务器将自动在服务器上安装以下项目。
- Nginx:Nginx是一个开放源代码的Web服务器,chef将用作前端Web界面。到达Chef服务器的每个HTTP请求实际上都将通过Nginx Web服务器发送。一旦请求到达Nginx Web服务器,Nginx将根据请求的类型重新路由这些请求。例如...如果请求是访问书架,它将被转发到本地主机端口号4321(书架服务将其中监听)。如果是与搜索相关的请求,则Nginx会将其转发到Solr,侦听本地主机端口号8983(所有这些不同的服务均由Chef服务器软件包自动安装,而无需任何用户干预。)
书架是Chef 服务器的组件,所有与食谱有关的内容都存储在这里。
如果我们曾经使用过Puppet配置管理工具,则可以将Cookbook与Puppet的模块进行比较。
- Chef Web界面:这是一个Ruby应用程序,侦听localhost端口号9462. 管理员可以使用此界面配置和管理Chef服务器的不同方面。像在哪个节点上应用哪些食谱等。该组件也是Chef 自动安装的,无需任何人工干预(我们将在短期内进行安装)。访问Chef用户界面的请求也将首先到达Nginx Web服务器,然后将其重定向到运行ui应用程序的端口号9462.
请记住以下事实:Chef Web界面仅对前25个节点免费。
我们需要为使用更多数量的节点而使用此Web界面付费。
但是..我们可以让Chef 在没有Web界面的情况下工作。
实际上,也可以使用命令行来执行此Web界面公开的操作和功能。
- Chef API:这是Chef的核心API。 opscode工程团队使用Erland编程语言对API进行了重新设计。因此,这被称为“ Erchef”。此API服务在端口号8000上运行。其中Nginx还将请求重定向到本地主机端口号8000。
- Solr:此组件为Chef提供索引和搜索功能。所有节点的详细信息和属性都存储在名为Apache Solr的开源搜索引擎中。 Solr服务以搜索api的形式将自己暴露给使用端口号8983的Chef。Nginx将搜索请求转发到此本地主机端口号8983.
- PostgreSQL数据库服务器:这是一种流行的开源关系数据库服务器。 Chef将其用作存储事物的主要数据库。 PostgreSQL服务器侦听端口号5432.
- RabbitMQ:它用作Chef的消息队列组件。从RabbitMQ抢来的东西可以索引到solr搜索引擎。
如前所述...上述组件均无需手动配置。
所有这些组件均由Chef安装脚本自动为我们配置。
安装Chef服务器
步骤1:第一步是验证服务器上是否配置了正确的主机名。
主机名FQDN实际上是可解析的。
这非常必要,建议为Chef 服务器准备适当的DNS条目。
如果我们不在生产环境中,也可以使用hosts文件来完成它。
登录到服务器,然后运行以下命令来设置正确的主机名。
hostname chef.example.com echo "chef.example.com" > /etc/hostname
在上面的示例中,仅将example.com用于演示目的。
我们必须将其替换为适用于环境的域名。
对于此示例,我们将在/etc/hosts文件中添加一个条目。
如前所述,对于生产环境,我们需要为Chef 服务器FQDN提供正确的DNS条目。
10.12.2.188 chef.example.com
将以上条目添加到/etc/hosts文件中。
在上面的示例中,我使用了10.12.2.188,因为这是我服务器的IP地址。
在/etc/hostfile中输入条目时,将其替换为服务器的IP地址。
如果我们输入的内容正确,则应该能够ping Chef.example.com(将其替换为dns名称)。
步骤2:第二步是确保时间同步。
因此,我们需要在服务器上配置NTP。
可以通过在Ubuntu中安装ntp软件包来完成此操作,如下所示。
apt-get update apt-get install ntp service ntp start
步骤3:下一步是从官方下载Chef服务器软件包并进行安装。
为此,请访问下面的Chef 服务器下载页面URL。
下载Chef for Ubuntu 64位
https://downloads.chef.io/chef-server/ubuntu/
右键单击64位软件包,然后选择“复制链接地址”,如下所示。
我们可以在此处输入上一步中创建的用户名,以及我们创建的密码。
输入凭据后,将收到以下消息。
创建组织后,我们将被重定向到Chef管理界面,我们可以其中管理与该特定组织相关的节点,菜谱和其他详细信息。