阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何在 Ubuntu 上安装配置管理系统 Chef (大厨)

222次阅读
没有评论

共计 7367 个字符,预计需要花费 19 分钟才能阅读完成。

Chef 是面对 IT 专业人员的一款配置管理和自动化工具,它可以配置和管理你的基础设施,无论它在本地还是在云上。它可以用于加速应用部署并协调多个系统管理员和开发人员的工作,这涉及到可支持大量的客户群的成百上千的服务器和程序。chef 最有用的是让基础设施变成代码。一旦你掌握了 Chef,你可以获得一流的网络 IT 支持来自动化管理你的云端基础设施或者终端用户。

下面是我们将要在本篇中要设置和配置 Chef 的主要组件。

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

 

安装 Chef 的要求和版本

我们将在下面的基础环境下设置 Chef 配置管理系统。

管理和配置工具:Chef 
基础操作系统 Ubuntu 14.04.1 LTS (x86_64)
Chef ServerVersion 12.1.0
Chef ManageVersion 1.17.0
Chef Development KitVersion 0.6.2
内存和 CPU4 GB  , 2.0+2.0 GHz

 

Chef 服务端的安装和配置

Chef 服务端是核心组件,它存储配置以及其他和工作站交互的配置数据。让我们在他们的官网下载最新的安装文件。

我使用下面的命令来下载和安装它。

 

1) 下载 Chef 服务端

  1. 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 服务端

  1. root@ubuntu-14-chef:/tmp# dpkg -i chef-server-core_12.1.0-1_amd64.deb

 

3) 重新配置 Chef 服务端

现在运行下面的命令来启动所有的 chef 服务端服务,这步也许会花费一些时间,因为它有许多不同一起工作的服务组成来创建一个正常运作的系统。

  1. root@ubuntu-14-chef:/tmp# chef-server-ctl reconfigure

chef 服务端启动命令 ’chef-server-ctl reconfigure’ 需要运行两次,这样就会在安装后看到这样的输出。

  1. ChefClient finished,342/350 resources updated in113.71139964 seconds
  2. opscode Reconfigured!

 

4) 重启系统

安装完成后重启系统使系统能最好的工作,不然我们或许会在创建用户的时候看到下面的 SSL 连接错误。

  1. ERROR:Errno::ECONNRESET:Connection reset by peer - SSL_connect

 

5) 创建新的管理员

运行下面的命令来创建一个新的管理员账户及其配置。创建过程中,用户的 RSA 私钥会自动生成,它需要保存到一个安全的地方。–file 选项会保存 RSA 私钥到指定的路径下。

  1. root@ubuntu-14-chef:/tmp# chef-server-ctl user-create kashi kashi kashi kashif.fareedi@gmail.com kashi123 --filename /root/kashi.pem

 

Chef 服务端的管理设置

Chef Manage 是一个针对企业 Chef 用户的管理控制台,它提供了可视化的 web 用户界面,可以管理节点、数据包、规则、环境、Cookbook 和基于角色的访问控制(RBAC)

 

1) 下载 Chef Manage

从官网复制链接并下载 chef manage 的安装包。

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

使用下面的命令在 root 的家目录下安装它。

  1. root@ubuntu-14-chef:~# chef-server-ctl install opscode-manage --path /root

 

3) 重启 Chef Manage 和服务端

安装完成后我们需要运行下面的命令来重启 chef manage 和服务端。

  1. root@ubuntu-14-chef:~# opscode-manage-ctl reconfigure
  2. root@ubuntu-14-chef:~# chef-server-ctl reconfigure

 

Chef Manage 网页控制台

我们可以使用 localhost 或它的全称域名来访问网页控制台,并用已经创建的管理员登录

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

chef amanage

 

1) Chef Manage 创建新的组织

你或许被要求创建新的组织,或者也可以接受其他组织的邀请。如下所示,使用缩写和全名来创建一个新的组织。

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

Create Org

 

2) 用命令行创建新的组织

我们同样也可以运行下面的命令来创建新的组织。

  1. root@ubuntu-14-chef:~# chef-server-ctl org-create linux LinoxideLinuxOrg.--association_user kashi --filename linux.pem

 

设置工作站

