Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

คุณกล้าพอที่จะลองใช้ OpenStack หรือไม่ OSAD!

นี่เป็นคำถามที่ดีมาก ด้วยเหตุผลหลายประการ ประการแรก OpenStack เป็นคำยอดนิยมขนาดใหญ่ในทุกวันนี้ และใครก็ตามที่คิดว่าพวกเขาเป็นใครบางคนจะบอกคุณว่าคุณควรจะใช้สิ่งนี้ เช่นเดียวกับคำว่า cloud การต่อต้านนั้นไร้ประโยชน์ ประการที่สอง มันเกี่ยวข้องกับ virtualization ดังนั้นบางทีคุณควรเรียนรู้เพิ่มเติมเกี่ยวกับมัน

สามและสี่และอื่น ๆ เหตุผลจะปรากฏในภายหลังในบทความนี้ แต่หลักฐานพื้นฐานคือ คุณ - และควร - ตะลุย OpenStack ได้ไหม ตอนนี้ ฉันกำลังถามคำถามนี้จากมุมมองของผู้ที่มีสัญชาตญาณทางเทคนิคโดยธรรมชาติและประสบการณ์ที่สำคัญในการเล่น OpenStack คู่มือการเฉือนบทความในวันนี้จะแสดงให้คุณเห็นถึงวิธีการดำเนินการกับเทคโนโลยีนี้

หมายเหตุ:ภาพที่ถ่ายจาก Wikipedia ได้รับอนุญาตภายใต้ CC BY-SA 3.0

ความคาดหวังกับความเป็นจริง

ไม่เป็นไร. ดังนั้น OpenStack ก็คือ แต่คุณรู้จักใครจริงๆ นอกเหนือจากผู้ให้บริการโฮสติ้งรายใหญ่ 3-4 รายแล้ว มีใครบ้างที่อาจใช้สิ่งนี้อยู่ ทุกคนกำลังพูดถึงเรื่องนี้ แต่คุณจะไม่พบตัวอย่างที่ใช้ได้จริงในชีวิตจริงมากนัก สิ่งนี้ทำให้ฉันสงสัยและสงสัยจริงๆ ทำไมจะไม่ล่ะ?

ฉันรู้สึกทึ่งโดยธรรมชาติ ดังนั้นฉันจึงตัดสินใจเริ่มต้นการเดินทางของ OpenStack เพื่อดูว่าฉันจะเชี่ยวชาญเทคโนโลยีได้อย่างรวดเร็วและง่ายดายหรือไม่ จากนั้นเสนอบทช่วยสอนหนึ่งหรือสามข้อที่จะช่วยคุณในระหว่างทาง ในไม่ช้าก็เห็นได้ชัดว่าซอฟต์แวร์นี้ไม่ควรล้อเล่นกับมัน และมันมีพลังมหาศาลในการถ่อมตัวแม้กระทั่งผู้ที่มีสัญชาตญาณมากที่สุด เพื่อความฉลาด ฉันเปลี่ยนการปรับแต่ง กลยุทธ์ของฉัน และเปลี่ยนจากการพยายามแสดงคำแนะนำทีละขั้นตอนเป็นคำถามที่มีอยู่จริงเกี่ยวกับความเกี่ยวข้องของ OpenStack รวมถึงความพยายามอย่างแท้จริงในการเชื่อมช่องว่างระหว่างคุณ (กับฉัน) ความคาดหวังกับความเป็นจริงที่รุนแรง

OpenStack นั้นยาก

อันที่จริง การผจญภัยของฉันต้องใช้เวทมนตร์บรรทัดคำสั่งเป็นเวลานานหลายชั่วโมงอย่างเจ็บปวด ฉันตระหนักว่า OpenStack ไม่สามารถทำให้เชื่องได้เหมือนกับที่ฉันทำกับ KVM หรือ Docker ไม่. ตัวอย่างสั้นๆ สองสามตัวอย่าง การอ่าน man page และการลองผิดลองถูกในเชลล์ยังห่างไกลจากความเพียงพอที่จะเริ่มใช้ซอฟต์แวร์จากระยะไกล OpenStack ดูเหมือนภูเขาที่ปกคลุมด้วยหิมะ และฉันมีเพียงรองเท้าแตะสำหรับการปีนเท่านั้น

