介绍:
宿主机win10,在vmware下创建两台ubuntu16.04虚拟机,一台作为控制节点,一台作为计算节点,利用devstack部署openstack ocata。
前期工作:
1、下载ubuntu镜像,我用的是ubuntu-16.04.3-server-amd64版本
2、下载vmware workstation,我用的是vmware workstation 11版本
3、下载xshell,用于ssh连接虚拟机,方便复制代码
4、安装完vmware后,点击编辑,启动虚拟网络编辑器,选择vmnet8,依次设置子网ip、子网掩码、点击NAT设置,修改网关为10.10.10.2(10.10.10.1默认分给宿主机)
安装虚拟机:
作为控制节点的虚拟机至少分配40g磁盘空间,4g内存,处理器开启虚拟化,网络适配器设置NAT模式,再添加一个网络适配器,设置为host-only模式;作为计算节点的虚拟机至少30g磁盘空间,2g内存,网络适配器类似;然后启动虚拟机,安装操作系统。
开始搭建:(控制节点+计算节点)
1、安装完毕,进入系统,切换到root用户并设置密码
sudo su
passwd
2、编辑sshd_config文件
vi /etc/ssh/sshd_config
将PermitRootLogin改为yes,保存退出。
重启ssh服务
service ssh restart
问题1:没有sshd_config文件,需要安装openssh-server:apt-get install openssh-server
问题2:vi编辑器无法编辑,需要安装vim编辑器:apt-get install vim
3、测试虚拟机能否ping通宿主机、能否ping通外网,测试宿主机能否ping通虚拟机,都可以的话利用xshell通过ssh连接虚拟机
4、ssh访问成功后,查看网卡信息(ip a),编辑网卡信息
vi /etc/network/interfaces
替换掉原来的ens33、ens34信息(我的网卡名是ens33和ens34,将它们替换为你们的网卡名;这里我设置控制节点的ip为10.10.10.10,计算节点ip为10.10.10.11,大家随意;网关设置为10.10.10.2,与前面虚拟网络编辑器设置的一致就好)
auto ens33
iface ens33 inet static
address 10.10.10.10
netmask 255.255.255.0
gateway 10.10.10.2
dns-nameserver 114.114.114.114
auto ens34
iface ens34 inet manual
保存退出,reboot重启,输入ip r查看ip是否改变,ping下外网是否可ping通,成功可进入下一步
5、换源,将apt源换为国内的源。
备份:cp /etc/apt/sources.list /etc/apt/sources.list.back
编辑:vi /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
6、输入pip检测是否安装pip,若没有则输入apt-get install python-pip安装。
设置pip源:
mkdir ~/.pip
vi ~/.pip/pip.conf
添加
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
保存退出。
7、设定时间同步
设定时区:dpkg-reconfigure tzdata
选择Asia -> 再选择Shanghai -> OK
同步时间命令:
1、sudo apt-get install ntpdate // 安装时间同步工具
2、sudo ntpdate cn.pool.ntp.org // 与网络服务器同步时间
3、date // 查看时间是否已同步
8、安装git:apt-get install git
9、创建stack用户:
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
切换到stack用户:
sudo su - stack
重复步骤6,给stack用户也布置pip源
10、下载devstack
cd /opt/stack
git clone https://github.com/openstack-dev/devstack -b stable/ocata
cd devstack
11、编辑local.conf文件
vi local.conf
添加如下内容:
控制节点:(HOST_IP改为你的控制节点ip,# Credentials 设置密码,# Branches设置要装的openstack版本)
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=10.10.10.10
LOGFILE=/opt/stack/logs/stack.sh.log
# Credentials
ADMIN_PASSWORD=ztabtabz
MYSQL_PASSWORD=ztabtabz
RABBIT_PASSWORD=ztabtabz
SERVICE_PASSWORD=ztabtabz
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-vpn
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# Branches
KEYSTONE_BRANCH=stable/ocata
NOVA_BRANCH=stable/ocata
NEUTRON_BRANCH=stable/ocata
SWIFT_BRANCH=stable/ocata
GLANCE_BRANCH=stable/ocata
CINDER_BRANCH=stable/ocata
# 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,# Credentials 设置密码,# Branches设置要装的openstack版本)
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=10.10.10.11
# Credentials
ADMIN_PASSWORD=ztabtabz
MYSQL_PASSWORD=ztabtabz
RABBIT_PASSWORD=ztabtabz
SERVICE_PASSWORD=ztabtabz
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# Service information
SERVICE_HOST=10.10.10.10
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
CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql
ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
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
# Branches
KEYSTONE_BRANCH=stable/ocata
NOVA_BRANCH=stable/ocata
NEUTRON_BRANCH=stable/ocata
SWIFT_BRANCH=stable/ocata
GLANCE_BRANCH=stable/ocata
CINDER_BRANCH=stable/ocata
# 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
保存退出。
12、安装。
在stack用户下,运行/opt/stack/devstack/stack.sh
等待1小时左右,如报错(time out),一般是网速问题,重新运行stack.sh就好。
13、安装完成
提示This is your ip 等等,代表安装成功。
14、浏览器输入控制器ip,访问openstack。
用户名:admin,密码:你设置的密码。登陆后检测下各服务是否都能正常访问;最好做个快照,以防万一。
注意:虚拟机重启后openstack服务不会自动运行,需要切换到devstack目录下,输入screen -c stack-screenrc 以手动启动