我们已经完成安装 chef 服务端,现在我们可以开始创建任何 recipes(基础配置元素)、cookbooks(基础配置集)、attributes(节点属性)和其他任何的我们想要对 Chef 做的修改。

 

1) 在 Chef 服务端上创建新的用户和组织

为了设置工作站,我们用命令行创建一个新的用户和组织。

  1. root@ubuntu-14-chef:~# chef-server-ctl user-create bloger BlogerKashif bloger.kashif@gmail.com bloger123 --filename bloger.pem
  2. root@ubuntu-14-chef:~# chef-server-ctl org-create blogs LinoxideBlogsInc.--association_user bloger --filename blogs.pem

 

2) 下载工作站入门套件

在工作站的网页控制台中下载保存入门套件,它用于与服务端协同工作

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

Starter Kit

 

3) 下载套件后,点击 ”Proceed”

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

starter kit

 

用于工作站的 Chef 开发套件设置

Chef 开发套件是一款包含开发 chef 所需的所有工具的软件包。它捆绑了由 Chef 开发的带 Chef 客户端的工具。

 

1) 下载 Chef DK

我们可以从它的官网链接中下载开发包,并选择操作系统来下载 chef 开发包。

如何在 Ubuntu 上安装配置管理系统 Chef(大厨)

Chef DK

复制链接并用 wget 下载

  1. root@ubuntu-15-WKS:~# wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.6.2-1_amd64.deb

 

2) Chef 开发套件安装

使用 dpkg 命令安装开发套件

  1. root@ubuntu-15-WKS:~# dpkg -i chefdk_0.6.2-1_amd64.deb

 

3) Chef DK 验证

使用下面的命令验证客户端是否已经正确安装。

  1. root@ubuntu-15-WKS:~# chef verify

  1. Running verification for component 'berkshelf'
  2. Running verification for component 'test-kitchen'
  3. Running verification for component 'chef-client'
  4. Running verification for component 'chef-dk'
  5. Running verification for component 'chefspec'
  6. Running verification for component 'rubocop'
  7. Running verification for component 'fauxhai'
  8. Running verification for component 'knife-spork'
  9. Running verification for component 'kitchen-vagrant'
  10. Running verification for component 'package installation'
  11. Running verification for component 'openssl'
  12. ..............
  13. ---------------------------------------------
  14. Verification of component 'rubocop' succeeded.
  15. Verification of component 'knife-spork' succeeded.
  16. Verification of component 'openssl' succeeded.
  17. Verification of component 'berkshelf' succeeded.
  18. Verification of component 'chef-dk' succeeded.
  19. Verification of component 'fauxhai' succeeded.
  20. Verification of component 'test-kitchen' succeeded.
  21. Verification of component 'kitchen-vagrant' succeeded.
  22. Verification of component 'chef-client' succeeded.
  23. Verification of component 'chefspec' succeeded.
  24. Verification of component 'package installation' succeeded.

 

4) 连接 Chef 服务端

我们将创建 ~/.chef 并从 chef 服务端复制两个用户和组织的 pem 文件到 chef 的文件到这个目录下。

  1. root@ubuntu-14-chef:~# scp bloger.pem blogs.pem kashi.pem linux.pem root@172.25.10.172:/.chef/

  1. root@172.25.10.172's password:
  2. bloger.pem 100% 1674 1.6KB/s 00:00
  3. blogs.pem 100% 1674 1.6KB/s 00:00
  4. kashi.pem 100% 1678 1.6KB/s 00:00
  5. linux.pem 100% 1678 1.6KB/s 00:00

 

5) 编辑配置来管理 chef 环境 **

现在使用下面的内容创建 ”~/.chef/knife.rb”。

  1. root@ubuntu-15-WKS:/.chef# vim knife.rb
  2. current_dir =File.dirname(__FILE__)
  3. log_level :info
  4. log_location STDOUT
  5. node_name "kashi"
  6. client_key "#{current_dir}/kashi.pem"
  7. validation_client_name "kashi-linux"
  8. validation_key "#{current_dir}/linux.pem"
  9. chef_server_url "https://172.25.10.173/organizations/linux"
  10. cache_type 'BasicFile'
  11. cache_options(:path =>"#{ENV['HOME']}/.chef/checksums")
  12. cookbook_path ["#{current_dir}/../cookbooks"]