ยิ่งฉันเล่นกับมันมากเท่าไหร่ ฉันก็ยิ่งรู้ว่ามันเป็นวิธีแก้ปัญหาที่ซับซ้อนและมีสถาปัตยกรรมมากเกินไป ยิ่งฉันซ่อมและพยายามทำสิ่งต่างๆ ให้เสร็จ ฉันก็ยิ่งหลบเลี่ยง หลุดลอย น่าสนใจและน่าดึงดูดน้อยลงเรื่อยๆ และทำให้คำถามเชิงอัตถิภาวนิยมดูเป็นปรัชญามากขึ้น

สิ่งที่ไม่ควรทำ

ดังนั้น ก่อนที่ฉันจะแสดงให้คุณเห็นถึงวิธีการเริ่มต้นใช้งาน OpenStack มีบิตและส่วนที่สำคัญหลายประการที่เราต้องชี้แจง ประการแรกสถาปัตยกรรม มีความซับซ้อนสูง โมดูลาร์สูง โดยแต่ละส่วนประกอบเล็กๆ น้อยๆ จะทำหน้าที่เป็นบริการแยกต่างหาก ทั้งในด้านชื่อและฟังก์ชัน เนื่องจากการมีส่วนประกอบจำนวนมากถือเป็นเรื่องดีในปัจจุบัน

ภาพที่ถ่ายจากเอกสาร openstack.org อย่างเป็นทางการ คลิกเพื่อขยาย

ชิ้นที่สองคือความเกี่ยวข้องทางธุรกิจ ทำไมคุณถึงต้องการใช้ OpenStack เป็นบริการโครงสร้างพื้นฐานอันดับแรกและสำคัญที่สุด หากคุณต้องการดำเนินธุรกิจ คุณไม่จำเป็นต้องรู้จัก OpenStack เพียงแค่ใช้มัน คุณมีเวลา เงิน ทักษะ และกำลังคนเพียงพอที่จะลงทุนในการเรียนรู้เทคโนโลยีนี้หรือไม่ คุณต้องการมันเร็วแค่ไหน และคุณต้องรู้ลึกแค่ไหน? คุณกำลังพยายามบรรลุอะไร คุณจะเป็นผู้ให้บริการหรือผู้บริโภคของ OpenStack หรือไม่? ถ้าคุณคิดจะใช้มันกับธุรกิจของคุณ มันจะขนาดไหน? เครื่องเสมือนหลายสิบเครื่อง? ร้อย? พัน? หมื่น?

ชิ้นส่วนที่สำคัญนี้มักถูกมองข้ามโดยผู้จัดการที่ไม่รู้ข้อมูลมากเกินไปและกระตือรือร้นที่จะกระโดดขึ้นไปบนกระดานคำศัพท์ และพวกเขาสร้างความสับสนให้กับตนเองและพนักงานโดยเบลอความแตกต่างระหว่างการจัดเตรียมและการใช้บริการ โดยทำให้โครงสร้างพื้นฐานทำหน้าที่เป็นธุรกิจทั้ง ๆ ที่ไม่ได้เป็นเช่นนั้น จากนั้น OpenStack ก็เริ่มไม่สมเหตุสมผล เพราะผู้คนยุ่งอยู่กับการพยายามทำให้มันทำงาน ดังนั้นพวกเขาจึงสามารถเรียกใช้สิ่งอื่นที่เหนือกว่า ลงเอยด้วยการเสียเวลาหลายเดือนไปกับความพยายามที่ไร้ประโยชน์และล้มเลิกไป ซึ่งเป็นเหตุผลว่าทำไม OpenStack จึงมีอยู่เฉพาะในส่วนขอบของสเปกตรัมการใช้งาน ไม่ว่าจะเป็นการปรับใช้จำนวนมากหรือไม่มีเลย

สิ่งที่ต้องทำ

