Chef - Thiết lập khách hàng
Để làm cho nút Chef giao tiếp với máy chủ Chef, bạn cần thiết lập máy khách Chef trên nút.
Khách hàng đầu bếp
Đây là một trong những thành phần quan trọng của nút Chef, nó lấy các sách nấu ăn từ máy chủ Chef và thực thi chúng trên nút. Nó còn được gọi là Chef provisioner.
Ở đây, chúng ta sẽ sử dụng Vagrant để quản lý VM. Vagrant cũng có thể được cấu hình với trình điều khiển như Shell script, Chef và Puppet để đưa VM vào trạng thái mong muốn. Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng Vagrant để quản lý các máy ảo bằng VirtualBox và ứng dụng khách Chef làm người cung cấp.
Step 1 - Tải xuống và cài đặt VirtualBox từ https://www.virtualbox.org/wiki/downlod
Step 2 - Tải xuống và cài đặt Vagrant tại http://downloads.vagrantup.com
Step 3 - Cài đặt plugin Vagrant Omnibus để cho phép Vagrant cài đặt ứng dụng khách Chef trên máy ảo.
$ vagrant plugin install vagrant-omnibus
Tạo và khởi động máy ảo
Step 1- Chúng tôi có thể tải xuống hộp Vagrant được yêu cầu từ repo Opscode vagrant. Tải xuống hộp opscode-ubuntu-12.04 từ URL sauhttps://opscode-vmbento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box
Step 2 - Sau khi bạn có tệp Vagrant, hãy tải xuống đường dẫn bạn cần để chỉnh sửa tệp Vagrant.
vipin@laptop:~/chef-repo $ subl Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "opscode-ubuntu-12.04"
config.vm.box_url = https://opscode-vm-bento.s3.amazonaws.com/
vagrant/opscode_ubuntu-12.04_provisionerless.box
config.omnibus.chef_version = :latest
config.vm.provision :chef_client do |chef|
chef.provisioning_path = "/etc/chef"
chef.chef_server_url = "https://api.opscode.com/
organizations/<YOUR_ORG>"
chef.validation_key_path = "/.chef/<YOUR_ORG>-validator.pem"
chef.validation_client_name = "<YOUR_ORG>-validator"
chef.node_name = "server"
end
end
Trong chương trình trên, bạn cần cập nhật tên <YOUR_ORG> với tên tổ chức chính xác hoặc bắt buộc.
Step 3- Bước tiếp theo sau khi cấu hình là mở hộp vagrant. Đối với điều này, bạn cần phải di chuyển đến vị trí có hộp Vagrant và chạy lệnh sau.
$ vagrant up
Step 4 - Sau khi máy khởi động, bạn có thể đăng nhập vào máy bằng lệnh sau.
$ vagrant ssh
Trong lệnh trên, vagrantfile được viết bằng ngôn ngữ dành riêng cho miền Ruby (DSL) để định cấu hình máy ảo vagrant.
Trong tệp vagrant, chúng ta có đối tượng cấu hình. Vagrant sẽ sử dụng đối tượng cấu hình này để cấu hình máy ảo.
Vagrant.configure("2") do |config|
…….
End
Bên trong khối cấu hình, bạn sẽ thông báo cho vagrant biết hình ảnh VM nào sẽ sử dụng để khởi động nút.
config.vm.box = "opscode-ubuntu-12.04"
config.vm.box_url = https://opscode-vm-bento.s3.amazonaws.com/
vagrant/opscode_ubuntu-12.04_provisionerless.box
Trong bước tiếp theo, bạn sẽ yêu cầu Vagrant tải xuống plugin omnibus.
config.omnibus.chef_version = :latest
Sau khi chọn hộp VM để khởi động, hãy cấu hình cách cung cấp hộp bằng Chef.
config.vm.provision :chef_client do |chef|
…..
End
Bên trong này, bạn cần thiết lập hướng dẫn về cách kết nối nút ảo với máy chủ Chef. Bạn cần cho Vagrant biết nơi bạn cần lưu trữ tất cả các công cụ Chef trên nút.
chef.provisioning_path = "/etc/chef"