[4] DevOps 自动化运维工具Chef----在Ubuntu上安装最新的Chef Client 12.13.37 并和Chef server关联起来

原创 2016年09月16日 00:58:55

上一节分享了在Ubuntu上安装最新的Chef WorkStation 12.13.37,现在这一节给大家分享一下,Ubuntu上安装最新的Chef Client 12.13.37 并和Chef server关联起来。Client的安装相对来说简单一点。首先到下面的地址下载Ubuntu的 Chef Client最新版本,https://downloads.chef.io/chef-client/ubuntu/ 。下载完成后,假设我们在VMWare workstations里面已经安装了一台Ubunt 14的机器,2 台 Chef Client的计算机名为chef-client-01-rodney和chef-client-02-rodney, 用户名为ubuntu,IP地址为192.168.80.7和192.168.80.8,咱们文章以chef-client-01-rodney为例子,chef-client-02-rodney的步骤是一样的,则相应的安装步骤如下。

1. 配置/etc/hosts
sudo vi /etc/hosts
在hosts文件里面,加入下面的配置
127.0.0.1 localhost localhost.example.com
192.168.80.5 chef-master-rodney.example.com chef-master-rodney
192.168.80.6 chef-workstation-rodney.example.com chef-workstation-rodney
192.168.80.7 chef-client-01-rodney.example.com chef-client-01-rodney
192.168.80.8 chef-client-02-rodney.example.com chef-client-02-rodney
2. 在Client机器上安装chef client
sudodpkg -ichef_12.13.37-1_amd64.deb
ubuntu@chef-client-02-rodney:~/software$ sudo dpkg -i chef_12.13.37-1_amd64.deb Selecting previously unselected package chef.
(Reading database ... 51147 files and directories currently installed.)
Preparing to unpack chef_12.13.37-1_amd64.deb ...
Unpacking chef (12.13.37-1) ...
Setting up chef (12.13.37-1) ...
Thank you for installing Chef!
3. 安装完成后,运行下面的命令 sudo chef-client -v
如果运行成功。则完成安装
ubuntu@chef-client-02-rodney:~/software$ sudo chef-client -v
Chef: 12.13.37
4. 登陆到 chef-workstation的机器
因为我当前的客户端配置的是用私钥登陆,所以需要把chef client node的
私钥拷贝到,chef workstation机器上来
然后在,/home/ubuntu/chef-repo 目录下运行
sudo knife bootstrap chef-client-01-rodney -N chef-client-01-rodney -x ubuntu -p 22 -i .chef/keypaire4salt.pem
注意,client node的私钥 存放在,/home/ubuntu/chef-repo/.chef/keypaire4salt.pem 目录下

如果客户机器用的是,用户名和密码登陆的话,则需要用下面的命令
sudo knife bootstrap chef-client-01-rodney -N chef-client-01-rodney -x ubuntu -p 22 -P password
在我的环境里面出现了下面的错误,
ubuntu@chef-workstation-rodney:~/chef-repo$ sudo knife bootstrap chef-client-01-rodney -N chef-client-02-rodney -x ubuntu -p 22 -i .chef/keypaire4salt.pem
Creating new client for chef-client-021-rodney
Creating new node for chef-client-01-rodney
Connecting to chef-client-01-rodney
chef-client-01-rodney -----> Existing Chef installation detected
chef-client-01-rodney mkdir: cannot create directory ‘/etc/chef’: Permission denied
chef-client-01-rodney sh: 179: cannot create /etc/chef/client.pem: Directory nonexistent
chef-client-01-rodney chmod: cannot access ‘/etc/chef/client.pem’: No such file or directory
chef-client-01-rodney mkdir: cannot create directory ‘/etc/chef’: Permission denied
chef-client-01-rodney sh: 214: cannot create /etc/chef/trusted_certs/chef-master-rodney_objectiva_com.crt: Directory nonexistent
chef-client-01-rodney sh: 244: cannot create /etc/chef/client.rb: Directory nonexistent
chef-client-01-rodney sh: 253: cannot create /etc/chef/first-boot.json: Directory nonexistent
chef-client-01-rodney Starting the first Chef Client run...
chef-client-01-rodney [2016-09-15T15:27:13+00:00] WARN:*****************************************
chef-client-01-rodney [2016-09-15T15:27:13+00:00] WARN: Did not find config file: /etc/chef/client.rb, using command line options.
chef-client-01-rodney [2016-09-15T15:27:13+00:00] WARN: *****************************************
chef-client-01-rodney [2016-09-15T15:27:13+00:00] FATAL: Cannot load configuration from /etc/chef/first-boot.json
解决的办法有两个:
#1 解决方法
这个时候,登陆到client node,然后创建/etc/chef 文件夹并把权限设置成 777
sudo mkdir -p /etc/chef
sudo chmod 777 /etc/chef
#2 解决方法
sudo chown -R ubuntu:ubuntu /etc
其中ubuntu:unbuntu 为需要登录的client 节点的用户名和用户组
做了上面的任何一种设置之后,再次执行上面的命令,可以其输出类似如下:
ubuntu@chef-workstation:~/chef-repo$ sudo knife bootstrap chef-client-ubuntu -N chef-client-ubuntu -x ubuntu -p 22 -P ubuntu
Node chef-client-ubuntu exists, overwrite it? (Y/N) Y
Client chef-client-ubuntu exists, overwrite it? (Y/N) Y
Creating new client for chef-client-ubuntu
Creating new node for chef-client-ubuntu
Connecting to chef-client-ubuntu
chef-client-ubuntu -----> Existing Chef installation detected
chef-client-ubuntu Starting the first Chef Client run...
chef-client-ubuntu Starting Chef Client, version 12.13.37
chef-client-ubuntu resolving cookbooks for run list: []
chef-client-ubuntu Synchronizing Cookbooks:
chef-client-ubuntu Installing Cookbook Gems:
chef-client-ubuntu Compiling Cookbooks...
chef-client-ubuntu [2016-11-24T07:24:22+00:00] WARN: Node chef-client-ubuntu has an empty run list.
chef-client-ubuntu Converging 0 resources
chef-client-ubuntu
chef-client-ubuntu Running handlers:
chef-client-ubuntu Running handlers complete
chef-client-ubuntu Chef Client finished, 0/0 resources updated in 01 seconds