ตอนนี้ ฉันได้พูดถึงเหตุผลแล้ว และฉันได้เน้นสองสามข้อ นี่คือบางส่วนเพิ่มเติม OpenStack เหมาะสมหากคุณต้องการเป็นผู้นำด้านเทคโนโลยี เป็นเรื่องที่สมเหตุสมผลหากคุณกำลังพยายามสร้างไพรเวทหรือพับลิคคลาวด์ หากคุณตั้งใจที่จะเป็นผู้ให้บริการ และหากคุณต้องการสร้างความเชี่ยวชาญและความโดดเด่นในด้านคลาวด์ ซึ่งอาจถูกต้องตามกฎหมายหากเป็นวัตถุประสงค์รองของธุรกิจของคุณ .

OpenStack ยังมีประโยชน์หากต้องการทดสอบซอฟต์แวร์และเรียกใช้สิ่งที่ไม่ได้อยู่ด้านบน คุณสามารถใช้วิธีนี้เป็นวิธีแก้ปัญหาแบบกล่องดำ หรือคุณสามารถพัฒนาความเข้าใจเบื้องต้น ดังนั้นหากมีข้อผิดพลาด คุณสามารถแก้ไขปัญหาได้

ตอนนี้คำถามใหญ่คือคุณจะทำอย่างไร อย่างที่ฉันเน้นไปก่อนหน้านี้ กระบวนการด้วยตนเองในการทำสิ่งต่าง ๆ ให้ดำเนินไปนั้นน่ากลัว คุณต้องมีหนังสือสองสามเล่ม เวลาหลายสัปดาห์ และการพิมพ์บรรทัดคำสั่งจำนวนมากและมากมาย สร้างผู้ใช้ กลุ่ม บทบาท ฐานข้อมูล สะพานเครือข่าย คอนเทนเนอร์ และเกร็ดเล็กเกร็ดน้อยที่โหดร้ายอื่นๆ อีกมากมาย

เราต้องการข้ามทั้งหมดนั้น โดยปกติแล้ว ฉันจะแนะนำกระบวนการเรียนรู้เชิงเส้น แต่ OpenStack นั้นซับซ้อนเกินไปสำหรับสิ่งนั้น เราจะเริ่มด้วยกลไกอัตโนมัติเพื่อให้ทุกอย่างดำเนินไป เชื่อในการตั้งค่าอัตโนมัติอย่างสุ่มสี่สุ่มห้า เมื่อได้รับการกำหนดค่าอย่างสมบูรณ์และสำเร็จแล้ว เราจะย้อนขั้นตอนของเราอย่างช้าๆ

OpenStack Ansible Deployment (OSAD)

หากคุณค้นหาในเว็บ คุณจะเห็นว่ามีโซลูชันมากมายที่อ้างว่าเป็นจอกศักดิ์สิทธิ์ของการจัดการและการปรับใช้สำหรับ OpenStack ใช่ มีอยู่จริงเพราะ OpenStack ใช้งานยากเกินไป และแทนที่จะแก้ไขปัญหาหลัก อินเทอร์เน็ตก็เต็มไปด้วยโซลูชันโอเวอร์เลย์เฉพาะกิจที่ออกแบบมาเพื่อให้ใช้งาน ตรวจสอบ และอื่นๆ ได้ง่ายขึ้น เหมือนตู้คอนเทนเนอร์จริงๆ OSAD เป็นหนึ่งในโครงการชุมชนดังกล่าว แม้ว่าจะมีโครงการอื่นๆ อีกมากมาย เช่น Fuel, Inception, TripleO, Compass, PackStack และอีกมากมาย ในบทช่วยสอนนี้ เราจะมุ่งเน้นไปที่ OSAD และติดตามผลด้วยเครื่องมืออื่นๆ ที่คล้ายคลึงกัน ป.ล. ฉันมีความเกี่ยวข้องกับโครงการนี้ ดังนั้นหากคุณรู้สึกมีอคติ โปรดอย่าสนใจบทความนี้

การตั้งค่าพื้นฐาน

