นี่คือคำสั่งเชคที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
chake - การกำหนดค่าแบบไร้เซิร์ฟเวอร์ด้วยเชฟ
บทนำ
chake เป็นเครื่องมือที่ช่วยคุณจัดการหลายโฮสต์โดยไม่ต้องมีเชฟ
เซิร์ฟเวอร์ การกำหนดค่าได้รับการจัดการในไดเร็กทอรีท้องถิ่น ซึ่งอาจอยู่ภายใต้
ควบคุมเวอร์ชันด้วย คอมไพล์(1) หรืออย่างอื่น การกำหนดค่ามักจะปรับใช้ผ่านrsync
ผ่าน SSH และใช้โดยเรียกใช้ เชฟเดี่ยว(1) ผ่าน SSH ในแต่ละโฮสต์
การสร้าง DIE ที่เก็บ
เริ่มต้นการปั่น $
[สร้าง] nodes.yaml
[ mkdir] โหนด.d/
[สร้าง] config.rb
[ mkdir] การกำหนดค่า/บทบาท
[ mkdir] ตำราอาหาร/พื้นฐาน/สูตร/
[สร้าง] ตำรา/basics/recipes/default.rb
[สร้าง] Rakefile
คำอธิบายสั้น ๆ ของไฟล์ที่สร้างขึ้น:
· nodes.yaml: ที่คุณจะแสดงรายการโฮสต์ที่คุณจะจัดการและสูตรที่จะ
นำไปใช้กับแต่ละคน
· nodes.d: ไดเร็กทอรีที่มีหลายไฟล์ในรูปแบบเดียวกับ nodes.yaml เอกสารทั้งหมด
การจับคู่ *.yaml ในนั้นจะถูกเพิ่มในรายการโหนด
· config.rb: มีการกำหนดค่าเชฟโซโล คุณสามารถแก้ไขได้ แต่โดยปกติคุณ
จะไม่จำเป็นต้อง
· config/roles: ไดเร็กทอรีเป็นที่ที่คุณสามารถใส่การกำหนดบทบาทของคุณ
·ตำราอาหาร: ไดเรกทอรีที่คุณจะจัดเก็บตำราอาหารของคุณ ตัวอย่างตำราอาหาร
"พื้นฐาน" ถูกสร้างขึ้น แต่คุณสามารถลบออกและเพิ่มตำราอาหารจริงได้
· Rakefile: มีเพียงบรรทัด 'chake' ที่ต้องการ คุณสามารถเสริมด้วยงานอื่น ๆ
เฉพาะสำหรับโครงสร้างพื้นฐานของคุณ
หลังจากสร้างที่เก็บแล้ว คุณสามารถเรียก chake หรือ rake ได้เพราะทั้งหมดนั้น
เท่ากัน
การจัดการ โหนด
หลังจากที่คุณสร้างที่เก็บของคุณ เนื้อหาของ nodes.yaml มีดังต่อไปนี้:
โฮสต์1.mycompany.com:
run_list:
- สูตร[พื้นฐาน]
คุณสามารถแสดงรายการโฮสต์ของคุณด้วยโหนดเรค:
$ โหนดคราด
host1.mycompany.com ssh
หากต้องการเพิ่มโหนดเพิ่มเติม เพียงต่อท้าย nodes.yaml:
โฮสต์1.mycompany.com:
run_list:
- สูตร[พื้นฐาน]
โฮสต์2.mycompany.com:
run_list:
- สูตร[พื้นฐาน]
และตอนนี้ chake รู้เกี่ยวกับโหนดใหม่ของคุณแล้ว:
$ โหนดคราด
host1.mycompany.com ssh
host2.mycompany.com ssh
การเตรียมการ โหนด TO BE MANAGED
โหนดมีข้อกำหนดเบื้องต้นน้อยมากที่จะจัดการกับ chake:
· โหนดต้องสามารถเข้าถึงได้ผ่าน SSH
· ผู้ใช้ที่คุณเชื่อมต่อกับโหนดต้องเป็น root หรือได้รับอนุญาตให้เรียกใช้ sudo (in
จะต้องติดตั้ง sudo กรณีใด)
A หมายเหตุ on รหัสผ่าน แจ้ง: ทุกครั้งที่ chake เรียก ssh บนโหนด คุณอาจต้อง
พิมพ์รหัสผ่านของคุณ ทุกครั้งที่ chake เรียก sudo บนโหนด คุณอาจต้องพิมพ์
ในรหัสผ่านของคุณ สำหรับการจัดการหนึ่งหรือสองโหนดก็อาจจะใช้ได้ แต่สำหรับที่ใหญ่กว่า
จำนวนโหนดมันใช้งานไม่ได้ เพื่อหลีกเลี่ยงไม่ให้รหัสผ่านปรากฏขึ้น คุณสามารถ:
· กำหนดค่าการพิสูจน์ตัวตนด้วยคีย์ SSH มีความปลอดภัยมากกว่าการใช้รหัสผ่าน
ในขณะที่คุณอยู่ที่นั้น คุณอาจต้องการปิดใช้งานการตรวจสอบรหัสผ่านด้วย
อย่างสมบูรณ์และอนุญาตเฉพาะการพิสูจน์ตัวตนด้วยคีย์เท่านั้น
· กำหนดค่าการเข้าถึง sudo แบบไม่มีรหัสผ่านสำหรับผู้ใช้ที่คุณใช้เพื่อเชื่อมต่อกับโหนดของคุณ
การตรวจสอบ CONNECTIVITY AND INITIAL HOST ติดตั้ง
ในการตรวจสอบว่าโฮสต์ได้รับการกำหนดค่าอย่างถูกต้องหรือไม่ คุณสามารถใช้งานตรวจสอบ:
$ ตรวจสอบคราด
ที่จะรันคำสั่ง sudo true ในแต่ละโฮสต์ ถ้าผ่านไปโดยที่คุณไม่ต้อง
รหัสผ่านคุณแน่ใจว่า
· คุณมีสิทธิ์เข้าถึง SSH สำหรับแต่ละโฮสต์ และ
· ผู้ใช้ที่คุณกำลังเชื่อมต่อเนื่องจากมีการตั้งค่า sudo แบบไม่ใช้รหัสผ่านอย่างถูกต้อง
$ ตรวจสอบคราด
ประยุกต์ใช้ ตำราอาหาร
หากต้องการใช้การกำหนดค่ากับโหนดทั้งหมด ให้เรียกใช้
$ เรคมาบรรจบกัน
หากต้องการใช้การกำหนดค่ากับโหนดเดียว ให้เรียกใช้
$ เรคมาบรรจบกัน:$NODE
หากต้องการใช้สูตรเดียวกับโหนดทั้งหมด ให้เรียกใช้
$ ใช้คราด[myrecipe]
หากต้องการใช้สูตรเดียวกับโหนดเฉพาะ ให้เรียกใช้
$ ใช้เรค:$NODE[myrecipe]
ถ้าคุณไม่แจ้งสูตรอาหารในบรรทัดคำสั่ง คุณจะได้รับพร้อมท์ให้ใส่สูตร
ในการรันคำสั่งเชลล์บนโหนดทั้งหมด ให้รัน
$ เรครัน[คำสั่ง]
หากคำสั่งที่คุณต้องการเรียกใช้มีช่องว่างหรืออักขระอื่นๆ ที่เป็น do . พิเศษ
เปลือก คุณต้องอ้างอิงพวกเขา
ในการรันคำสั่งเชลล์บนโหนดเฉพาะ ให้รัน
$ เรียกใช้ rake:$NODE[คำสั่ง]
ถ้าคุณไม่แจ้งคำสั่งในบรรทัดคำสั่ง คุณจะได้รับพร้อมท์
ในการตรวจสอบงานที่มีอยู่ ให้เรียกใช้
$ คราด -T
การเขียน ตำราอาหาร
เนื่องจากจริง ๆ แล้ว chake เป็นเสื้อคลุมสำหรับ Chef Solo คุณจึงควรอ่าน [เอกสารประกอบของเชฟ](
).
พิเศษ ดูที่ [Chef Solo Documentation](
chef_solo.html>)
DIE โหนด บูทสแตรปปิ้ง กระบวนการ
เมื่อ chake ทำงานบนโหนดในครั้งแรก มันจะต้องบูตสแตรป การบูตสแตรป
กระบวนการรวมถึงการทำสิ่งต่อไปนี้:
·ติดตั้งเชฟและrsync
·ปิดการใช้งานภูตลูกค้าพ่อครัว
· การตั้งชื่อโฮสต์
โหนด URL
คีย์ในแฮชที่แสดงใน nodes.yaml คือ URL ของโหนด ส่วนประกอบทั้งหมดของ
URL แต่ชื่อโฮสต์เป็นทางเลือก ดังนั้นการแสดงรายการชื่อโฮสต์จึงเป็นรูปแบบที่ง่ายที่สุดของ
การระบุโหนดของคุณ นี่คือส่วนประกอบทั้งหมดของ URL ของโหนด:
[แบ็กเอนด์://][ชื่อผู้ใช้@]ชื่อโฮสต์[:พอร์ต][/เส้นทาง]
· แบ็กเอนด์: แบ็กเอนด์เพื่อใช้เชื่อมต่อกับโฮสต์ ssh หรือ local (ค่าเริ่มต้น: ssh)
· ชื่อผู้ใช้: ชื่อผู้ใช้ที่จะเชื่อมต่อด้วย (ค่าเริ่มต้น: ชื่อผู้ใช้บนเวิร์กสเตชันในพื้นที่ของคุณ)
· ชื่อโฮสต์: ชื่อโฮสต์ที่จะเชื่อมต่อ (ค่าเริ่มต้น: ไม่มี)
· พอร์ต: หมายเลขพอร์ตที่จะเชื่อมต่อ (ค่าเริ่มต้น: 22)
· /path: ตำแหน่งที่จะเก็บตำราอาหารไว้ที่โหนด (ค่าเริ่มต้น: /var/tmp/chef.$USERNAME)
เตียง คุณลักษณะเด่น
# เบ็ด
คุณสามารถกำหนดงาน rake ที่จะถูกดำเนินการก่อนการบูตโหนดก่อน
การอัปโหลดเนื้อหาการจัดการการกำหนดค่าไปยังโหนด และก่อนการบรรจบกัน เพื่อทำสิ่งนี้,
คุณเพียงแค่ต้องปรับปรุงงานที่เกี่ยวข้อง:
· bootstrap_common: ดำเนินการก่อนการบูตโหนด (แม้ว่าโหนดจะได้รับแล้วก็ตาม)
บูตสแตรป)
· upload_common: ดำเนินการก่อนที่จะอัปโหลดเนื้อหาไปยังโหนด
· converge_common: ดำเนินการก่อนบรรจบกัน (เช่น หัวหน้าพ่อครัว)
ตัวอย่าง:
งาน :bootstrap_common do
sh './scripts/pre-bootstrap-checks'
ปลาย
# เข้ารหัส ไฟล์
ไฟล์ใด ๆ ที่ลงท้ายด้วยการจับคู่ .gpg และ .asc จะถูกถอดรหัสด้วย GnuPG ก่อนที่จะถูกส่งไปยัง
โหนด คุณสามารถใช้มันเพื่อเก็บรหัสผ่านและข้อมูลสำคัญอื่น ๆ (คีย์ SSL
ฯลฯ) ในที่เก็บร่วมกับการกำหนดค่าที่เหลือ
# พื้นที่เก็บข้อมูล-ท้องถิ่น SSH การกำหนดค่า
หากคุณต้องการพารามิเตอร์การกำหนดค่า SSH พิเศษ คุณสามารถสร้างไฟล์ชื่อ .ssh_config
(หรือชื่อไฟล์อะไรก็ตามที่คุณมีในตัวแปรสภาพแวดล้อม $CHAKE_SSH_CONFIG ดูด้านล่าง
สำหรับรายละเอียด) ในที่รูทของที่เก็บของคุณและ chake จะใช้เมื่อเรียก ssh
# เข้าสู่ระบบ IN TO A HOST
หากต้องการลงชื่อเข้าใช้โฮสต์ของคุณอย่างง่ายดาย เพียงเรียกใช้ rake login:$HOSTNAME นี่จะ
ใช้การกำหนดค่า SSH ของที่เก็บในเครื่องโดยอัตโนมัติดังด้านบน ดังนั้นคุณไม่จำเป็นต้อง
พิมพ์ -F .ssh_config ตลอดเวลา
# วิ่ง ทั้งหมด SSH การร้องขอ กับ บาง คำนำ คำสั่ง
บางครั้ง คุณจะต้องการหรือจำเป็นต้องเติมคำนำหน้าการเรียกใช้ SSH ด้วยคำนำหน้า
คำสั่งเพื่อเช่นอุโมงค์ผ่านโหนดทางออกกลางบางแห่ง คุณสามารถทำได้โดย
การตั้งค่า $CHAKE_SSH_PREFIX บนสภาพแวดล้อมของคุณ ตัวอย่าง:
CHAKE_SSH_PREFIX=tsocks เรคมาบรรจบกัน
ด้านบนจะทำให้การเรียก SSH ทั้งหมดไปยังโฮสต์ทั้งหมดถูกเรียกว่า tsocks ssh [...]
# บรรจบกัน รู้ลึก HOST
หากคุณต้องการจัดการเวิร์กสเตชันในพื้นที่ของคุณด้วย chake คุณสามารถประกาศโหนดในเครื่องเช่น
สิ่งนี้ใน nodes.yaml:
ท้องถิ่น: // สายฟ้า:
run_list:
- บทบาท[เวิร์กสเตชัน]
เพื่อใช้การกำหนดค่ากับโลคัลโฮสต์ คุณสามารถใช้ rake . แบบธรรมดา
converse:thunderbolt หรือเรคเป้าหมายพิเศษในพื้นที่
เมื่อทำการบรรจบโหนดทั้งหมด chake จะข้ามโหนดที่ประกาศด้วย local://
แบ็กเอนด์และชื่อโฮสต์ไม่ตรงกับชื่อโฮสต์ในการประกาศ ตัวอย่างเช่น:
ท้องถิ่น: // เดสก์ท็อป:
run_list:
- บทบาท[เวิร์กสเตชัน]
ท้องถิ่น: // แล็ปท็อป:
run_list:
- บทบาท[เวิร์กสเตชัน]
เมื่อคุณเรียกใช้ rake converge บนเดสก์ท็อป แลปท็อปจะถูกข้ามไป และในทางกลับกัน
และพวกเรา ตัวแปร
· $CHAKE_SSH_CONFIG: ไฟล์การกำหนดค่า SSH ในเครื่อง ค่าเริ่มต้นเป็น .ssh_config
· $CHAKE_SSH_PREFIX: คำสั่งที่ใช้นำหน้า SSH (และ rsync ผ่าน SSH) เรียกด้วย
· $CHAKE_RSYNC_OPTIONS: ตัวเลือกพิเศษที่จะส่งต่อไปยัง rsync มีประโยชน์ เช่น ยกเว้นขนาดใหญ่
ไฟล์จากการอัพโหลดไปยังแต่ละเซิร์ฟเวอร์
· $CHAKE_NODES: ไฟล์ที่มีรายชื่อเซิร์ฟเวอร์ที่จะจัดการ ค่าเริ่มต้น: nodes.yaml
· $CHAKE_NODES_D: ไดเร็กทอรีที่มีไฟล์นิยามโหนดเซิร์ฟเวอร์ที่จะจัดการ
ค่าเริ่มต้น: nodes.d.
· $CHAKE_TMPDIR: ไดเร็กทอรีที่ใช้เก็บไฟล์แคชชั่วคราว ค่าเริ่มต้น: tmp/chake.
· $CHAKE_CHEF_CONFIG: ไฟล์คอนฟิกูเรชันของ Chef สัมพันธ์กับรูทของที่เก็บ
ค่าเริ่มต้น: config.rb
ใช้ chake ออนไลน์โดยใช้บริการ onworks.net