1) chef-server
配置knife
$ knife configure -i
为工作站安装并配置Knife Client
ubuntu@chef-server:~$ knife client create chef-workstation -d -a -f /home/ubuntu/.chef/chef-workstation.pem
2) chef-workstation
安装Ruby与其它依赖包, 安装RubyGems, 安装Chef Gem, 安装Git
创建Chef Repository
备注:Chef的大部分配置工作都是在Workstaion中的Chef Repository中完成的,不同的Chef Repository可以管理不同的Chef Server。
1. 创建配置文件夹
ubuntu@chef-workstation:/opt/chef-local$ sudo mkdir -p .chef
2.传输pem认证文件到Workstation (chef-workstation.pem和validation.pem)
3. ubuntu@chef-workstation:/opt/chef-local$ sudo knife configure
4. 确认Knife工具能否连接到Chef Server
ubuntu@chef-workstation:~$ knife client list
Boostrap可以用来将目标节点初始化为一个Client
ubuntu@chef-workstation:~$ sudo knife bootstrap 10.6.1.172 -x ubuntu -P password --sudo
验证chef-client-1是否已经注册 ubuntu@chef-workstation:~$ knife client list
使用
1. 创建cookbook, 并上传到chef server
ubuntu@chef-workstation:/opt/chef-local$ sudo knife cookbook upload user
2. 创建role, 并上传到chef server
ubuntu@chef-workstation:/opt/chef-local$ sudo knife role from file roles/ubuntu_servers.rb
3. 为cookbook创建data_bag, 并上传到chef server
ubuntu@chef-workstation:/opt/chef-local/data_bags$ sudo knife data bag create users
ubuntu@chef-workstation:/opt/chef-local/data_bags$ sudo knife data bag from file users users/ubuntu.json
4. 为节点增加run_list,即将ubuntu_servers这个角色赋给chef-client-1
ubuntu@chef-workstation:/opt/chef-local$ sudo knife node run_list add chef-client-1 "role[ubuntu_servers]"
3)chef-client
chef-client拉取配置
ubuntu@chef-client-1:~$ sudo chef-client