ในทางเทคนิค คุณจะต้องรันสองคำสั่งเท่านั้น หนึ่ง คว้าสคริปต์หลักจาก GitHub repo และสอง เรียกใช้การตั้งค่า Ansible สำหรับผู้ที่สงสัยว่าสิ่งเล็ก ๆ น้อย ๆ ที่แปลกประหลาดนี้คืออะไร Ansible เป็นเครื่องมือจัดการการกำหนดค่า คล้ายกับ Puppet, Chef, CFEngine และผองเพื่อน โดยได้รับการออกแบบมาเพื่อทำให้การปรับใช้นโยบายซอฟต์แวร์และการกำหนดค่าบนเครื่องเป้าหมายเป็นไปโดยอัตโนมัติ ตรรกะการปรับใช้ถูกเข้ารหัสภายในไฟล์ที่เรียกว่า Playbooks โดยใช้ไวยากรณ์ภาษา YAML ซอฟต์แวร์จะแยกวิเคราะห์ Playbooks และส่งการกำหนดค่าที่จำเป็นไปยังโฮสต์เป้าหมายโดยใช้ SSH นั่นคือเวทมนตร์พื้นฐานของ Ansible

คำเตือน!

ตอนนี้ฉันจะไม่ลงรายละเอียดมากเกินไปว่า Ansible ทำงานอย่างไร ฉันจะเน้นสั้น ๆ ว่ามันทำอะไรและทำงานอย่างไร ไวยากรณ์ค่อนข้างใช้งานง่าย และเมื่อคุณเข้าใจวิธีการทำงานแล้ว คุณควรจะสามารถติดตามตรรกะของไฟล์ OSAD yml ได้ มาดู Playbook ตัวอย่างจากเอกสารออนไลน์:

---
- โฮสต์:เว็บเซิร์ฟเวอร์
วาร์:
http_พอร์ต:80
max_clients:200
remote_user:รูท
งาน:
- ชื่อ:ตรวจสอบให้แน่ใจว่า apache เป็นเวอร์ชันล่าสุด
yum:pkg=httpd state=latest
- ชื่อ:เขียนไฟล์ปรับแต่ง apache
แม่แบบ:src=/srv/httpd.j2 dest=/etc/httpd.conf
แจ้ง:
- รีสตาร์ท apache
- ชื่อ:ตรวจสอบให้แน่ใจว่า apache กำลังทำงานอยู่ (และเปิดใช้งานเมื่อบูต)
บริการ:name=httpd state=startated enable=yes
ตัวจัดการ:
- ชื่อ:รีสตาร์ท apache
บริการ:name=httpd state=restarted

เรามีอะไรที่นี่? มาดู Playbook กัน:

  • - โฮสต์:คำสั่งกำหนดว่าโฮสต์ใดควรเรียกใช้ Playbook นี้
  • vars:กำหนดตัวแปรที่จะตั้งค่าสำหรับเว็บเซิร์ฟเวอร์ เช่น พอร์ตและค่าสูงสุด ลูกค้า.
  • ผู้ใช้ระยะไกล:กำหนดผู้ใช้ที่งาน Playbook ควรรัน - ในฐานะรูท
  • งาน:กำหนดสิ่งที่เรากำลังจะเรียกใช้ เมื่อตรงกับเกณฑ์โฮสต์
  • - ชื่อ:ตรวจสอบให้แน่ใจว่า apache อยู่ที่ ... ตัวแปรนี้กำหนดชื่องาน คุณสามารถใช้คำอธิบายแบบยาวหรือใช้แบบง่ายๆ ก็ได้ แต่ชื่อเหมือนชื่อเรื่องที่มีคำอธิบายยาวจะเข้าใจง่ายกว่า
  • yum:อันนี้จะติดตั้งแพ็คเกจ httpd เวอร์ชันล่าสุด
  • เทมเพลต:คำสั่งนี้จะคัดลอกเทมเพลตการกำหนดค่าฝั่งเซิร์ฟเวอร์ไปยังเว็บเซิร์ฟเวอร์ ดังนั้นทั้งหมดจึงใช้ไฟล์ httpd.conf เดียวกัน
  • แจ้งเตือน:ตัวแปรนี้จะประกาศทริกเกอร์ที่เรียกว่า "รีสตาร์ท apache" ซึ่งจะเปิดใช้งานหากการดำเนินการข้างต้นเสร็จสมบูรณ์ กล่าวอีกนัยหนึ่ง เรากำหนดการดำเนินการโพสต์
  • - ชื่อ:ตรวจสอบให้แน่ใจว่า apache กำลังทำงาน ... งานนี้จะตั้งค่า apache ให้ทำงานเมื่อบูตและเริ่มบริการในกรณีที่ไม่ได้ทำงาน
  • ตัวจัดการ:ที่นี่เราจะจัดการการเริ่มบริการใหม่ ซึ่งควรตั้งค่าเป็นจริงเฉพาะเมื่อการดำเนินการคัดลอกไฟล์การกำหนดค่าเสร็จสิ้น ซึ่งสมเหตุสมผล จากนั้นเราจะดำเนินการที่จำเป็นกับบริการ httpd

