พ่อครัว - การตั้งค่าลูกค้า
ในการทำให้โหนด Chef สื่อสารกับเซิร์ฟเวอร์ Chef คุณต้องตั้งค่าไคลเอนต์ Chef บนโหนด
ลูกค้าเชฟ
นี่เป็นหนึ่งในองค์ประกอบหลักของ Chef node ซึ่งดึงตำราอาหารจากเซิร์ฟเวอร์ Chef และดำเนินการในโหนด เป็นที่รู้จักกันในชื่อผู้จัดเตรียมเชฟ
ที่นี่เราจะใช้ Vagrant เพื่อจัดการ VM นอกจากนี้ Vagrant ยังสามารถกำหนดค่าด้วยตัวจัดเตรียมเช่น Shell script, Chef และ Puppet เพื่อให้ VM อยู่ในสถานะที่ต้องการ ในกรณีของเราเราจะใช้ Vagrant เพื่อจัดการ VM โดยใช้ VirtualBox และ Chef client เป็นตัวจัดเตรียม
Step 1 - ดาวน์โหลดและติดตั้ง VirtualBox จาก https://www.virtualbox.org/wiki/downlod
Step 2 - ดาวน์โหลดและติดตั้ง Vagrant ได้ที่ http://downloads.vagrantup.com
Step 3 - ติดตั้งปลั๊กอิน Vagrant Omnibus เพื่อให้ Vagrant ติดตั้งไคลเอนต์ Chef บน VM
$ vagrant plugin install vagrant-omnibus
การสร้างและบูตเครื่องเสมือน
Step 1- เราสามารถดาวน์โหลดกล่อง Vagrant ที่ต้องการได้จาก repo Opscode vagrant ดาวน์โหลดกล่อง opscode-ubuntu-12.04 จาก URL ต่อไปนี้https://opscode-vmbento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_provisionerless.box
Step 2 - เมื่อคุณมีไฟล์ Vagrant แล้วให้ดาวน์โหลดเส้นทางที่คุณต้องการเพื่อแก้ไขไฟล์ 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
ในโปรแกรมข้างต้นคุณต้องอัปเดตชื่อ <YOUR_ORG> ด้วยชื่อองค์กรที่ถูกต้องหรือจำเป็น
Step 3- ขั้นตอนต่อไปหลังจากการกำหนดค่าคือการเพิ่มกล่องพเนจร สำหรับสิ่งนี้คุณต้องย้ายไปยังตำแหน่งที่กล่อง Vagrant ตั้งอยู่และเรียกใช้คำสั่งต่อไปนี้
$ vagrant up
Step 4 - เมื่อเครื่องขึ้นคุณสามารถล็อกอินเข้าเครื่องโดยใช้คำสั่งต่อไปนี้
$ vagrant ssh
ในคำสั่งด้านบน vagrantfile เขียนด้วย Ruby Domain Specific Language (DSL) สำหรับกำหนดค่าเครื่องเสมือนคนจรจัด
ในไฟล์ vagrant เรามีวัตถุ config Vagrant จะใช้ออบเจ็กต์ config นี้เพื่อกำหนดค่า VM
Vagrant.configure("2") do |config|
…….
End
ภายในบล็อกการกำหนดค่าคุณจะบอกคนจรจัดว่าจะใช้อิมเมจ VM ใดเพื่อบูตโหนด
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
ในขั้นตอนต่อไปคุณจะบอกให้ Vagrant ดาวน์โหลดปลั๊กอินของรถโดยสาร
config.omnibus.chef_version = :latest
หลังจากเลือกกล่อง VM เพื่อบูตให้กำหนดค่าวิธีการจัดเตรียมกล่องโดยใช้ Chef
config.vm.provision :chef_client do |chef|
…..
End
ภายในนี้คุณต้องตั้งค่าคำแนะนำเกี่ยวกับวิธีการเชื่อมต่อโหนดเสมือนเข้ากับเซิร์ฟเวอร์ Chef คุณต้องบอก Vagrant ว่าคุณต้องเก็บข้าวของ Chef ทั้งหมดไว้ที่ไหนในโหนด
chef.provisioning_path = "/etc/chef"