创建 knife.rb 中指定的“~/cookbooks”文件夹。

  1. root@ubuntu-15-WKS:/# mkdir cookbooks

 

6) 测试 Knife 配置

运行“knife user list”和“knife client list”来验证 knife 是否在工作。

  1. root@ubuntu-15-WKS:/.chef# knife user list

第一次运行的时候可能会看到下面的错误,这是因为工作站上还没有 chef 服务端的 SSL 证书。

  1. 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
  2. ERROR:Couldnot establish a secure connection to the server.
  3. Use`knife ssl check` to troubleshoot your SSL configuration.
  4. If your ChefServer uses a self-signed certificate, you can use
  5. `knife ssl fetch` to make knife trust the server's certificates.

要从上面的命令中恢复,运行下面的命令来获取 ssl 证书,并重新运行 knife user 和 client list,这时候应该就可以了。

  1. root@ubuntu-15-WKS:/.chef# knife ssl fetch
  2. WARNING:Certificatesfrom172.25.10.173 will be fetched and placed in your trusted_cert
  3. directory (/.chef/trusted_certs).

knife 没有办法验证这些是有效的证书。你应该在下载时候验证这些证书的真实性。

在 /.chef/trustedcerts/ubuntu-14-cheftest_com.crt 下面添加 ubuntu-14-chef.test.com 的证书。

在上面的命令取得 ssl 证书后,接着运行下面的命令。

  1. root@ubuntu-15-WKS:/.chef#knife client list
  2. kashi-linux

 

配置与 chef 服务端交互的新节点

节点是执行所有基础��施自动化的 chef 客户端。因此,在配置完 chef-server 和 knife 工作站后,通过配置新的与 chef-server 交互的节点,来添加新的服务端到我们的 chef 环境下。

我们使用下面的命令来添加新的节点与 chef 服务端工作。

  1. root@ubuntu-15-WKS:~# knife bootstrap 172.25.10.170--ssh-user root --ssh-password kashi123 --node-name mydns

  1. Doing old-style registration with the validation key at /.chef/linux.pem...
  2. Delete your validation key in order to use your user credentials instead
  3. Connecting to 172.25.10.170
  4. 172.25.10.170InstallingChefClient...
  5. 172.25.10.170--2015-07-0422:21:16-- https://www.opscode.com/chef/install.sh
  6. 172.25.10.170Resolving www.opscode.com (www.opscode.com)...184.106.28.91
  7. 172.25.10.170Connecting to www.opscode.com (www.opscode.com)|184.106.28.91|:443... connected.
  8. 172.25.10.170 HTTP request sent, awaiting response...200 OK
  9. 172.25.10.170Length:18736(18K)[application/x-sh]
  10. 172.25.10.170Saving to:STDOUT
  11. 172.25.10.170
  12. 100%[======================================>]18,736--.-K/s in0s
  13. 172.25.10.170
  14. 172.25.10.1702015-07-0422:21:17(200 MB/s)- written to stdout [18736/18736]
  15. 172.25.10.170
  16. 172.25.10.170DownloadingChef12for ubuntu...
  17. 172.25.10.170 downloading https://www.opscode.com/chef/metadata?v=12&prerelease=false&nightlies=false&p=ubuntu&pv=14.04&m=x86_64
  18. 172.25.10.170 to file /tmp/install.sh.26024/metadata.txt
  19. 172.25.10.170 trying wget...

之后我们可以在 knife 节点列表下看到新创建的节点,它也会在新节点创建新的客户端。

  1. root@ubuntu-15-WKS:~# knife node list
  2. mydns

相似地我们只要提供 ssh 证书通过上面的 knife 命令,就可以在 chef 设施上创建多个节点。

 

总结

本篇我们学习了 chef 管理工具并通过安装和配置设置基本了解了它的组件。我希望你在学习安装和配置 Chef 服务端以及它的工作站和客户端节点中获得乐趣。

更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2


via: How to Configure Chef (server/client) on Ubuntu 14.04 / 15.04

作者:Kashif Siddique 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux 中国 荣誉推出

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/121445.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7367字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中