ข้อมูลนี้จะอธิบายโดยสังเขปว่า Ansible playbooks ทำงานอย่างไร ตอนนี้ เมื่อเราปรับใช้ OSAD แล้ว คุณก็สามารถดูไฟล์ yml ที่มีอยู่และสำรวจการตั้งค่าได้ คุณจะเห็นสิ่งที่ซับซ้อนมากมาย รวมถึงตู้คอนเทนเนอร์ สะพาน และอื่นๆ แต่นั่นคือแนวคิดทั้งหมด คุณหลีกเลี่ยงความยุ่งเหยิงและปล่อยให้คนอื่นจัดการแทนคุณ อย่างน้อยก็ในขั้นต้น

กำลังดำเนินการ

อย่างไรก็ตาม คำสั่งที่น่ารักสองคำสั่งของเรา:

ทุบตี <(curl https://git.openstack.org/cgit/stackforge/os-ansible-deployment/
ธรรมดา/scripts/run-aio-build.sh)

/opt/stackforge/os-ansible-deployment/openstack-ansible setup-everything.yml

การดำเนินการนี้จะเริ่มการตั้งค่า และอาจใช้เวลาประมาณ 40-50 นาที ทั้งนี้ขึ้นอยู่กับฮาร์ดแวร์ของคุณ คุณต้องมี CPU, หน่วยความจำ และพื้นที่ดิสก์ที่เพียงพออย่างแน่นอนเพื่อให้ทำงานได้ดี น้อยกว่าที่คุณคาดไว้ สี่คอร์, RAM 8 GB และดิสก์ 40 GB ก็เพียงพอแล้ว ดังนั้นแม้แต่แล็ปท็อปที่ดีก็สามารถทำได้ค่อนข้างดี อย่าคาดหวังการแสดงที่เป็นตัวเอก

...
+ unset -f ปิดการใช้งาน
+ ทางออก 0

/opt/stackforge/os-ansible-deployment
-------------------------------------------------- --------------

- [ เวลารัน =2422 วินาที || 40 นาที ]
-------------------------------------------------- --------------

- [ สถานะ:สำเร็จ ]
-------------------------------------------------- --------------
+ แมว
++ ip -o -4 addr แสดง dev eth0
++ awk -F '[ /]+' '/global/ {พิมพ์ $4}'
+ chmod +x /etc/update-motd.d/20-openstack
+ แมว
++ เอกสารแนบ
+ chmod +x /etc/update-motd.d/21-galera

หากคุณเห็นผลลัพธ์ตามด้านบน แสดงว่าการตั้งค่าเริ่มต้นของคุณสำเร็จด้วยดี

เล่นกับโนวา

ขั้นตอนต่อไปคือการตรวจสอบให้แน่ใจว่าคุณสามารถรันคำสั่งหนึ่งหรือสองคำสั่งได้ ตอนนี้ การตรวจสอบสแต็กทั้งหมดของสิ่งที่คุณมีในระบบของคุณอาจเป็นไปไม่ได้ แต่คุณควรเห็นอินเทอร์เฟซเครือข่ายจำนวนมาก รวมถึงบริดจ์และอุปกรณ์เสมือนที่สร้างขึ้นเมื่อวางไข่คอนเทนเนอร์ ค่อนข้างเหมือนกับที่เราเห็นด้วย Docker

คำสั่ง Nova นั้นน่าเกลียดและยาว และคุณควรตั้งค่าตัวแปรสภาพแวดล้อมหลายตัว ดีกว่าต้องป้อนข้อมูลทั้งหมดทุกครั้งที่คุณเรียกใช้คำสั่ง:

nova --os-user-name admin --os-password secrete --os-tenant-name admin --os-auth-url https://172.29.236.100:5000/v2.0 image-list
------------------------------------+--------+--- -----+--------+
| รหัส                 | ชื่อ   | สถานะ | เซิร์ฟเวอร์ |
------------------------------------+--------+--- -----+--------+
| 896fa8ca-682b-4f4e-859e-9f08b...   | เซอร์รอส | ใช้งาน | |
------------------------------------+--------+--- -----+++++

