OpenStack(企業私有云)萬里長征第四步——DevStack總體安裝規劃及使用

1、前言

前期成功經過DevStack安裝OpenStack,現將從機房規劃到虛擬機搭建的整個過程總結以下,以供往後查閱或有需之人蔘考。html

2、機房規劃

這個整個安裝過程的重點,能不能成功就看規劃的如何。一旦此步有問題會致使整個安裝失敗,固然後續步驟操做過程當中你也能夠發現此步存在的問題,修改完善也可。html5

2.1 服務器規劃

首先服務器按照性能劃分功能。選擇一臺性能最好的服務器(內存足夠大、CPU足夠多、硬盤要求不高)用於控制節點。另選若干臺性能通常的服務器用於計算節點。此外若是須要虛擬機之間共享存儲的話能夠選一些內存通常、CPU通常可是硬盤足夠大或者掛載了磁盤陣列的服務器用於創建共享存儲,通常選擇ceph。linux

每臺服務器至少包含兩塊網卡(若是考慮主備則爲四塊),最好是兩塊萬兆,根據本身條件而定,沒有萬兆也可,此塊與下部網絡規劃相對應。磁盤陣列須要的配置單獨考慮。主節點須要多裝一塊網卡,用於與外部網絡(此處的外網能夠是互聯網也能夠是公司內部網絡)進行通訊。git

2.2 網絡規劃

服務器選擇好後規劃網絡,網絡是整個機房規劃的重點。至少須要兩臺交換機(若是考慮主備則須要四臺),一臺用於虛擬機之間的通訊網絡構建,一臺用於宿主機之間的信息交換也稱爲管理網絡和API網絡。固然若是都是萬兆交換機最好,不然能夠將虛擬機之間的通訊網路規劃成萬兆,管理網絡規劃成千兆,若是實在沒有條件都作成千兆也可。並將外部網絡從交換機接出一根線至主節點。shell

管理網絡不須要特殊設置,只須要爲每臺服務器的對應網卡配上此網段固定IP便可。虛擬機之間通訊網絡對應的交換機須要進行設置,包含如下功能:一、設置vlan 1 至 100(100個足夠了,若是不夠能夠設置的更大);二、全部端口設置成trunk模式,並容許全部vlan經過。ubuntu

以h3c 6300爲例,配置以下:vim

vlan 2 to 100
int range T 2/0/1 to T 2/0/32
port link-type trunk
port trunk permit vlan all

虛擬機通訊交換機的其餘配置項以及管理網絡的配置根據本身的需求進行相應設置。api

3、服務器配置

  1. 選擇ubuntu16.04版(目前DevStack對此版本支持較好),在安裝軟件環節選擇虛擬host項。安全

  2. 啓用root帳戶。bash

vim /etc/ssh/sshd_config

修改

PermitRootLogin prohibit-password

PermitRootLogin yes
  1. 修改阿里的apt源。修改以下:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  1. 建立stack用戶
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
sudo su - stack
  1. 修改豆瓣的pip源,root用戶和stack用戶均需修改,在root用戶的根目錄以及stack用戶的根目錄建立.pip文件夾,在此文件夾中新建pip.conf文件,寫入如下內容:
[global]
index-url = https://pypi.douban.com/simple
download_cache = ~/.cache/pip
[install]
use-mirrors = true
mirrors = http://pypi.douban.com/
  1. 修改網絡配置
vim /etc/network/interfaces

將管理網絡設置成固定IP,並須要打開虛擬機內部通訊網絡以及主節點外部網絡的相應網卡。設置內容大體以下:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp3s0f0
iface enp3s0f0 inet manual

auto enp3s0f1
iface enp3s0f1 inet static
address 192.168.166.101
netmask 255.255.255.0
gateway 192.168.166.1
dns-nameservers 114.114.114.114

其中網卡名稱根據服務器配置而定。

  1. 進行ntp時間同步

只需安裝ntp軟件便可:

sudo apt-get install ntp

4、安裝DevStack

4.1 下載及配置openstack

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

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

下載完後,進入devstack目錄,新建local.conf文件,根據節點的功能不一樣,分別寫入不一樣配置,具體下面詳細說明。

  1. 主節點配置
