背景:公司需要搭建openstack私有雲。配置兩台物理服務器。
各大搜索引擎了解了下OpenStack。決定先在虛擬機上部署實現openstack。
前提准備
設備:一台宿主機Windows10 1607,一台ubuntu server 16.04
軟件:virtualBox 5.2.0
鏡像:ubuntu server 16.04
虛擬機配置
內存 4G
硬盤空間 80G
虛擬光盤 ubuntu-16.04.3-server-amd64.iso
網卡1 橋接網卡 #鏈接互聯網
網卡2 內部網絡
網卡3 host-only網絡
其他默認
虛擬機安裝過程
Primary network interface: 選enp0s3
Choose software :空格選中 standard system utilit,Virtual Machine hose(虛擬機開啟虛擬化功能) OpenSSH server(SSH服務)
其他默認。。。
虛擬機啟動配置
我的宿主機ip是192.168.0.102
登錄用戶
#ip r
查看ip地址

虛擬機ip:192.168.0.100
確認是否可以ssh登錄虛擬機

上面的圖片僅供參考,由於我在多台機上實驗,整理有誤,配置過程的文件主要看一下信息
設置root密碼
#sudo passwd
切換root登錄
#su root
修改interfaces文件允許root ssh
#vim /etc/ssh/sshd_config
找到PermitRootLogin prohibit-password
修改成PermiRootLogin yes
修改interfaces文件,固定ip
#vim /etc/network/interfaces
在#The primary network interface下面編輯
auto enp0s3
iface enp0s3 inet static
address 192.168.2.85
netmask 255.255.255.0
gateway 192.168.2.0
dns-nameservers 114.114.114.114
auto enp0s8
iface enp0s8 inet manual
autp enp0s9
iface enp0s9 inet manual
#ip設置需看實際配置,不是固定
重啟虛擬機嘗試root SSH固定的ip登錄
更換apt源為阿里源
vim /etc/apt/sources.list
替換文本中內容
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-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
保存退出執行
#apt-get update
#apt-get upgrade
設定時間同步
設定時區:dpkg-reconfigure tzdata
選擇Asia -> 再選擇Shanghai -> OK
同步時間命令:
1、sudo apt-get install ntpdate // 安裝時間同步工具
2、sudo ntpdate cn.pool.ntp.org // 與網絡服務器同步時間
3、date // 查看時間是否已同步
安裝pip
apt-get install python-pip
pip更換為豆瓣源
#mkdir .pip
#vim .pip/pip.conf
編輯內容:
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
下載devstack
#git clone https://github.com/openstack-dev/devstack -b stable/pike
創建 stack 用戶
#devstack/tools/create-stack-user.sh
將devstack目錄放到/opt/stack下,並設置權限
#mv devstack /opt/stack
#chown -R stack:stack /opt/stack/devstack
切換到stack用戶 切換用戶后 所有操作均在stack用戶下,直到部署成功都不需要切換用戶。
#su - stack
給stack用戶配置一樣的pip的豆瓣源
#mkdir .pip
#vim .pip/pip.conf
編輯內容:
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
cd到devstack目錄下
#cd devstack
創建local.conf
#vim local.conf
編輯內容:
Controller
[[local|localrc]]
# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
# 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/sice-html5.git
# Credentials
DATABASE_PASSWORD=admin
ADMIN_PASSWORD=admin
SERVICE_PASSWORD=admin
RABBIT_PASSWORD=admin
# Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron
## Neutron options
HOST_IP=192.168.2.85 #自己controller的ip
FLAT_INTERFACE=enp10s0f0 #使用controller上的那一塊網卡
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.2.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
保存退出
Compute
[[local|localrc]]
HOST_IP=192.168.2.86 # change this per compute node
FLAT_INTERFACE=eth0
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.2.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
DATABASE_TYPE=mysql
SERVICE_HOST=192.168.2.85 //controller節點ip
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,q-agt,n-api-meta,c-vol,placement-client
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
controller節點和compute節點除local.conf不同,interfaces設置不同外其余皆一樣
如果你只是搭建一個節點可以不用管compute節點的配置
**HOST_IP=后面的值為虛擬機ip
cd 到files目錄下手動下載兩個壓縮包防止超時報錯
#cd files/
#wget -c https://github.com/coreos/etcd/releases/download/v3.1.10/etcd-v3.1.10-linux-amd64.tar.gz
#wget -c https://github.com/coreos/etcd/releases/download/v3.1.7/etcd-v3.1.7-linux-amd64.tar.gz
**一次下載不成功請多執行上面命令幾次直到finish
cd回devstack目錄下
#cd ..
運行./stack.sh
#./stack.sh
遇到其他報錯主要檢查local.conf然后清理上次錯誤配置./unstack.sh和./clean.sh,然后再運行./stack.sh配置
等待完成如遇超時(timeout)報錯請再次運行./stack.sh
完成后使用虛擬機ip登錄圖形化界面。
devstack更新迭代,可能過幾個月我這篇配置失效,這次是雙節點配置openstack僅供試玩~
主要參考網站https://docs.openstack.org/devstack/latest/guides/multinode-lab.html
配置完成后如果不小心關機需要重啟openstack的某些服務,請自行百度查看指令。