nova --os-user-name admin --os-password secrete --os-tenant-name admin --os-auth-url https://172.29.236.100:5000/v2.0 hypervisor-list
+----+-------------------+-------+--------+
| รหัส | ชื่อโฮสต์ไฮเปอร์ไวเซอร์ | รัฐ | สถานะ  |
+----+-------------------+-------+--------+
| 1  | เซิร์ฟเวอร์-001            | ขึ้น    | เปิดใช้งาน |
+----+-------------------+-------+---------+

แน่นอน ตั้งค่าตัวแปรสภาพแวดล้อม:

ส่งออก OS_USERNAME=ผู้ดูแลระบบ
ส่งออก OS_PASSWORD=ความลับ
ส่งออก OS_TENANT_NAME=ผู้ดูแลระบบ
ส่งออก OS_AUTH_URL=https://172.29.236.100:5000/v2.0

จากนั้น คุณสามารถใช้คำสั่ง nova ที่สั้นกว่านี้เพื่อบูตโฮสต์ของคุณ เบื้องต้นต้องระบุ รูป รส และชื่อ รวมถึงรายละเอียดการระบุตัวตนทั้งหมดด้วย แต่เราจัดเรียงข้อมูลเหล่านั้นเมื่อครู่เท่านั้น สิ่งสำคัญพอๆ กันคือเราต้องการคีย์ SSH และกฎไฟร์วอลล์บางข้อเพื่อให้เราสามารถเชื่อมต่อกับเครื่องเสมือนของเราได้ มิฉะนั้นจะไม่ทำงาน

nova secgroup-add-rule เริ่มต้น tcp 22 22 0.0.0.0/0
nova secgroup-add-rule เริ่มต้น icmp -1 -1 0.0.0.0/0

จับคู่คีย์โนวา - เพิ่ม Dedoimedo> dedoimedo.pem
chmod 0600 dedoimedo.pem

บูต nova ก่อน --image 896fa8ca-682b-4f4e-859e-9f08b82b47fb --flavor 3 -key-name Dedoimedo
++------------------------------------------------------ --------------+
| ทรัพย์สิน                       | ค่า                        |
++------------------------------------------------------ --------------+
| OS-DCF:diskConfig              | คู่มือ                       |
| OS-EXT-AZ:availability_zo      | โนวา                         |
| OS-EXT-SRV-ATTR:โฮสต์           | -                            |
| OS-EXT-SRV-ATTR:ไฮเปอร์วิโซ      | -                            |
| OS-EXT-SRV-ATTR:instance_      | อินสแตนซ์-00000007            |
| OS-EXT-STS:power_state         | 0                            |
...
| สร้างแล้ว        | 2015-06-04T09:48:59Z         |
...
| รสชาติ                         | m1.medium (3)                |
...
++------------------------------------------------------ --------------+

ข้อมูลเอาต์พุตจะรวมรหัสผ่านเริ่มต้นที่สร้างขึ้นโดยอัตโนมัติสำหรับโฮสต์ และคุณจะสามารถรับที่อยู่ IP ได้จากรายการโฮสต์ที่ทำงานอยู่ ถ้าอย่างนั้น มันก็เป็น SSH ที่เรียบง่าย และถ้าคุณทำสำเร็จ คุณก็จัดการให้ OpenStack ทำงานได้อย่างน่าอัศจรรย์ และอุปสรรคแรกก็หายไปแล้ว

ping -c 1 172.29.248.13
PING 172.29.248.13 (172.29.248.13) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 172.29.248.13:icmp_seq=1 ttl=64 เวลา=0.634 ms

--- สถิติ ping 172.29.248.13 ---
ส่ง 1 แพ็กเก็ต, 1 ได้รับ, สูญเสียแพ็กเก็ต 0%, เวลา 0ms
rtt นาที/เฉลี่ย/สูงสุด/mdev =0.634/0.634/0.634/0.000 มิลลิวินาที