那么sudo knife bootstrap这个命令真正对客户端做了些什么事情呢?
其实从其日志的输出中可以看出来,其默认在客户端的/etc目录下,新建了一个chef的文件夹(/etc/chef)
其生成了3个文件(/etc/chef/client.pem,/etc/chef/client.rb,  /etc/chef/first-boot.json)和一个保存服务器网站的公钥证书( /etc/chef/trusted_certs在这个文件夹下
#1 client.pem
这个保存的是这个client 节点的私钥,公钥保存在Chef服务上
#2 client.rb文件内容如下,保存的是如何和服务器进行交互的配置信息
log_location     STDOUT
chef_server_url  "https://chef-server/organizations/example"
validation_client_name "chef-validator"
node_name "chef-client-ubuntu"
trusted_certs_dir "/etc/chef/trusted_certs"
#3 first-boot.json 保存的是run_list清单
{"run_list":[]}
5. 登陆到Chef server管理网站验证
然后,如果运行成功,则安装就完成了。剩下的另外一台也一样。安装完成后登陆到服务器的管理界面,则可以看到下面的图片




版权声明:本文为博主原创文章,未经博主允许不得转载。

[9]DevOps 自动化运维工具Chef---如何解决在Window平台上执行一些knife子命令时所报的错误, knife search, knife status?

有的时候,我们需要window平台上执行一些knife子命令,比如,knife status --run-list 查看运行的run list的状态,knife search '*:*' -i 搜索所...

[7]DevOps 自动化运维工具Chef---如何安装Chef的Report?

Chef Report是一个非常有用的功能,它能检测所有的chef节点的任务执行情况: 成功,失败,终止。 而且能记录客户端节点的执行情况。Chef report的最低执行版本如下: Chef ser...

使用Chef管理windows集群 | 运维自动化工具

但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰。试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半...

[14] DevOps 自动化运维工具Chef----如何用Chef调用PowerShell DSC的Resource

上一个章节讲述了如何用Chef-apply运行本地的一个chef的菜谱,这节笔者主要与大家分享如何把Chef和PowerShell DSC集成起来;我们知道,PowerShell在管理WIndow的机...

[15] DevOps 自动化运维工具Chef----chef-apply, chef-client,chef-zero,chef-solo区别

在使用Chef的时候,经常会遇到下面这些比较容易混淆的概念和命令:chef-apply, chef-client,chef-zero,chef-solo; 那么这四个命令到底有什么区别呢?...

大规模集群自动化部署工具--Chef的安装部署

Chef脚本管理工具部署部署节点 节点类型 IP(虚拟假设的IP) Server 192.168.10.191 Workstation 192.168.10.36 Node ...

开源自动化配置管理工具ansible、saltstack、Puppet、Chef选择

目前市场上主流的开源自动化配置管理工具有puppet、chef、ansible、saltstack。到底选择哪一个好? 我为什么选择Saltstack,考虑方式很简单,主要基于如下两个方面: 第一、语...

[13] DevOps 自动化运维工具Chef----用chef-apply命令单机运行Chef配方(Receipt)

前面的12篇文章唠唠叨叨了如何安装Chef,如何查看Chef的数据库的密码,就是没有分享如何跑一个简单的Chef的配方去完成一项任务。这篇文章的目的就是让大家见识一下如何用Chef执行一个简单的任务。...

DevOps-chef的多节点环境搭建

转载自:-wkq5325-ChinaUnix博客 前言: 前段时间一直想试验一下DevOps的一些配置管理工具,后来因为某些原因,就重点研究了chef。以自己的机器搭建了一个典型的多节点实验环...

使用 Chef 自动化部署一个 Web 服务器

http://www.ibm.com/developerworks/cn/cloud/library/1506_wangqf_chefforweb/index.html “这是一个最好的...
  • drcwr
  • drcwr
  • 2016年08月02日 17:04
  • 709
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[4] DevOps 自动化运维工具Chef----在Ubuntu上安装最新的Chef Client 12.13.37 并和Chef server关联起来
举报原因:
原因补充:

(最多只允许输入30个字)