devstack部署openstack环境

时间:2022-05-08 09:23:29

背景:公司需要搭建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地址

devstack部署openstack环境

虚拟机ip:192.168.0.100

确认是否可以ssh登录虚拟机

devstack部署openstack环境

上面的图片仅供参考,由于我在多台机上实验,整理有误,配置过程的文件主要看一下信息

设置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的某些服务,请自行百度查看指令。