ssh -i dedoimedo.pem [email protected]
ความถูกต้องของโฮสต์ '172.29.248.14 (172.29.248.14)'
ไม่สามารถจัดตั้งได้ ลายนิ้วมือของคีย์ RSA คือ 5b:cf:ed:99:b8:a9:2a:2f:ce:58:f0:3c:eb:db:7c:c1
คุณแน่ใจหรือไม่ว่าต้องการเชื่อมต่อต่อ (ใช่/ไม่ใช่) ใช่
คำเตือน:เพิ่ม '172.29.248.14' (RSA) อย่างถาวรในรายการโฮสต์ที่รู้จัก

ปัญหาที่คุณอาจพบ

ไม่ว่าคุณจะใช้เส้นทางด้วยตนเองหรือการตั้งค่าอัตโนมัติ คุณอาจพบปัญหาบางอย่างที่นี่และที่นั่น ส่วนนี้ให้รายละเอียดเกี่ยวกับปัญหาทั่วไปที่คุณอาจพบเมื่อเล่นด้วย OpenStack, Ansible หรือทั้งสองอย่าง

openstack-anible setup-everything.yml
ไฟล์ตัวแปร:"-e @/etc/openstack_deploy/user_secrets.yml -e @/etc/openstack_deploy/user_variables.yml "
ข้อผิดพลาด:สคริปต์สินค้าคงคลัง (inventory/dynamic_inventory.py) มีข้อผิดพลาดในการดำเนินการ:Traceback (การโทรครั้งล่าสุดล่าสุด):
ไฟล์ "/openstack/os-ansible-deployment/playbooks/inventory/
dynamic_inventory.py" บรรทัดที่ 21 ใน <โมดูล>
นำเข้า netaddr
ImportError:ไม่มีโมดูลชื่อ netaddr

คุณไม่มีโมดูล Python ที่สำคัญซึ่งคุณต้องติดตั้ง:

pip ติดตั้ง netaddr
รวบรวมเน็ตแอดด
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/
package/urllib3/util/ssl_.py:90:InsecurePlatformWarning:ไม่มีวัตถุ SSLContext จริง ซึ่งจะป้องกันไม่ให้ urllib3 กำหนดค่า SSL อย่างเหมาะสม และอาจทำให้การเชื่อมต่อ SSL บางอย่างล้มเหลว สำหรับข้อมูลเพิ่มเติม โปรดดูที่ https://urllib3.readthedocs.org/en/latest/
security.html#insecureplatformคำเตือน
คำเตือนแพลตฟอร์มที่ไม่ปลอดภัย
กำลังดาวน์โหลด netaddr-0.7.14-py2.py3-none-any.whl (1.5MB)
100% | | 1.5MB 312kB/วินาที
การติดตั้งแพ็คเกจที่รวบรวม:netaddr
ติดตั้ง netaddr-0.7.14 สำเร็จแล้ว

ขณะเล่นกับ OpenStack Ansible Deployment framework คุณอาจพบข้อผิดพลาดเกี่ยวกับการสร้าง All in One (AIO) ซึ่งอาจบ่งบอกถึงปัญหา SSH แม้ว่าคุณอาจเชื่อว่าทุกอย่างราบรื่นและควรใช้งานได้:

รวบรวมข้อเท็จจริง ************************************************ ***************
ร้ายแรง:[aio1] => ข้อผิดพลาด SSH:ไม่สามารถส่งข้อมูลไปยังโฮสต์ระยะไกล ตรวจสอบให้แน่ใจว่าโฮสต์นี้สามารถเข้าถึงได้ผ่าน ssh

งาน:[apt_package_pinning | เพิ่มการตั้งค่าพิน apt] ********************************************* ******************
FATAL:ไม่มีโฮสต์ที่ตรงกันหรือโฮสต์ทั้งหมดล้มเหลว -- ยกเลิก

ข้อผิดพลาดเหล่านี้อาจเกิดจากข้อบกพร่องสองข้อต่อไปนี้ ดังนั้นโปรดดูที่โน่น จากนั้น ข้อผิดพลาดทั่วไปประการที่สามที่อาจเกิดขึ้นคือหากคุณพยายามโคลน repo ลงในไดเร็กทอรีที่ไม่ว่างเปล่า:

