OpenStack(企業私有雲)萬里長征第三步——調試成功


一、前言

折騰了一兩個月(中間有事耽擱了半個月),至今日基本調試成功OpenStack,現將中間的部分心得記錄下來。

二、環境

使用的是devstack newton版。具體部署過程可以參考cloudman的視頻http://cloudman.cc/

三、部分細節

3.1 操作系統

  1. ubuntu16.04版,在安裝軟件環節選擇虛擬host項。

  2. 啟用root賬戶。

  3. 修改阿里的apt源。

  4. 修改豆瓣的pip源(root用戶和stack用戶均需修改)。

3.2 下載及配置openstack

  1. 下載

git clone https://git.openstack.org/openstack-dev/devstack -b stable/newton

  1. 主節點配置
control
[[local|localrc]]

MULTI_HOST=true

# management & api network
HOST_IP=192.168.166.101
LOGFILE=/opt/stack/logs/stack.sh.log

# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz

# enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
PHYSICAL_NETWORK=default

LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
  1. 計算節點配置
Compute
[[local|localrc]]

MULTI_HOST=true
# management & api network
HOST_IP=192.168.166.102

# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz

# Service information
SERVICE_HOST=192.168.166.101
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST

ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
PHYSICAL_NETWORK=default

# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

主從節點分別按上述配置即可安裝成功。

  1. 各種service含義
q-agt
core agent,包括 linux bridge agent 和 open vswich agent

q-dhcp
dhcp agent

q-l3
l3 agent,提供 routing 服務

q-meta
neutron metadata agent

q-lbaas
load balance agent

q-fwass
firewall 服務
q-vpn
vpn agent,提供 VPN as a Service

3.3 實現VLAN網絡

修改/etc/neutron/plugins/ml2/ml2_conf.ini,指明vlan network與物理網卡的對應關系。

physical_interface_mappings = default:eth1

每個節點均需進行上述修改。並需要將交換機的端口設置成trunk,這樣既可以實現通過VLAN的方式將各個節點之間的虛擬機連接起來。

3.4 VLAN間通信(l3 agent)

修改/etc/neutron/l3_agent.ini(主節點計算節點均需修改)。

interface_driver 是最重要的選項,如果 mechanism driver 選用 linux bridge,則:

interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

如果選用 open vswitch,則:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

之后創建router,在router中創建兩個interface即可實現兩個vlan之間的通信。

3.5 虛擬機訪問外部網絡

修改/etc/neutron/plugins/ml2/ml2_conf.ini。

flat_networks=external

physical_interface_mappings = default:eth1,external:eth2

這里我們將外部網絡的 label 命名為 “external”。重啟祝節點和計算節點的neutron服務。

web中創建一個網絡,type選為flat,physical network設置為external,勾選external network項。

創建子網,ip地址即為外部的IP地址,網關設置為外部網關。

將此網絡添加到上面創建的router的接口中。這樣即可實現虛擬機訪問外部網絡。

3.6 外部訪問虛擬機

通過floating ip實現此功能。

如果ping不通,可以在security group加上ingress 和egress的all tcp rule。如果ssh不通,可以在security group加上ingress 和egress的all tcp rule。

3.7 虛擬機中安裝ubuntu系統

下載ubuntu cloud鏡像。地址:http://cloud-images.ubuntu.com/xenial/current/

添加鏡像並部署instance,區別在於部署instance的時候需要設置key pair(私鑰),通過此私鑰進行登陸。

執行下述語句使得可以遠程ssh連接ubuntu(假定已經設置了floating ip)。

passwd ubuntu<<EOF
ubuntu
ubuntu
EOF
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd

四、總結

以上為我在部署OpenStack過程中的部分心得,此過程牽涉的知識實在太多,靜下心來,一個問題一個問題解決,最終你會收獲不一樣的自己,有問題歡迎留言探討。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM