mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-13 22:30:37 +08:00
PUB:20150717 How to Configure Chef (server or client) on Ubuntu 14.04 or 15.04
@geekpi
This commit is contained in:
parent
fabf565e6e
commit
abc7c38b3a
@ -1,6 +1,6 @@
|
|||||||
如何在Ubuntu 14.04/15.04上配置Chef(服务端/客户端)
|
如何在 Ubuntu 上安装配置管理系统 Chef (大厨)
|
||||||
================================================================================
|
================================================================================
|
||||||
Chef是对于信息技术专业人员的一款配置管理和自动化工具,它可以配置和管理你的设备无论它在本地还是在云上。它可以用于加速应用部署并协调多个系统管理员和开发人员的工作,涉及到成百甚至上千的服务器和程序来支持大量的客户群。chef最有用的是让设备变成代码。一旦你掌握了Chef,你可以获得一流的网络IT支持来自动化管理你的云端设备或者终端用户。
|
Chef是面对IT专业人员的一款配置管理和自动化工具,它可以配置和管理你的基础设施,无论它在本地还是在云上。它可以用于加速应用部署并协调多个系统管理员和开发人员的工作,这涉及到可支持大量的客户群的成百上千的服务器和程序。chef最有用的是让基础设施变成代码。一旦你掌握了Chef,你可以获得一流的网络IT支持来自动化管理你的云端基础设施或者终端用户。
|
||||||
|
|
||||||
下面是我们将要在本篇中要设置和配置Chef的主要组件。
|
下面是我们将要在本篇中要设置和配置Chef的主要组件。
|
||||||
|
|
||||||
@ -10,34 +10,13 @@ Chef是对于信息技术专业人员的一款配置管理和自动化工具,
|
|||||||
|
|
||||||
我们将在下面的基础环境下设置Chef配置管理系统。
|
我们将在下面的基础环境下设置Chef配置管理系统。
|
||||||
|
|
||||||
注:表格
|
|管理和配置工具:Chef||
|
||||||
<table width="701" style="height: 284px;">
|
|-------------------------------|---|
|
||||||
<tbody>
|
|基础操作系统|Ubuntu 14.04.1 LTS (x86_64)|
|
||||||
<tr>
|
|Chef Server|Version 12.1.0|
|
||||||
<td width="660" colspan="2"><strong>管理和配置工具:Chef</strong></td>
|
|Chef Manage|Version 1.17.0|
|
||||||
</tr>
|
|Chef Development Kit|Version 0.6.2|
|
||||||
<tr>
|
|内存和CPU|4 GB , 2.0+2.0 GHz|
|
||||||
<td width="220"><strong>基础操作系统</strong></td>
|
|
||||||
<td width="492">Ubuntu 14.04.1 LTS (x86_64)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="220"><strong>Chef Server</strong></td>
|
|
||||||
<td width="492">Version 12.1.0</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="220"><strong>Chef Manage</strong></td>
|
|
||||||
<td width="492">Version 1.17.0</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="220"><strong>Chef Development Kit</strong></td>
|
|
||||||
<td width="492">Version 0.6.2</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td width="220"><strong>内存和CPU</strong></td>
|
|
||||||
<td width="492">4 GB , 2.0+2.0 GHZ</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Chef服务端的安装和配置 ###
|
### Chef服务端的安装和配置 ###
|
||||||
|
|
||||||
@ -45,15 +24,15 @@ Chef服务端是核心组件,它存储配置以及其他和工作站交互的
|
|||||||
|
|
||||||
我使用下面的命令来下载和安装它。
|
我使用下面的命令来下载和安装它。
|
||||||
|
|
||||||
**1) 下载Chef服务端**
|
####1) 下载Chef服务端
|
||||||
|
|
||||||
root@ubuntu-14-chef:/tmp# wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.1.0-1_amd64.deb
|
root@ubuntu-14-chef:/tmp# wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.1.0-1_amd64.deb
|
||||||
|
|
||||||
**2) 安装Chef服务端**
|
####2) 安装Chef服务端
|
||||||
|
|
||||||
root@ubuntu-14-chef:/tmp# dpkg -i chef-server-core_12.1.0-1_amd64.deb
|
root@ubuntu-14-chef:/tmp# dpkg -i chef-server-core_12.1.0-1_amd64.deb
|
||||||
|
|
||||||
**3) 重新配置Chef服务端**
|
####3) 重新配置Chef服务端
|
||||||
|
|
||||||
现在运行下面的命令来启动所有的chef服务端服务,这步也许会花费一些时间,因为它有许多不同一起工作的服务组成来创建一个正常运作的系统。
|
现在运行下面的命令来启动所有的chef服务端服务,这步也许会花费一些时间,因为它有许多不同一起工作的服务组成来创建一个正常运作的系统。
|
||||||
|
|
||||||
@ -64,35 +43,35 @@ chef服务端启动命令'chef-server-ctl reconfigure'需要运行两次,这
|
|||||||
Chef Client finished, 342/350 resources updated in 113.71139964 seconds
|
Chef Client finished, 342/350 resources updated in 113.71139964 seconds
|
||||||
opscode Reconfigured!
|
opscode Reconfigured!
|
||||||
|
|
||||||
**4) 重启系统 **
|
####4) 重启系统
|
||||||
|
|
||||||
安装完成后重启系统使系统能最好的工作,不然我们或许会在创建用户的时候看到下面的SSL连接错误。
|
安装完成后重启系统使系统能最好的工作,不然我们或许会在创建用户的时候看到下面的SSL连接错误。
|
||||||
|
|
||||||
ERROR: Errno::ECONNRESET: Connection reset by peer - SSL_connect
|
ERROR: Errno::ECONNRESET: Connection reset by peer - SSL_connect
|
||||||
|
|
||||||
**5) 创建心的管理员**
|
####5) 创建新的管理员
|
||||||
|
|
||||||
运行下面的命令来创建一个新的用它自己的配置的管理员账户。创建过程中,用户的RSA私钥会自动生成并需要被保存到一个安全的地方。--file选项会保存RSA私钥到指定的路径下。
|
运行下面的命令来创建一个新的管理员账户及其配置。创建过程中,用户的RSA私钥会自动生成,它需要保存到一个安全的地方。--file选项会保存RSA私钥到指定的路径下。
|
||||||
|
|
||||||
root@ubuntu-14-chef:/tmp# chef-server-ctl user-create kashi kashi kashi kashif.fareedi@gmail.com kashi123 --filename /root/kashi.pem
|
root@ubuntu-14-chef:/tmp# chef-server-ctl user-create kashi kashi kashi kashif.fareedi@gmail.com kashi123 --filename /root/kashi.pem
|
||||||
|
|
||||||
### Chef服务端的管理设置 ###
|
### Chef服务端的管理设置 ###
|
||||||
|
|
||||||
Chef Manage是一个针对企业Chef用户的管理控制台,它启用了可视化的web用户界面并可以管理节点、数据包、规则、环境、配置和基于角色的访问控制(RBAC)
|
Chef Manage是一个针对企业Chef用户的管理控制台,它提供了可视化的web用户界面,可以管理节点、数据包、规则、环境、Cookbook 和基于角色的访问控制(RBAC)
|
||||||
|
|
||||||
**1) 下载Chef Manage**
|
####1) 下载Chef Manage
|
||||||
|
|
||||||
从官网复制链接病下载chef manage的安装包。
|
从官网复制链接并下载chef manage的安装包。
|
||||||
|
|
||||||
root@ubuntu-14-chef:~# wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/opscode-manage_1.17.0-1_amd64.deb
|
root@ubuntu-14-chef:~# wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/opscode-manage_1.17.0-1_amd64.deb
|
||||||
|
|
||||||
**2) 安装Chef Manage**
|
####2) 安装Chef Manage
|
||||||
|
|
||||||
使用下面的命令在root的家目录下安装它。
|
使用下面的命令在root的家目录下安装它。
|
||||||
|
|
||||||
root@ubuntu-14-chef:~# chef-server-ctl install opscode-manage --path /root
|
root@ubuntu-14-chef:~# chef-server-ctl install opscode-manage --path /root
|
||||||
|
|
||||||
**3) 重启Chef Manage和服务端**
|
####3) 重启Chef Manage和服务端
|
||||||
|
|
||||||
安装完成后我们需要运行下面的命令来重启chef manage和服务端。
|
安装完成后我们需要运行下面的命令来重启chef manage和服务端。
|
||||||
|
|
||||||
@ -101,28 +80,27 @@ Chef Manage是一个针对企业Chef用户的管理控制台,它启用了可
|
|||||||
|
|
||||||
### Chef Manage网页控制台 ###
|
### Chef Manage网页控制台 ###
|
||||||
|
|
||||||
我们可以使用localhost访问网页控制台以及fqdn,并用已经创建的管理员登录
|
我们可以使用localhost或它的全称域名来访问网页控制台,并用已经创建的管理员登录
|
||||||
|
|
||||||
![chef amanage](http://blog.linoxide.com/wp-content/uploads/2015/07/5-chef-web.png)
|
![chef amanage](http://blog.linoxide.com/wp-content/uploads/2015/07/5-chef-web.png)
|
||||||
|
|
||||||
**1) Chef Manage创建新的组织 **
|
####1) Chef Manage创建新的组织
|
||||||
|
|
||||||
你或许被要求创建新的组织或者接受其他阻止的邀请。如下所示,使用缩写和全名来创建一个新的组织。
|
你或许被要求创建新的组织,或者也可以接受其他组织的邀请。如下所示,使用缩写和全名来创建一个新的组织。
|
||||||
|
|
||||||
![Create Org](http://blog.linoxide.com/wp-content/uploads/2015/07/7-create-org.png)
|
![Create Org](http://blog.linoxide.com/wp-content/uploads/2015/07/7-create-org.png)
|
||||||
|
|
||||||
**2) 用命令行创建心的组织 **
|
####2) 用命令行创建新的组织
|
||||||
|
|
||||||
We can also create new Organization from the command line by executing the following command.
|
|
||||||
我们同样也可以运行下面的命令来创建新的组织。
|
我们同样也可以运行下面的命令来创建新的组织。
|
||||||
|
|
||||||
root@ubuntu-14-chef:~# chef-server-ctl org-create linux Linoxide Linux Org. --association_user kashi --filename linux.pem
|
root@ubuntu-14-chef:~# chef-server-ctl org-create linux Linoxide Linux Org. --association_user kashi --filename linux.pem
|
||||||
|
|
||||||
### 设置工作站 ###
|
### 设置工作站 ###
|
||||||
|
|
||||||
我们已经完成安装chef服务端,现在我们可以开始创建任何recipes、cookbooks、属性和其他任何的我们想要对Chef的修改。
|
我们已经完成安装chef服务端,现在我们可以开始创建任何recipes([基础配置元素](https://docs.chef.io/recipes.html))、cookbooks([基础配置集](https://docs.chef.io/cookbooks.html))、attributes([节点属性](https://docs.chef.io/attributes.html))和其他任何的我们想要对Chef做的修改。
|
||||||
|
|
||||||
**1) 在Chef服务端上创建新的用户和组织 **
|
####1) 在Chef服务端上创建新的用户和组织
|
||||||
|
|
||||||
为了设置工作站,我们用命令行创建一个新的用户和组织。
|
为了设置工作站,我们用命令行创建一个新的用户和组织。
|
||||||
|
|
||||||
@ -130,25 +108,23 @@ We can also create new Organization from the command line by executing the follo
|
|||||||
|
|
||||||
root@ubuntu-14-chef:~# chef-server-ctl org-create blogs Linoxide Blogs Inc. --association_user bloger --filename blogs.pem
|
root@ubuntu-14-chef:~# chef-server-ctl org-create blogs Linoxide Blogs Inc. --association_user bloger --filename blogs.pem
|
||||||
|
|
||||||
**2) 下载工作站入门套件 **
|
####2) 下载工作站入门套件
|
||||||
|
|
||||||
Now Download and Save starter-kit from the chef manage web console on a workstation and use it to work with Chef server.
|
在工作站的网页控制台中下载保存入门套件,它用于与服务端协同工作
|
||||||
在工作站的网页控制台中下面并保存入门套件用于与服务端协同工作
|
|
||||||
|
|
||||||
![Starter Kit](http://blog.linoxide.com/wp-content/uploads/2015/07/8-download-kit.png)
|
![Starter Kit](http://blog.linoxide.com/wp-content/uploads/2015/07/8-download-kit.png)
|
||||||
|
|
||||||
**3) 点击"Proceed"下载套件 **
|
####3) 下载套件后,点击"Proceed"
|
||||||
|
|
||||||
![starter kit](http://blog.linoxide.com/wp-content/uploads/2015/07/9-download-kit.png)
|
![starter kit](http://blog.linoxide.com/wp-content/uploads/2015/07/9-download-kit.png)
|
||||||
|
|
||||||
### 对于工作站的Chef开发套件设置 ###
|
### 用于工作站的Chef开发套件设置 ###
|
||||||
|
|
||||||
Chef开发套件是一款包含所有开发chef所需工具的软件包。它捆绑了由Chef开发的带Chef客户端的工具。
|
Chef开发套件是一款包含开发chef所需的所有工具的软件包。它捆绑了由Chef开发的带Chef客户端的工具。
|
||||||
|
|
||||||
**1) 下载 Chef DK**
|
####1) 下载 Chef DK
|
||||||
|
|
||||||
We can Download chef development kit from its official web link and choose the required operating system to get its chef development tool kit.
|
我们可以从它的官网链接中下载开发包,并选择操作系统来下载chef开发包。
|
||||||
我们可以从它的官网链接中下载开发包,并选择操作系统来得到chef开发包。
|
|
||||||
|
|
||||||
![Chef DK](http://blog.linoxide.com/wp-content/uploads/2015/07/10-CDK.png)
|
![Chef DK](http://blog.linoxide.com/wp-content/uploads/2015/07/10-CDK.png)
|
||||||
|
|
||||||
@ -156,13 +132,13 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
|
|
||||||
root@ubuntu-15-WKS:~# wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.6.2-1_amd64.deb
|
root@ubuntu-15-WKS:~# wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.6.2-1_amd64.deb
|
||||||
|
|
||||||
**1) Chef开发套件安装**
|
####2) Chef开发套件安装
|
||||||
|
|
||||||
使用dpkg命令安装开发套件
|
使用dpkg命令安装开发套件
|
||||||
|
|
||||||
root@ubuntu-15-WKS:~# dpkg -i chefdk_0.6.2-1_amd64.deb
|
root@ubuntu-15-WKS:~# dpkg -i chefdk_0.6.2-1_amd64.deb
|
||||||
|
|
||||||
**3) Chef DK 验证**
|
####3) Chef DK 验证
|
||||||
|
|
||||||
使用下面的命令验证客户端是否已经正确安装。
|
使用下面的命令验证客户端是否已经正确安装。
|
||||||
|
|
||||||
@ -195,7 +171,7 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
Verification of component 'chefspec' succeeded.
|
Verification of component 'chefspec' succeeded.
|
||||||
Verification of component 'package installation' succeeded.
|
Verification of component 'package installation' succeeded.
|
||||||
|
|
||||||
**连接Chef服务端**
|
####4) 连接Chef服务端
|
||||||
|
|
||||||
我们将创建 ~/.chef并从chef服务端复制两个用户和组织的pem文件到chef的文件到这个目录下。
|
我们将创建 ~/.chef并从chef服务端复制两个用户和组织的pem文件到chef的文件到这个目录下。
|
||||||
|
|
||||||
@ -209,7 +185,7 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
kashi.pem 100% 1678 1.6KB/s 00:00
|
kashi.pem 100% 1678 1.6KB/s 00:00
|
||||||
linux.pem 100% 1678 1.6KB/s 00:00
|
linux.pem 100% 1678 1.6KB/s 00:00
|
||||||
|
|
||||||
** 编辑配置来管理chef环境 **
|
####5) 编辑配置来管理chef环境
|
||||||
|
|
||||||
现在使用下面的内容创建"~/.chef/knife.rb"。
|
现在使用下面的内容创建"~/.chef/knife.rb"。
|
||||||
|
|
||||||
@ -231,13 +207,13 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
|
|
||||||
root@ubuntu-15-WKS:/# mkdir cookbooks
|
root@ubuntu-15-WKS:/# mkdir cookbooks
|
||||||
|
|
||||||
**测试Knife配置**
|
####6) 测试Knife配置
|
||||||
|
|
||||||
运行“knife user list”和“knife client list”来验证knife是否在工作。
|
运行“knife user list”和“knife client list”来验证knife是否在工作。
|
||||||
|
|
||||||
root@ubuntu-15-WKS:/.chef# knife user list
|
root@ubuntu-15-WKS:/.chef# knife user list
|
||||||
|
|
||||||
第一次运行的时候可能会得到下面的错误,这是因为工作站上还没有chef服务端的SSL证书。
|
第一次运行的时候可能会看到下面的错误,这是因为工作站上还没有chef服务端的SSL证书。
|
||||||
|
|
||||||
ERROR: SSL Validation failure connecting to host: 172.25.10.173 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
|
ERROR: SSL Validation failure connecting to host: 172.25.10.173 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
|
||||||
ERROR: Could not establish a secure connection to the server.
|
ERROR: Could not establish a secure connection to the server.
|
||||||
@ -245,24 +221,24 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
If your Chef Server uses a self-signed certificate, you can use
|
If your Chef Server uses a self-signed certificate, you can use
|
||||||
`knife ssl fetch` to make knife trust the server's certificates.
|
`knife ssl fetch` to make knife trust the server's certificates.
|
||||||
|
|
||||||
要从上面的命令中恢复,运行下面的命令来获取ssl整数并重新运行knife user和client list,这时候应该就可以了。
|
要从上面的命令中恢复,运行下面的命令来获取ssl证书,并重新运行knife user和client list,这时候应该就可以了。
|
||||||
|
|
||||||
root@ubuntu-15-WKS:/.chef# knife ssl fetch
|
root@ubuntu-15-WKS:/.chef# knife ssl fetch
|
||||||
WARNING: Certificates from 172.25.10.173 will be fetched and placed in your trusted_cert
|
WARNING: Certificates from 172.25.10.173 will be fetched and placed in your trusted_cert
|
||||||
directory (/.chef/trusted_certs).
|
directory (/.chef/trusted_certs).
|
||||||
|
|
||||||
knife没有办法验证这些是有效的证书。你应该在下载时候验证这些证书的真实性。
|
knife没有办法验证这些是有效的证书。你应该在下载时候验证这些证书的真实性。
|
||||||
|
|
||||||
在/.chef/trusted_certs/ubuntu-14-chef_test_com.crt下面添加ubuntu-14-chef.test.com的证书。
|
在/.chef/trusted_certs/ubuntu-14-chef_test_com.crt下面添加ubuntu-14-chef.test.com的证书。
|
||||||
|
|
||||||
在上面的命令取得ssl证书后,接着运行下面的命令。
|
在上面的命令取得ssl证书后,接着运行下面的命令。
|
||||||
|
|
||||||
root@ubuntu-15-WKS:/.chef#knife client list
|
root@ubuntu-15-WKS:/.chef#knife client list
|
||||||
kashi-linux
|
kashi-linux
|
||||||
|
|
||||||
### 与chef服务端交互的新的节点 ###
|
### 配置与chef服务端交互的新节点 ###
|
||||||
|
|
||||||
节点是执行所有设备自动化的chef客户端。因此是时侯添加新的服务端到我们的chef环境下,在配置完chef-server和knife工作站后配置新的节点与chef-server交互。
|
节点是执行所有基础设施自动化的chef客户端。因此,在配置完chef-server和knife工作站后,通过配置新的与chef-server交互的节点,来添加新的服务端到我们的chef环境下。
|
||||||
|
|
||||||
我们使用下面的命令来添加新的节点与chef服务端工作。
|
我们使用下面的命令来添加新的节点与chef服务端工作。
|
||||||
|
|
||||||
@ -291,16 +267,16 @@ We can Download chef development kit from its official web link and choose the r
|
|||||||
172.25.10.170 to file /tmp/install.sh.26024/metadata.txt
|
172.25.10.170 to file /tmp/install.sh.26024/metadata.txt
|
||||||
172.25.10.170 trying wget...
|
172.25.10.170 trying wget...
|
||||||
|
|
||||||
之后我们可以在knife节点列表下看到新创建的节点,也会新节点列表下创建新的客户端。
|
之后我们可以在knife节点列表下看到新创建的节点,它也会在新节点创建新的客户端。
|
||||||
|
|
||||||
root@ubuntu-15-WKS:~# knife node list
|
root@ubuntu-15-WKS:~# knife node list
|
||||||
mydns
|
mydns
|
||||||
|
|
||||||
相似地我们只要提供ssh证书通过上面的knife命令来创建多个节点到chef设备上。
|
相似地我们只要提供ssh证书通过上面的knife命令,就可以在chef设施上创建多个节点。
|
||||||
|
|
||||||
### 总结 ###
|
### 总结 ###
|
||||||
|
|
||||||
本篇我们学习了chef管理工具并通过安装和配置设置浏览了它的组件。我希望你在学习安装和配置Chef服务端以及它的工作站和客户端节点中获得乐趣。
|
本篇我们学习了chef管理工具并通过安装和配置设置基本了解了它的组件。我希望你在学习安装和配置Chef服务端以及它的工作站和客户端节点中获得乐趣。
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -308,7 +284,7 @@ via: http://linoxide.com/ubuntu-how-to/install-configure-chef-ubuntu-14-04-15-04
|
|||||||
|
|
||||||
作者:[Kashif Siddique][a]
|
作者:[Kashif Siddique][a]
|
||||||
译者:[geekpi](https://github.com/geekpi)
|
译者:[geekpi](https://github.com/geekpi)
|
||||||
校对:[校对者ID](https://github.com/校对者ID)
|
校对:[wxy](https://github.com/wxy)
|
||||||
|
|
||||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||||
|
|
Loading…
Reference in New Issue
Block a user