Packstack Create a proof of Concept Cloud

เอกสารนี้แสดงวิธีการพิสูจน์หลักฐานของแนวคิดระบบคลาวด์บนโหนดเดียวโดยใช้ยูทิลิตี้การติดตั้ง Packstack คุณจะสามารถเพิ่มโหนดอื่น ๆลงในคลาวด์ OpenStack ของคุณได้ในภายหลังหากคุณเลือก
คำแนะนำนำไปใช้กับการเปิดตัวSteinปัจจุบัน
WARNING
อ่านเอกสารนี้แบบเต็มจากนั้นเลือกเส้นทางการติดตั้งของคุณ
อย่าเพิ่งเริ่มพิมพ์คำสั่งที่บทสรุปสำหรับคนใจร้อนและดำเนินการต่อผ่านหน้ากระดาษ
Summary for the impatient
หากคุณใช้ภาษาที่ไม่ใช่ภาษาอังกฤษตรวจสอบให้แน่ใจว่า/etc/environmentมีประชากรอยู่แล้ว:
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
หากระบบของคุณตรงตามข้อกำหนดเบื้องต้นทั้งหมดที่กล่าวถึงด้านล่างให้ดำเนินการตามคำสั่งต่อไปนี้
- On RHEL:
$ sudo yum install -y https://www.rdoproject.org/repos/rdo-release.rpm $ sudo yum update -y $ sudo yum install -y openstack-packstack $ sudo packstack --allinone - On CentOS:
$ sudo yum update -y $ sudo yum install -y centos-release-openstack-stein $ sudo yum update -y $ sudo yum install -y openstack-packstack $ sudo packstack --allinone
Step 0: Prerequisites
Sofeware
Red Hat Enterprise Linux (RHEL) 7 เป็นรุ่นต่ำสุดที่แนะนำหรือรุ่นเทียบเท่าของหนึ่งในดิสทริบิวชัน Linux ที่ใช้ RHEL เช่นCentOS , Scientific Linuxและอื่น ๆ x86_64 ปัจจุบันเป็นสถาปัตยกรรมที่สนับสนุนเท่านั้น
- ดูที่เก็บ RDOสำหรับรายละเอียดเกี่ยวกับที่เก็บที่จำเป็น
ตั้งชื่อโฮสต์ด้วยชื่อโดเมนแบบเต็มแทนที่จะเป็นชื่อแบบสั้นเพื่อหลีกเลี่ยงปัญหา DNS กับ Packstack
Hardware
เครื่องที่มี RAM อย่างน้อย 16GB, โปรเซสเซอร์ที่มีส่วนขยายการจำลองเสมือนสำหรับฮาร์ดแวร์และอะแดปเตอร์เครือข่ายอย่างน้อยหนึ่งตัว
Network
หากคุณวางแผนที่จะเข้าถึงเครือข่ายภายนอกไปยังเซิร์ฟเวอร์และอินสแตนซ์นี่เป็นช่วงเวลาที่ดีในการ กำหนดการตั้งค่าเครือข่ายของคุณอย่างเหมาะสม ที่อยู่ IP แบบคงที่ไปยังการ์ดเครือข่ายของคุณและการปิดใช้งาน NetworkManager เป็นแนวคิดที่ดี
$ sudo systemctl disable firewalld
$ sudo systemctl stop firewalld
$ sudo systemctl disable NetworkManager
$ sudo systemctl stop NetworkManager
$ sudo systemctl enable network
$ sudo systemctl start network
หากคุณกำลังวางแผนในสิ่งที่นักเล่นอ่านเอกสารบนเครือข่ายขั้นสูง ก่อนดำเนินการต่อ
Step 1: Software repositories
บน RHEL ดาวน์โหลดและติดตั้งที่เก็บ RDO RPM เพื่อตั้งค่าที่เก็บ OpenStack:
$ sudo yum install -y https://rdoproject.org/repos/rdo-release.rpm
บน CentOS ที่Extrasเก็บจัดเตรียม RPM ที่เปิดใช้งานที่เก็บ OpenStack Extrasเปิดใช้งานโดยค่าเริ่มต้นบน CentOS 7 ดังนั้นคุณสามารถติดตั้ง RPM เพื่อตั้งค่าที่เก็บ OpenStack
$ sudo yum install -y centos-release-openstack-stein
ตรวจสอบให้แน่ใจว่าเปิดใช้งานที่เก็บ:
yum-config-manager --enable openstack-stein
อัปเดตแพ็คเกจปัจจุบันของคุณ:
$ sudo yum update -y
กำลังมองหาเวอร์ชั่นเก่ากว่าอยู่ใช่ไหม ดูhttp://rdoproject.org/repos/สำหรับรายชื่อเต็ม
Step 2: Install Packstack Installer
$ sudo yum install -y openstack-packstack
Step 3: Run Packstack to install OpenStack
Packstack นำงานออกจากการตั้งค่า OpenStack ด้วยตนเอง สำหรับการปรับใช้ OpenStack โหนดเดียวให้รันคำสั่งต่อไปนี้:
$ sudo packstack --allinone
หากคุณพบความล้มเหลวให้ดูวิธีแก้ไขปัญหาหน้าสำหรับเคล็ดลับ
หากคุณเคยใช้ Packstack ก่อนหน้านี้จะมีไฟล์ในโฮมไดเร็กตอรี่ชื่อของ packstack-answers-20130722-153728.txtคุณคุณอาจต้องการใช้ไฟล์นั้นอีกครั้งโดยใช้--answer-fileตัวเลือกเพื่อให้รหัสผ่านที่คุณได้ตั้งค่าไว้ (ตัวอย่างเช่น mysql) จะถูกนำมาใช้ซ้ำ
โปรแกรมติดตั้งจะขอให้คุณป้อนรหัสผ่านรูทสำหรับแต่ละโหนดโฮสต์ที่คุณกำลังติดตั้งบนเครือข่ายเพื่อเปิดใช้งานการกำหนดค่าระยะไกลของโฮสต์เพื่อให้สามารถกำหนดค่าแต่ละโหนดจากระยะไกลโดยใช้ Puppet
เมื่อกระบวนการเสร็จสมบูรณ์คุณสามารถเข้าสู่ระบบเว็บฮอไรซอนอินเตอร์เฟซ OpenStack http://$YOURIP/dashboardโดยไปที่ adminชื่อผู้ใช้ รหัสผ่านสามารถพบได้ในไฟล์keystonerc_adminใน/rootไดเรกทอรีของโหนดควบคุม
Next steps
ตอนนี้ที่โหนดเดียวของคุณเช่น OpenStack และทำงานคุณสามารถอ่านเกี่ยวกับการกำหนดค่าช่วง IP ลอยกำหนดค่า RDO ที่จะทำงานร่วมกับเครือข่ายที่มีอยู่ของคุณหรือเกี่ยวกับการขยายการติดตั้งของคุณโดยการเพิ่มโหนดคำนวณ
Adding a compute node (การเพิ่มโหนด)
การขยายคลาวด์ OpenStack แบบโหนดเดียวของคุณเพื่อรวมโหนดการคำนวณที่สองต้องการอะแดปเตอร์เครือข่ายที่สองหากคุณต้องการแยกทราฟฟิกเครือข่ายผู้เช่า Neutron
Edit the answer file
ก่อนอื่นให้แก้ไข “answer file” ที่สร้างขึ้นระหว่างการติดตั้ง Packstack เริ่มต้น คุณจะพบไฟล์ในไดเรกทอรีที่คุณใช้ Packstack
หมายเหตุ:โดยค่าเริ่มต้นจะเรียกว่า$youranswerfilepackstack-answer-$date-$time.txt
$EDITOR $youranswerfile
แทนที่$EDITORด้วยโปรแกรมแก้ไขที่คุณต้องการ
Adjust network card names
ตั้งCONFIG_NEUTRON_OVS_TUNNEL_IFเป็นeth1หรืออะไรก็ตามที่การ์ดเครือข่ายของคุณใช้ โปรดทราบว่านี่ไม่ได้บังคับ แต่อาจเป็นความคิดที่ดีที่จะแยกทราฟฟิกของอุโมงค์ผ่านส่วนต่อประสานที่แยกต่างหาก NIC ที่สองของคุณอาจมีชื่ออื่น คุณสามารถค้นหาชื่อของอุปกรณ์ของคุณโดยการเรียกใช้:
ip l | grep '^\S' | cut -d: -f2
Change IP addresses
หากคุณต้องการให้โหนดใหม่ของคุณเป็นโหนดการคำนวณเพียงอย่างเดียวให้เปลี่ยนค่าสำหรับ CONFIG_COMPUTE_HOSTSจากค่าของที่อยู่ IP โฮสต์แรกของคุณเป็นค่าของที่อยู่ IP โฮสต์ที่สองของคุณ คุณยังสามารถมีทั้งสองระบบเป็นโหนดการคำนวณหากคุณเพิ่มพวกเขาเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค:
CONFIG_COMPUTE_HOSTS=,,...
ตรวจสอบให้แน่ใจว่ามีคีย์CONFIG_NETWORK_HOSTSและตั้งค่าเป็นที่อยู่ IP ของโฮสต์แรกของคุณ
Skip installing on an already existing servers
ในกรณีที่คุณไม่ต้องการใช้การดัดแปลงใด ๆ บนเซิร์ฟเวอร์ที่กำหนดค่าไว้แล้วให้เพิ่มพารามิเตอร์ต่อไปนี้ใน “answer file”:
EXCLUDE_SERVERS=,,...
คุณอาจไม่ต้องการแยกเซิร์ฟเวอร์ที่มีอยู่หากมันจะยังคงเป็นโหนดการคำนวณเนื่องจากการโอนย้ายแบบสดระหว่างโหนดการคำนวณต้องเพิ่มคีย์ SSH ให้กับแต่ละเซิร์ฟเวอร์
Re-run Packstack with the new values
เรียกใช้ Packstack อีกครั้งโดยระบุ “answer file” ที่แก้ไขแล้วของคุณ:
packstack --answer-file=$youranswerfile
Packstack จะแจ้งให้คุณใส่รหัสผ่านรูทสำหรับแต่ละโหนด
Packstack will prompt you for the root password for each of your nodes
Floating IP range
อินสแตนซ์ OpenStack ได้รับที่อยู่ IP ส่วนตัวซึ่งพวกเขาสามารถเข้าถึงซึ่งกันและกันและผ่านที่โฮสต์สามารถเข้าถึงได้ ในการเข้าถึงอินสแตนซ์เหล่านี้จากเครื่องอื่น ๆ ในเครือข่ายของคุณเช่นเวิร์กสเตชันของคุณอินสแตนซ์นั้นจะต้องได้รับการจัดสรรเป็น “IP แบบลอย” Packstack กำหนดค่านี้โดยอัตโนมัติด้วยค่าเริ่มต้นที่อาจผิดสำหรับเครือข่ายของคุณ คุณจะต้องกำหนดค่าการติดตั้ง OpenStack ด้วยช่วงของที่อยู่ IP ฟรีที่ถูกต้องสำหรับเครือข่ายของคุณ
หากคุณไม่ทราบช่วงที่อยู่ IP ที่เหมาะสมในเครือข่ายของคุณ (ดีที่สุด) และไม่สามารถถามคนที่รู้ (ดีที่สุด) คุณสามารถคาดเดาได้อย่างชาญฉลาดโดยการแยกช่วงที่คุณมักจะได้รับ ที่อยู่ DHCP ในโดยเลือกช่วงที่ค่อนข้างเล็ก (/ 29 ให้ช่วง 8 ที่อยู่ซึ่ง 6 แห่งนั้นจะใช้งานได้) และใช้ nmap เพื่อตรวจสอบว่าโฮสต์อยู่ในช่วงที่คุณคาดเดาหรือไม่
ตัวอย่างเช่น 192.168.1.56/29 หมายถึงช่วงของที่อยู่ขนาดเล็ก (192.168.1.56-63 พร้อมกับการใช้งาน 57-62) และคุณสามารถเรียกใช้คำสั่ง “nmap -sn 192.168.1.56/29” เพื่อตรวจสอบและดูว่า ช่วงทั้งหมดไม่ได้ใช้งานจริง (อย่างน้อยตอนนี้)
ขั้นตอนในการลบ IP แบบลอยตัวที่กำหนดรหัสแบบยากและเพิ่มอันใหม่:
With nova-network:
source /root/keystonerc_adminnova floating-ip-bulk-delete 10.3.4.0/22(นี่คือช่วงฮาร์ดโค้ดใน packstack)nova floating-ip-bulk-create CORRECT-RANGE(ในตัวอย่างด้านบนนี่จะเป็น 192.168.1.56/29)nova-manage floating list(เพื่อดูรายการใหม่ของ IP แบบลอย)
With Neutron:
ไม่มีการสร้าง IP แบบลอยตัวตามค่าเริ่มต้น คุณต้องสร้างเครือข่ายสาธารณะและเครือข่ายย่อยก่อนกำหนดช่วงที่อยู่ IP สำหรับ IP ที่ลอยในเวลานั้น
source /root/keystonerc_adminneutron net-create public --router:externalneutron subnet-create public 192.168.1.0/24 --name vlan --enable_dhcp=False --allocation_pool start=192.168.1.57,end=192.168.1.62 --gateway 192.168.1.1(ใช้เกตเวย์เครือข่ายของคุณที่นี่ – เปลี่ยนที่อยู่ IP ในช่วงการจัดสรรเพื่อให้ตรงกับที่มีอยู่ในเครือข่ายของคุณ)neutron router-create router1(เราเตอร์ 1 จะต้องถูกแทนที่ด้วยชื่อของเราเตอร์ของคุณ)neutron router-gateway-set $router_id $vlan_id(ใช้รหัสเราเตอร์ของคุณและรหัส vlan ที่สร้างขึ้นก่อนหน้านี้)neutron floatingip-create public(ทำซ้ำตามความจำเป็น)
นิวตรอนไม่สร้าง IP แบบลอยตัวอัตโนมัติหรือกำหนดให้กับอินสแตนซ์ใหม่โดยอัตโนมัติ แต่คุณลักษณะนี้ได้รับการวางแผนสำหรับการรวมในอนาคต
ความแตกต่างระหว่าง Floating IP และ IP ส่วนตัว
คุณสงสัยเกี่ยวกับความแตกต่างระหว่างที่อยู่ IP ส่วนตัวและที่อยู่ IP แบบลอยตัวใน OpenStack หรือไม่? นี่คือคำอธิบายสั้น ๆ ที่ควรทำให้ชัดเจนยิ่งขึ้น
(ดูเพิ่มเติมที่: การตั้งค่าช่วง IP แบบลอย )
Private IP Address
ที่อยู่ IP ส่วนตัวถูกกำหนดให้กับอินเทอร์เฟซเครือข่ายของอินสแตนซ์โดยเซิร์ฟเวอร์ DHCP ที่อยู่สามารถมองเห็นได้จากภายในอินสแตนซ์โดยใช้คำสั่งเช่น “ip a” โดยทั่วไปที่อยู่จะเป็นส่วนหนึ่งของเครือข่ายส่วนตัวและใช้สำหรับการสื่อสารระหว่างอินสแตนซ์ในโดเมนออกอากาศเดียวกันผ่านสวิตช์เสมือน (เอเจนต์ L2 ในแต่ละโหนดการคำนวณ) นอกจากนี้ยังสามารถเข้าถึงได้จากอินสแตนซ์ในเครือข่ายส่วนตัวอื่น ๆ ผ่านเราเตอร์เสมือน (ตัวแทน L3)
Floating IP Address
ที่อยู่ IP แบบลอยตัวเป็นบริการของ Neutron ไม่ได้ใช้บริการ DHCP ใด ๆ หรือถูกตั้งค่าไว้ภายในแขก ตามความเป็นจริงระบบปฏิบัติการของแขกไม่ทราบว่าได้รับการกำหนดที่อยู่ IP แบบลอยตัว การส่งแพ็คเก็ตไปยังส่วนต่อประสานกับที่อยู่ลอยตัวที่กำหนดเป็นความรับผิดชอบของตัวแทน L3 ของ Neutron อินสแตนซ์ที่มีที่อยู่ IP แบบลอยตัวที่กำหนดสามารถเข้าถึงได้จากเครือข่ายสาธารณะด้วย IP แบบลอย
ที่อยู่ IP แบบลอยและที่อยู่ IP ส่วนตัวสามารถใช้พร้อมกันในเครือข่ายอินเทอร์เฟซเดียว มีแนวโน้มที่จะใช้ที่อยู่ IP ส่วนตัวสำหรับการเข้าถึงอินสแตนซ์โดยอินสแตนซ์อื่น ๆ ในเครือข่ายส่วนตัวในขณะที่ที่อยู่ IP ลอยจะใช้สำหรับการเข้าถึงอินสแตนซ์จากเครือข่ายสาธารณะ วิธีกำหนดค่าช่วง IP แบบลอยตัวอธิบายเอกสารช่วง IP แบบลอยตัว
Example
การตั้งค่าที่มีการคำนวณ 2 โหนดหนึ่งตัวควบคุม Neutron (โดยที่บริการ Neutron, dhcp agent และ l3 agent ทำงาน), เราเตอร์แบบฟิสิคัลและผู้ใช้ ให้ subnet แบบฟิสิคัลเป็น 10.0.0.0/24 บนอินสแตนซ์ของโหนดการคำนวณกำลังทำงานโดยใช้ช่วง IP ส่วนตัว 192.168.1.0/24 หนึ่งในอินสแตนซ์คือเว็บเซิร์ฟเวอร์ที่ควรเข้าถึงได้จากเครือข่ายสาธารณะ โครงร่างเครือข่าย:

ดังที่แสดงในภาพด้านบนเว็บเซิร์ฟเวอร์กำลังทำงานบนอินสแตนซ์ที่มี IP ส่วนตัว 192.168.1.2 ผู้ใช้จากเครือข่าย 10.0.0.0/24 ต้องการเข้าถึงเว็บเซิร์ฟเวอร์ แต่เขาไม่ได้เป็นส่วนหนึ่งของเครือข่ายส่วนตัว 192.168.1.0/24 การใช้ที่อยู่ IP แบบลอยตัว 10.0.0.100 ช่วยให้ผู้ใช้สามารถดึงเว็บเพจจากเว็บเซิร์ฟเวอร์ ที่อยู่ปลายทางถูกแปลโดยตาราง NAT (iptables) ภายในเราเตอร์เสมือนที่ปรับใช้บนตัวควบคุม
