Chef的安装

chef server的安装:
chef server可以使用托管的,就是把自己网络上的相关信息都放到一个托管的主机上,而不是自己去运维。类似于你可以自己搭建wordpress,但也可以把blog放在wordpress.com上托管。小秦我这里自己来安装一个。

按照官网的说明,一般搭建一个chef环境需要下面几步:
1 确认server的类型,是托管呢还是自己搭建
2 检查安装要求是否满足
3 选择一个omnibus installer
4 运行omnibus installer
5 安装git
6 建立chef-repo目录
7 创建.chef目录
8 获取.pem和kinfe.rb文件
9 将文件都移到.chef目录中
10 把omnibus Ruby添加到PATH环境变量中
11 确认chef-client安装了

在执行下面的步骤前,需要先配置好FQDN。具体的可以百度一下,这个很简单的。

另外要注意的是,chef server如果用的是opensource的或host或Enterprise的,这三个的安装方法是不大一样的,尤其是opensource的那个。所以如果看到自己安装的和官网上的很多的都不一样那也没事。

Chef Server的安装:
首先去http://www.getchef.com/chef/install/这个网站,按照自己的操作系统版本选择对应的rpm包。小秦我这里是安装在RHEL 6.4上面,并且安装的是opensource的chef:

[root@CENSVR01 Desktop]# rpm -ivh chef-server-11.0.12-1.el6.x86_64.rpm 
[root@CENSVR01 Desktop]# sudo chef-server-ctl reconfigure

然后就可以在浏览器里访问了,比如小秦我这里就是https://censvr01.thuanqin.com/。默认的用户名和密码在页面的右侧可以看到。

workstation的安装:
小秦我这里还是安装在RHEL 6.4上面:

[root@CENSVR03 ~]# curl -L https://www.opscode.com/chef/install.sh | sudo bash

这里是使用了omnibus installer来安装,总的来说最后也就是安装几个rpm的包。
然后安装git,小秦直接挂载的本地源,所以用yum安装就行了:

[root@CENSVR03 RHEL]# yum install git*

接下来创建我们的chef-repo:

[root@CENSVR03 Desktop]# git clone git://github.com/opscode/chef-repo.git
Initialized empty Git repository in /root/Desktop/chef-repo/.git/
remote: Reusing existing pack: 223, done.
remote: Total 223 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (223/223), 45.77 KiB | 7 KiB/s, done.
Resolving deltas: 100% (57/57), done.
[root@CENSVR03 chef-repo]# tree
.
├── certificates
│   └── README.md
├── chefignore
├── config
│   └── rake.rb
├── cookbooks
│   └── README.md
├── data_bags
│   └── README.md
├── environments
│   └── README.md
├── LICENSE
├── Rakefile
├── README.md
└── roles
    └── README.md

接下来建立.chef目录。这个目录用于存放密钥和knife.rb文件。同时把它加入git的排除列表中:

[root@CENSVR03 chef-repo]# sudo mkdir -p /root/Desktop/chef-repo/.chef
[root@CENSVR03 chef-repo]# echo '.chef' >> .gitignore

然后手工进行配置:

[root@CENSVR03 knife]# mkdir /etc/chef-server
[root@CENSVR03 knife]# scp root@CENSVR01:/etc/chef-server/* /etc/chef-server/
The authenticity of host 'censvr01 (192.168.19.31)' can't be established.
RSA key fingerprint is 71:d3:3b:a9:8a:56:91:50:a4:4c:49:47:18:08:75:a5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'censvr01,192.168.19.31' (RSA) to the list of known hosts.
root@censvr01's password: 
admin.pem                                                100% 1675     1.6KB/s   00:00    
chef-server-running.json                                 100% 7956     7.8KB/s   00:00    
chef-server-secrets.json                                 100%  765     0.8KB/s   00:00    
chef-validator.pem                                       100% 1679     1.6KB/s   00:00    
chef-webui.pem                                           100% 1675     1.6KB/s   00:00  
[root@CENSVR03 chef-repo]# knife configure --initial
WARNING: No knife configuration file found
Where should I put the config file? [/root/.chef/knife.rb] /root/Desktop/chef-repo/.chef/knife.rb
Please enter the chef server URL: [https://CENSVR03.thuanqin.com:443] https://CENSVR01.thuanqin.com:443   #这里记得加上https://
Please enter a name for the new user: [root] 
Please enter the existing admin name: [admin] 
Please enter the location of the existing admin's private key: [/etc/chef-server/admin.pem] 
Please enter the validation clientname: [chef-validator] 
Please enter the location of the validation key: [/etc/chef-server/chef-validator.pem] 
Please enter the path to a chef repository (or leave blank): /root/Desktop/chef-repo
Creating initial API user...
Please enter a password for the new user: 
Created user[root]
Configuration file written to /root/Desktop/chef-repo/.chef/knife.rb
[root@CENSVR03 chef-repo]# cd .chef/
[root@CENSVR03 .chef]# ls
knife.rb  root.pem
[root@CENSVR03 .chef]# cp /etc/chef-server/* .
[root@CENSVR03 .chef]# ls
admin.pem                 chef-server-secrets.json  chef-webui.pem  root.pem
chef-server-running.json  chef-validator.pem        knife.rb
[root@CENSVR03 .chef]# echo 'export PATH="/opt/chef/embedded/bin:$PATH"' >> ~/.bash_profile && source ~/.bash_profile

验证下workstation是否安装成功(必须要在chef-repo中执行下面的命令):

[root@CENSVR03 chef-repo]# knife client list
chef-validator
chef-webui

client的安装:
这里其实就是添加一个node。在workstation的chef-repo目录中执行下面的命令即可:

[root@CENSVR03 chef-repo]# knife bootstrap 192.168.19.32 -x root -P rootroot -sudo -N node01

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*