最近在用chef做openstack的安装,今天把安装过程记录一下,供大家参考。
我们知道,chef工作需要三台机器(当然,也可以把这三个部分安装到一台机器上。)chef server, chef workstation 和 node.
chef server 是chef主程序存放的机器,也存放一下chef的cookbook,role之类的数据。chef workstation相当于操作chef server的命令行。而node就是你想安装部署一些软件的机器,在这里就是指安装openstack的机器。原理上来说,这三个部分都可以安装到一台机器上,但是为了可以重复利用node来做安装部署,我把chef server和chef workstation放在了一台机器上,而node用另外一台机器。这样,在安装之前先给node做snapshot,所以即使安装失败或者出现什么其他的问题,我也可以很容易的恢复node到最初状态,然后继续运行chef。
1. 现在开始安装chef server(我的两台机器都是KVM的虚机,redhat 6.5)。
1)登陆到当做chef server的机器上。比如ip是172.168.100.100,hostname是chef-server。配置/etc/hosts,添加如下两行(我的chef node是172.168.100.101):
172.168.100.100 chef-server
172.168.100.101 chef-node
2)下载chef server的安装包(可以选择最新的版本)。https://opscode-omnitruck-release.s3.amazonaws.com/el/6/x86_64/chef-server-11.0.6-1.el6.x86_64.rpm
3)安装rpm包。运行: rpm -ivh chef-server-11.0.6-1.el6.x86_64.rpm
4)运行命令: chef-server-ctl reconfigure
5)配置chef server。运行 vi /etc/chef-server/chef-server.rb
server_name = '172.168.100.100'
********************************这样chef server就安装好了。*******************************
2. 接下来安装chef workstation。
1)同样还是在172.168.100.100上。下载chef client的安装包。https://opscode-omnitruck-release.s3.amazonaws.com/el/6/x86_64/chef-11.4.0-1.el6.x86_64.rpm
2)安装rpm包。运行: rpm -ihv chef-11.4.0-1.el6.x86_64.rpm
3)创建workstation的目录。运行: mkdir /root/chef
4)进入/root/chef里,创建.chef目录。运行: mkdir .chef
5)把chef server的认证文件拷贝到.chef 目录里。运行:
cd /root/chef/.chef
cp /etc/chef-server/admin.pem .
cp /etc/chef-server/chef-validator.pem .
cp /etc/chef-server/chef-webui.pem .
6)编辑knife的配置文件。依然是在.chef目录里,运行vi knife.rb,加入如下行:
log_level :info
log_location STDOUT
node_name 'admin'
client_key '/root/chef/.chef/admin.pem'
validation_client_name 'chef-validator'
validation_key '/root/chef/.chef/chef-validator.pem'
chef_server_url 'https://172.168.100.100'
cache_type 'BasicFile'
syntax_check_cache_path '/var/chef/chef-repo/.chef/syntax_check_cache'
cookbook_path ['root/chef/cookbooks']
7)运行如下命令检查chef client:
knife client list
knifle user list
knife node list
*************************************************这样chef workstation就安装好了************************************************
3 安装chef node。(安装之前需要先关闭两台机器的防火墙。运行:service iptables stop)在workstation的目录里运行:
knife bootstrap chef-node -x root -P passw0rd
运行这个命令以后,chef server会从官网上下载chef client安装到node上,但是速度极其缓慢。用户可以自己手动下载chef client的rpm包,安装以后再运行knife bootstrap就会很快了。
运行完knife bootstrap以后,运行knife node list就可以看到chef-node了
*************************************************这样chef node就安装好了********************************************************
现在我们就可以在/root/chef/cookbooks里编写自己的cookbook然后运行了。cookbook的编写和运行会在下一篇文章里介绍。