Centos下chef安装、部署
-
环境准备
1. 安装Centos的linux环境三个(server、workstation、client);注意配置环境hostname为FQDN格式,形如xxx.com(/etc/sysconfig/network)。
2. https://www.opscode.com/chef/install/下载chef 对应的client、server rpm安装包。
3. 将server rpm包上传到server、workstation,client包上传到workstation。
-
配置server
1. Rpm命令安装 rpm –ivh chef-server-11.0.8-1.el6.x86_64.rpm。
2. 运行配置命令,sudo chef-server-ctl reconfigure。该命令将安装所有需要的组件,包括Erchef, RabbitMQ, PostgreSQL, cookbooks。
3. 运行sudo chef-server-ctl test命令,检查server是否安装完成。
4. 运行service iptables stop关闭防火墙。
-
设置workstation
-
安装client
-
Rpm命令安装 rpm –ivh chef-11.8.0-1.el6.x86_64.rpm。
-
使用chef-client –v命令查看是否安装成功。
-
如果命令行显示Chef: 11.8.0,安装成功。
-
2. $ git clone git://github.com/opscode/chef-repo.git命令将chef-repo克隆到本地,成功后的目录结构为chef-repo/
certificates/
config/
cookboos/
data_bags/
environments/
roles/
3. 执行sudo mkdir –p ~/chef-repo/.chef命令创建.chef文件(用于存放knife.rb、ORGANIZATION-validator.pem、USER.pem)。
4. 执行cat .gitignore .chef(将.chef文件加入到.gitignore中,防止将改文件提交到github)。
5. 将server /etc/chef-server下的admin.pem、xx-validator.pem复制到workstation。
6. 运行knife configure --initial命令生成knife.rb、USER.pem、validator.pem文件(server url指定为https://server-ip:443),pem文件位置为上步骤中路径。
7. 添加ruby到环境变量
echo 'export PATH="/opt/chef/embedded/bin:$PATH"' >> ~/.configuration_file && source ~/.configuration_file
echo 'export PATH="/opt/chef/embedded/bin:$PATH"' >> ~/.bash_profile && source ~/.bash_profile
8. 运行knife client list和knife user list查看client、user是否注册成功。
9. 运行service iptables stop 关闭防火墙。
-
配置cookbook(workstation中操作)
1. 下载(当然可以自己创建)cookbook(本文以mysql为例,由于mysql依赖于openssl、build_essential,同时需要下载这两个cookbook)。
2. 执行命令knife cookbook upload [cookbook-name] -o [cookbook-path],先后上传openssl、build_essential、mysql到服务器(需要在/etc/hosts下添加一条服务器的ip-hostname记录,如:20.1.203.50 chef-server.com)。
-
创建node(workstation中操作,centos举例)
-
创建一台centos环境虚拟机或者物理机,关闭防火墙,/etc/hosts添加一条server的地址解析,如:20.1.203.50 chef-server.com)。
-
执行命令knife bootstrap 20.1.214.202(client ip) –ssh-user root(username) –ssh-password 123.com –ssh-port 22 –run-list “recipe[mysql],recipe[nginx]” –sudo创建node,并在node上安装mysql,nginx(centos)。
-
假如无法接入Internet须执行以下步骤。
-
在目标node上配置本地yum源(linux)。
-
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/knife/bootstrap(修改当前路径下chef-full.erb下载脚本路径,以及涉及的install.sh)。
-
帮助
-
https://server-ip/ 图形化管理界面。
-
http://docs.opscode.com/essentials_cookbooks.html(官方cookbooks)
3. https://learnchef.opscode.com/starter-use-cases/ntp/(如何创建自己的ntp cookbook)
4. https://learnchef.opscode.com/quickstart/workstation-setup/#linux(quick start)。

浙公网安备 33010602011771号