Centos下chef安装、部署

 

  1. 环境准备

1. 安装Centoslinux环境三个(serverworkstationclient);注意配置环境hostnameFQDN格式,形如xxx.com/etc/sysconfig/network)。

2. https://www.opscode.com/chef/install/下载chef 对应的clientserver rpm安装包。

3. server rpm包上传到serverworkstationclient包上传到workstation

  1. 配置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关闭防火墙。

  1. 设置workstation

  1. 安装client

    1.   Rpm命令安装 rpm –ivh chef-11.8.0-1.el6.x86_64.rpm

    2.   使用chef-client –v命令查看是否安装成功。

    3.   如果命令行显示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.rbORGANIZATION-validator.pemUSER.pem)。

  4. 执行cat .gitignore .chef(将.chef文件加入到.gitignore中,防止将改文件提交到github)。

  5. server /etc/chef-server下的admin.pemxx-validator.pem复制到workstation

6. 运行knife configure --initial命令生成knife.rbUSER.pemvalidator.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 listknife user list查看clientuser是否注册成功。

  9. 运行service iptables stop 关闭防火墙。

  1. 配置cookbookworkstation中操作)

  1. 下载(当然可以自己创建)cookbook(本文以mysql为例,由于mysql依赖于opensslbuild_essential,同时需要下载这两个cookbook)。

  2. 执行命令knife cookbook upload [cookbook-name] -o [cookbook-path],先后上传opensslbuild_essentialmysql到服务器(需要在/etc/hosts下添加一条服务器的ip-hostname记录,如:20.1.203.50 chef-server.com)。

  1. 创建nodeworkstation中操作,centos举例)

  1. 创建一台centos环境虚拟机或者物理机,关闭防火墙,/etc/hosts添加一条server的地址解析,如:20.1.203.50 chef-server.com)。

  2. 执行命令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上安装mysqlnginxcentos)。

  3. 假如无法接入Internet须执行以下步骤。

  4. 在目标node上配置本地yum源(linux)。

  5. /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.4.0/lib/chef/knife/bootstrap(修改当前路径下chef-full.erb下载脚本路径,以及涉及的install.sh)。

  1. 帮助

  1. https://server-ip/ 图形化管理界面。

  2. 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/#linuxquick start)。

posted @ 2013-11-29 10:09  商周那颗豆  阅读(1070)  评论(0)    收藏  举报