Packstack Centos7

Packstack Create a proof of Concept Cloud

RDOlogo_large

           เอกสารนี้แสดงวิธีการพิสูจน์หลักฐานของแนวคิดระบบคลาวด์บนโหนดเดียวโดยใช้ยูทิลิตี้การติดตั้ง 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:

  1. source /root/keystonerc_admin
  2. nova floating-ip-bulk-delete 10.3.4.0/22 (นี่คือช่วงฮาร์ดโค้ดใน packstack)
  3. nova floating-ip-bulk-create CORRECT-RANGE (ในตัวอย่างด้านบนนี่จะเป็น 192.168.1.56/29)
  4. nova-manage floating list (เพื่อดูรายการใหม่ของ IP แบบลอย)

With Neutron:

ไม่มีการสร้าง IP แบบลอยตัวตามค่าเริ่มต้น คุณต้องสร้างเครือข่ายสาธารณะและเครือข่ายย่อยก่อนกำหนดช่วงที่อยู่ IP สำหรับ IP ที่ลอยในเวลานั้น

  1. source /root/keystonerc_admin
  2. neutron net-create public --router:external
  3. neutron 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 ในช่วงการจัดสรรเพื่อให้ตรงกับที่มีอยู่ในเครือข่ายของคุณ)
  4. neutron router-create router1 (เราเตอร์ 1 จะต้องถูกแทนที่ด้วยชื่อของเราเตอร์ของคุณ)
  5. neutron router-gateway-set $router_id $vlan_id (ใช้รหัสเราเตอร์ของคุณและรหัส vlan ที่สร้างขึ้นก่อนหน้านี้)
  6. 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) ภายในเราเตอร์เสมือนที่ปรับใช้บนตัวควบคุม