我們終於可以在 CentOS 7 經由 Yum 安裝 RDO 包,然後安裝 packstack all-in 套件。因為想大家知道 OpenStack 內裡究竟有什麼東西,因此會教大家一些基本指令來檢查例如帳戶、服務和網段等等。
但因為 packstack 預設的 public 網段跟現實環境不一樣,所以需要使用 keystone 指令刪除,然後再用 neutron 指令新指一個適合 public 網段。
Step 1:我們先更新 CentOS 7 系統,然後利用 Yum 安裝 RDO 包,最後就是安裝 packstack 套件。
sudo yum update -y
sudo yum install -y https://rdo.fedorapeople.org/rdo-release.rpm
sudo yum install -y openstack-packstack
Step 2:接著安裝 Single Node 模式。
packstack –allinone
Step 3:筆者的安裝時間大約一小時之多,請耐心等待。
Step 4:安裝完成後需關掉 Network Manager 服務。
sudo systemctl disable NetworkManager
sudo systemctl stop NetworkManager
Step 5:然後修改 ens33 網卡使用 vSwitch,再在 vSwitch 網卡配置網絡地址。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.111.251
NETMASK=255.255.255.0
GATEWAY=192.168.111.1
DNS1=8.8.8.8
ONBOOT=yes
Step 6:然後重啟 CentOS 7。
sudo systemctl reboot
Step 7:亦都會自動產生一些 OpenStack 檔案 keystonerc_admin、keystonerc_demo 和 packstack-answer 檔案。先不講 Packstack-answer,而 keystonerc_admin 和 keystonerc_demo 是 OpenStack 環境變數,需使用 source 指令運行,例如運行 keystonerc_admin 可執行 keystone 和 neutron 等等指令查詢,keystonerc_demo 和 keystonerc_admin 內裡亦都有密碼登入 Horizon 網頁介面。
Step 8:我們先使用 source 執行 keystonerc_admin。
Step 9:開始教大家一些 keystone 基本查詢指令,keystone user-list 是檢查現有帳戶狀況。
Step 10:keystone endpoint-list 顯示端點的曝露 URL 情況。
Step 11:keystone service-list 顯示各服務狀態。
Step 12:keystone tenant-list 顯示有多少個分租服務。
Step 13:neutron subnet-list 檢查現在有多少個網段。
Step 14:neutron net-show public 只檢查 public 網段內容。
Step 15:基本指令經已介紹完畢,我們開始修改 public 網段符合我們的環境,我們先到Horizon 網頁介面使用 admin 登入來查看現時正在用什麼網段,而 admin 密碼可使用 cat keystonerc_admin 查看。
OS_PASSWORD 就是 admin 密碼。
Step 16:然後登入 Horizon 網頁介面。
Step 17:登入後在左方按【Project】→【Network】→【Network Topology】可看見 public 網段是 172.24.4.224/28。
小貼士:現時 RDO 有一個Horizon 網頁介面登入 bug,如果大家登入後看見以下畫面。
這個問題可清除瀏覽器的 cache 解決,以下是 Chrome瀏覽器在【設定】按【清除瀏覽資料】示範。
Step 16:開始利用 neutron 修改 public 網段。
source keystonerc_admin (記得使用 admin 環境變數)
neutron router-gateway-clear router1 (因為需要先清除 router1 連接著 public網段的 gateway 才可以刪除)
neutron subnet-delete public_subnet (先刪除 public_subnet)
neutron net-delete public (然後刪除 public 網段)
Step 17:跟著新增回 public網段。
neutron net-create public — –router:external=True (新增一個 external 名為 public )
neutron subnet-create –name public_subnet –enable_dhcp=False –allocation_pool start=192.168.111.140,end=192.168.111.150 –gateway=192.168.111.1 public 192.168.111.0/24 (接著在此 public網段加入適合網段、allocation_pool和gateway等相關網絡資訊)
neutron router-gateway-set router1 public (最後將 public 網後連回 router1)
Step 18:因為 private 網絡預設沒有將 DNS 資料派給內部 instance,所以不能存取 internet,我們可以利用以下 neutron subnet-update 指令更新 DNS 資料。
neutron subnet-update private_subnet –dns-nameservers list=true 8.8.8.8 8.8.4.4
Step 19:我們返回 admin 版面按左方【Project】→【Network】→【Networks】可看見 public_subnet 變成 192.168.111.0/24 網段。
終於完成安裝及修改適合 public 網段,下一篇教大家在 Horizon建立 instance。
(第四篇) OpenStack 配置複雜到「跌渣」!RDO 懶人包解決一切煩惱 – 安裝及基本指令
https://www.facebook.com/hkitblog