背景:公司需要搭建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.0.100
netmask 255.255.255.0
gateway 192.168.0.1
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
安装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
默认为Pike版本
创建 stack 用户
#devstack/tools/create-stack-user.sh
将devstack目录放到/opt/stack下,并设置权限
#mv devstack /opt/stack
#chown -R stack:stack /opt/stack/devstack
#chmod 777 /dev/pts/0
切换到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
编辑内容:
[[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
SERVICE_TOKEN=admin
RABBIT_PASSWORD=admin
#FLAT_INTERFACE=eth0
HOST_IP=192.168.2.100
# only support IP v4
SERVICE_IP_VERSION=4
#not create default network
ENABLE_IDENTITY_V2=True
# 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
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.2.0/24"
FIXED_RANGE="192.168.100.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.2.102,end=192.168.2.110
PUBLIC_NETWORK_GATEWAY="192.168.2.1"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
# VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=1100:2999
# Work offline
#OFFLINE=True
# Reclone each time
RECLONE=True
# Logging
# -------
# By default ``stack.sh`` output only goes to the terminal where it runs. It can
# be configured to additionally log to a file by setting ``LOGFILE`` to the full
# path of the destination log file. A timestamp will be appended to the given name.
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs
保存退出
**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
等待完成如遇超时(timeout)报错请再次运行./stack.sh
完成后使用虚拟机ip登录图形化界面。
devstack更新迭代,可能过几个月我这篇配置失效,单机部署openstack仅供试玩~ |