背景:公司需要搭建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的某些服务,请自行百度查看指令。