平台工具介绍:
操作系统:Windows7
工具:VirtualBox 5.0.24
镜像:ubuntu-14.04.5-server-amd64.iso
//下载地址:ubuntu14.04.5-server版
DevStack版本:Mitaka
OpenStack版本:Mitaka
步骤:
一、创建虚拟机
1、启动VirtualBOX,设置全局设定—常规—默认虚拟电脑位置(设置一个方便管理的文件);
2、创建Ubuntu虚拟机,注意:控制节点需分配至少4G的内存,计算节点至少2G内存。
3、配置网卡,网卡的配置有多种方式,有单网卡方式和多网卡方式。
(公司网络需使用代理,如果仅使用一张桥接网卡方式会导致只能内部网络互Ping,却无法Ping通外部网络;如果仅使用一张Host Only网卡方式比较复杂。)
多网卡方式可以采用:网络地址转换(NAT)与桥接网卡组合;或者网络地址转换(NAT)与Host Only组合的方式。
本次采用的是网卡1设置为网络地址转换(NAT),网卡2设置为桥接网卡(界面名称选择计算机实际上网使用的网卡),其他默认即可。
4、安装Ubuntu Service系统 建议不选择中文,而是用默认值US;一路默认,设置名称,创建用户、密码等可以根据个人来设置,选择时区——shanghai;
在“Write the changes to the disk and configure LVM?”,选择YES;
在“Write the changes to disk?”,选择Yes;
一路默认,在最后“software selection”步骤只选择“OpenSSH Sever”(选择使用空格键),后面一路默认到安装完毕。
在登录界面,输入创建的用户和密码,登录虚拟机
二、虚拟机中环境配置
输入命令sudo passwd root ,设置root用户密码;su root 切换到root用户(后面一些操作需要root权限)。
此时虚拟机并未设置网络,因此还不能联网,也需要我们手动配置。
1)配置网络
1、输入:vi /etc/network/interfaces ,打开网卡配置文件。
2、eth0与网络地址转换(NAT)网卡1对应,可不做更改(此时默认为DHCP模式,网卡默认IP为10.0.2.15,网关为10.0.2.2)。该网卡能实现虚拟机Ping通外网,虚拟机Ping通主机。默认配置如下:
auto eth0
iface eth0 inet dhcp
3、eht1与桥接网卡2对应,此时没有此网卡的配置信息,需自己添加。为后面实验方便使用,设置为static模式。在内容最后面,添加eth1的具体IP参数等内容(根据自己的主机IP设置),如下:
auto eth1
iface eth1 inet static
address 10.170.3.219
netmask 255.255.255.0
#gateway 10.170.3.254
#dns-nameservers *.*.*.*
注意:gateway需注释掉,给网卡1设置gateway会导致虚拟机中同时存在两个网关或者仅使用eth1的网关,而上网并非使用该网卡,导致无法连接到外网;这里dns-nameservers也没有设置的必要。
4、DNS设置(通常系统会自动配置,所以可以跳过此步,如有需要DNS也可通过此文件修改)
vi /etc/resolv.conf //修改DNS,如使用代理需与代理设置相同
nameserver *.*.*.*
nameserver *.*.*.*
5、重启网卡,输入命令ifconfig 查看网卡信息。输入:“route”命令查看路由信息(在文件/etc/rc.conf 可设置路由表)。
6、如果以上信息核对完毕,主机与虚拟机可以互Ping,虚拟机Ping通外网,也可使用Xshell或其他类似工具,登陆虚拟机,便跳过6步骤,开始安装devstack;若仍无法Ping通,关闭防火墙,
输入命令:sudo ufw disable //关闭防火墙(防火墙可能导致主机无法Ping通虚拟机)
如虚拟机无法Ping通主机,可修改主机防火墙的入栈规则。
/etc/ssh/sshd_config //ssh服务的配置文件(ssh问题可在此文件设置)
2)配置devstack环境
需保证网络通畅!
返回虚拟机,并确保是root账户登陆,后续操作大多需要root权限。
1、备份原有系统配置。
cp /etc/apt/sources.list /home/sources.list.bak
2、修改源,因为国外的源很不稳定,建议使用国内的源,比如搜狐、阿里云等这个可自己Ping以下,选择一个最快的。我选择了中科院自己的源,速度很快!
执行命令: vi /etc/apt/sources.list ,将内容更换如下:
deb http://mirrors.opencas.cn/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.opencas.cn/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.opencas.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.opencas.cn/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.opencas.cn/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.opencas.cn/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.opencas.cn/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.opencas.cn/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.opencas.cn/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.opencas.cn/ubuntu/ trusty-backports main restricted universe multiverse
替换完成后保存退出。
3、执行命令:apt-get update命令,更新系统的软件包。
4、完成与服务器时间同步,执行命令: ntpdate ... (服务器地址我用的182.92.12.11).
5、安装git ,执行命令:apt-get install git。
6、安装pip ,执行命令:apt-get install Python-pip。
7、在/root 目录下,查看是否有.pip目录,若没有,创建该目录。
执行命令:mkdir .pip ,进入该目录,创建对应配置文件pip.conf 。
8、在配置文件中添加以下内容:
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple/
[install]
trusted-host = pypi.douban.com
这里使用的是pip上豆瓣的源,你也可以使用其它的源,比如清华大学的。
9、进入/home 目录下,执行以下命令下载DevStack:
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka
10、由于当前DevStack脚本已不支持直接使用root用户,所以需要自己创建stack用户。如果没有创建stack用户的话需要进系统把这个用户创建出来。
a、执行groupadd stack
执行:useradd -g stack -s /bin/bash -d /opt/stack -m stack
或者
执行命令:cd /home/devstack/tools,进入脚本目录。
执行命令:./create-stack-user.sh,创建stack用户。
b、执行命令:passwd stack,给stack用户设置密码。具体操作步骤同root用户。
c、执行命令:chown -R stack:stack /home/devstack,将对应目录及其下的文件更换用户组。
d、执行命令:chmod 777 /dev/pts/0,以便后续su切换到别的用户,也可执行screen命令。
e、在安装部署openstack的时候stack用户会修改很多系统的操作,这样我们需要stack用户拥有sudo到root并且无需输入密码的特权。
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
f、从这里开始使用stack用户。登入和登出都使用stack用户。
su stack
g、执行:cd ~,进入到stack用户名下的目录,默认是/opt/stack。像对root用户那样,添加pip的配置文件。参考当前小节7-8步骤。
配置完成之后,要注意对应的目录和文件,它们的用户组及用户是否都是stack,若不是,需要改过来。修改方法可参考当前小节步骤10。如果提示没有权限,可以在命令前加sudo。
三、安装DevStack
1、进入到/home/devstack目录下的local.conf文件,没有就创建一个。
2、打开该文件,进行编辑具体的配置,可根据情况和需求更改。
编辑内容如下:
a、集群控制节点上跑着所有openstack的服务。在集群控制节点devstack的local.conf文件中做如下配置。
[[local][localrc]]
HOST_IP=10.170.3.219
PUBLIC_INTERFACE=eth1 #public network
FLOATING_RANGE=10.0.2.0/29
FLAT_INTERFACE=eth1
FIXED_RANGE=10.170.3.0/28
PUBLIC_NETWORK_GATEWAY=10.0.2.2
#MYSQL_HOST=10.170.3.3
#RABBIT_HOST=10.170.3.3
#GLANCE_HOSTPORT=10.170.3.3:9292
#KEYSTONE_AUTH_HOST=10.170.3.3
#KEYSTONE_SERVICE_HOST=10.170.3.3
#FIXED_NETWORK_SIZE=15
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
#enable neutron-ml2-vxlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-13,q-meta,q-metering,q-lbaas,neutron,tempest,heat
#OFFLINE=True
b、计算节点
[[local|localrc]]
MULTI_HOST=true
HOST_IP=10.170.3.220 # management IP
FLAT_INTERFACE=eth1
FIXED_RANGE=10.170.3.0/24
#FIXED_NETWORK_SIZE=15
FLOATING_RANGE=10.170.3.0/28
PUBLIC_NETWORK_GATEWAY=10.0.2.2
TUNNEL_ENDPOINT_IP=10.170.3.220
#MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
#Use mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/sipce-htm15.git
# Service information
SERVICE_HOST=10.170.3.219
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE-HOST
GLANCE_HOSTPORT=10.170.3.219: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,n-net,n-api-meta,c-vol
# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://10.170.3.219:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
LOG_COLOR=Flase
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# OFFLINE=True
3、执行命令:./stack.sh进行DevStack的安装。
4、中间会出现各种问题,执行:./unstack.sh;或者:./clean.sh深度清除。
等待最终,出现默认用户:admin(demo)和密码,即安装完成;于主机chrome浏览器输入控制节点IP地址进入bashboard,输入用户密码登陆。