+ git clone -b master https://github.com/stackforge/os-ansible-deployment.git /opt/stackforge/os-ansible-deployment
ร้ายแรง:เส้นทางปลายทาง '/opt/stackforge/os-ansible-deployment' มีอยู่แล้วและไม่ใช่ไดเรกทอรีว่าง

อ่านเพิ่มเติม

หากคุณรู้สึกว่าบทช่วยสอนนี้ง่ายเกินไปสำหรับรสนิยมอันยอดเยี่ยมของคุณ:

สไลด์บางส่วนที่อาจสนใจ

การกระจาย Red Hat ของ OpenStack (RDO)

การปรับใช้และการจัดการ Mirantis OpenStack - เชื้อเพลิง

สรุป

อย่างที่คุณเห็น OpenStack มีหลายรูปแบบมากเกินไป ในทางใดทางหนึ่ง มันจำลองภูมิทัศน์ของลินุกซ์ที่ซับซ้อน เฟื่องฟู และสับสน ให้เป็นสี่มิติของมันเอง และเราอาจจะต้องทนกับคำศัพท์และชื่อที่ตกหล่นมานานนับสิบปี จนกว่าจะถึงมาตรฐานบางอย่างในที่สุด และความสมดุลในชุมชน ประสบความสำเร็จ OSAD นั้นใช้ได้ แต่ขึ้นอยู่กับ Ubuntu 14.04 + LXC และคุณอาจต้องการบางอย่างเช่น Red Hat หรือ CentOS สำหรับการผลิตของคุณ สมเหตุสมผล ซึ่งหมายความว่าคุณควรทดสอบการตั้งค่าและเครื่องมืออื่นๆ ด้วย แต่นั่นเป็นสิ่งที่คุณสามารถลองได้หลังจากล้างบาปด้วย OpenStack แล้ว

ทั้งหมดที่กล่าวมา หากคุณไม่อยากรอสักสองสามปีก่อนที่พายุเทคโนโลยีจะผ่านพ้นไป คุณสามารถเริ่มเล่นด้วย OpenStack โดยไม่คำนึงถึงวัตถุประสงค์ของคุณ ไม่ว่าจะเป็นธุรกิจหรือแกนหลัก ไม่ว่าคุณจะทำอะไร ขั้นตอนแรกจะยุ่งยากมาก ดังนั้นคุณควรคว้าเฟรมเวิร์กตัวช่วยไว้ใช้เอง แล้วย้อนกลับไปที่เทคโนโลยีหลัก

OSAD เป็นตัวอย่างที่ดี หากยังห่างไกลจากความง่ายและสมบูรณ์แบบ แต่มันล่วงหน้าไปหลายปีแสงกว่าที่ OpenStack นำเสนอด้วยตัวมันเอง และมันใช้งานได้จริง เพราะมันนำสัญชาตญาณทางเทคนิคที่คาดหวังกลับมาสู่ตาราง หวังว่าบทช่วยสอนนี้จะช่วยให้คุณก้าวหน้าได้บ้าง มันไม่ง่าย มันยุ่งเหยิง และฉันไม่ชอบมันมากนัก ถึงกระนั้น สิ่งที่ดีที่สุดที่คุณสามารถทำได้ด้วยเครื่องมือที่มีอยู่ โดยรวมแล้วมันขึ้นอยู่กับ:พยายามอย่าคิดมาก หลีกเลี่ยงการตั้งค่าด้วยตนเอง เลือกใช้ Ansible แก้ไขข้อผิดพลาดเล็กน้อยในการใช้งานครั้งแรก จากนั้นเลิกยุ่งเกี่ยวกับ Nova และเพื่อนๆ หลังจากนั้นสักครู่ ให้กลับมาที่ OpenStack และค่อยๆ ปรับแต่งจนกว่ามอนสเตอร์จะเชื่อง นั่นคือทั้งหมดสำหรับคำแนะนำนี้

ป.ล. ฉันได้นำเสนอหัวข้อนี้อย่างเป็นทางการในรูปแบบที่สนุกสนานและสนุกสนานมากขึ้นในระหว่างการประชุม CloudOpen ปีนี้ที่เมืองดับลิน ประเทศไอร์แลนด์ รายละเอียดเพิ่มเติมตามคำสั่งและคลิกอุปกรณ์เมาส์ของคุณ ไป.

ไชโย