[[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. 計算節點配置
[[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

其中HOST_IP均爲當前主機管理網絡的IP地址,計算節點的SERVICE_HOST項內容爲控制節點的管理網絡IP地址。主從節點分別按上述配置便可安裝成功,注意先安裝主節點再安裝從節點。

4.2 修改/etc/neutron/plugins/ml2/ml2_conf.ini文件

此文件中的信息管理着當前節點的網絡對應狀況。

  1. 全部節點

physical_interface_mappings修改以下:

[linux_bridge]
physical_interface_mappings = default:enp130s0f1

其中enp130s0f1爲當前節點虛擬機之間通訊的網卡名稱。

二、主節點

flat_networks修改以下:

[ml2_type_flat]
flat_networks = default,public,external

即添加external項,用於虛擬機訪問外部網絡。

physical_interface_mappings修改以下:

[linux_bridge]
physical_interface_mappings = default:enp130s0f1,external:enp3s0f0

其中enp3s0f0爲主節點與外部網絡相連的網卡的名稱。即在計算節點的基礎上添加此external項。

如此便完成了OpenStack的安裝。

5、OpenStack使用

如下操做基本所有在Web管理界面進行。地址爲主節點的ip地址,密碼爲主節點的配置項中設置的密碼。

5.1 建立虛擬機網絡

在Admin下的Networks中點擊Create Network。按照以下配置新建網絡。此處的vlan可隨意設置,但需在第一步交換機配置的vlan範圍內。

然後點擊進入此網絡建立Subnet。以下:

重複上述操做,建立足夠本身使用的vlan網絡。

5.2 建立router實現vlan間通訊

在Project下Network下的Routers中點擊Create Router建立路由,點擊建立的router,進入詳細信息,再點擊Add Interface,選擇剛剛建立的網絡,重複添加接口,直到須要的vlan所有在此router中,這樣就實現了須要的vlan之間相互通訊。

5.3 建立外部網絡,實現虛擬機訪問外部網絡

在Admin下的Networks中點擊Create Network建立網絡。與以前網絡不一樣的是此處type選爲flat,physical network設置爲external(4.2中主節點修改項),勾選external network項。而後建立子網,ip地址即爲外部的IP地址(必須一致),網關設置爲外部網絡網關。然後點擊上面建立的router的set gateway選擇此網絡便可。這樣即可實現虛擬機訪問外部網絡。

5.4 建立虛擬機

  1. 建立鏡像

根據本身的需求下載相應的操做系統鏡像,也能夠直接使用DevStack中自帶的cirros。若是是ubuntu的話須要下載cloud版(此處有所有對應版本)。下載完後點擊Project下Compute下的Images中的Create Image,選擇下載的文件,注意Fomat選擇QCOW2。

  1. 建立虛機

在Project下Compute下的Instacnces中點擊Launch Instance,選擇建立的鏡像和建立的網絡以及須要的配置大小,即可完成虛擬機建立。能夠測試虛擬機之間是否可以正常通訊以及是否可以訪問外網。

5.5 建立floating ip,實現外部訪問虛擬機

點擊Project下Compute下的Access & Security下的Floating IPs中的Allocate IP to Project,選擇建立的外部網絡,獲取一個浮動IP,然後將此IP綁定到須要經過外部訪問的虛擬機上。即可實現外部網絡訪問虛擬機。

5.6 設置Security Group解決ping不一樣的問題

經過上述步驟建立完網絡虛擬機以後有時會發現外部沒法ping通或者ssh虛擬機或訪問虛擬機http端口等問題,這是因爲OpenStack的安全規則形成的,點擊Project下Compute下的Access & Security下的security groups爲default組加上ingress 和egress的all tcp rule、all ICMP rule、以及all udp rule。

6、總結

以上是使用DevStack安裝OpenStack及使用的完整步驟,整個機房除了刷牆、鋪地板沒有涉及,其餘的基本都涉及到了。當你真的完全完全可以實操一遍,你會發現整個世界完全清晰了,頓時豁然開朗,一切事都再也不是事,更勿論再安裝其餘軟件,都是灑灑水啦!OpenStack真的有如此魅力!

相關文章
相關標籤/搜索