devstack创建虚拟主机步骤
devstack环境:是通过virt-manager安装的centos7minimal环境下的ocata版本的devstack。
概览:分为启动devstack和在dashboard上创建虚拟云主机两个过程
1开启devstack所在机器后,执行如下命令:
su stack
systemctl start httpd
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
systemctl status firewalld.service
service iptables stop
/etc/init.d/iptables stop
setenforce 0
systemctl start redis
sudo losetup -f/opt/stack/data/stack-volumes-default-backing-file
sudo losetup -f/opt/stack/data/stack-volumes-lvmdriver-1-backing-file
systemctl start tgtd
cd /home/devstack
source openrc admin admin
screen -c stack-screenrc
解释:
1.1首先需要通过切换到stack用户
才能执行启动httpd服务等操作,root下可能导致后续无法创建虚拟主机。执行如下命令实现
su stack
1.2 关闭防火墙
如果通过dashboard在浏览器上创建虚拟机,需要关闭防火墙,否则网址无法访问,通过执行如下命令实现:
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
systemctl status firewalld.service
service iptables stop
/etc/init.d/iptables stop
setenforce 0
1.3 启动redis服务
因为ceilometer中会用到redis(如果devstack上没有安装ceilometer,该步骤可以省略)。通过执行如下命令实现:
systemctl start redis
1.4 将块设备设置为循环设备
解决如果在后面已经创建虚拟云主机后,重启虚拟机,之前创建的虚拟机无法启动以及新的虚拟机无法创建这两个问题。通过执行如下命令:
sudo losetup -f/opt/stack/data/stack-volumes-default-backing-file
sudo losetup -f/opt/stack/data/stack-volumes-lvmdriver-1-backing-file
具体在c-vol中报错如下信息就可以通过上述命令来解决:
解决c-vol中ERROR cinder.service [-] Manager for service cinder-volumelocalhost.localdomain@lvmdriver-1 is reporting problems, not sending heartbeat.Service will appear "down". 的问题
1.5启动tgtd(targetframework)服务
该服务作用是执行存储相关的操作,后面创建虚拟云主机时需要通过该服务来对cinder进行操作。通过执行如下命令来实现:
systemctl start tgtd
具体解决的时如下报错问题:The tgtd daemon is notrunning or it's having some problem. Need to be started/restarted.
6导入环境变量并启动各个服务。通过执行如下命令实现。
cd /home/devstack
source openrc admin admin
screen -c stack-screenrc
解释。
source openrc admin admin用于覆盖openstack环境变量值
screen -c stack-screenrc是用于解决devstack重启后需要执行./stack.sh的问题。
它是逐个启动openstack的服务。screen命令用于提供多个openstack服务窗口的切换等操作。
2 通过dashboard访问网页
http://192.168.120.53/dashboard
将上述192.168.120.53替换成devstack的ip地址,输入用户名:admin,密码:
123456,进入后。
创建虚拟主机。创建过程中注意几点:
1 创建子网,该子网和devstack的ip地址对应的网段是相同的。
2 设置浮动ip,浮动ip和devstack的ip在同一个网段。作用是:提供ssh访问。
具体参考这篇博客:http://blog.csdn.net/zhjwpku/article/details/49102337
3其他问题
3.1虚拟云主机无法通过控制台console进入
当创建好虚拟云主机后,如果通过控制台console进入该虚拟主机后,当不论输入什么,都出现setkeycodes-00-and-unknown-key而导致无法进入主机时,参考这篇文章:
https://serenity-networks.com/how-to-fix-setkeycodes-00-and-unknown-key-pressed-console-errors-on-openstack/
执行如下命令
sudo su stack
cd /opt/stack/noVNC
git checkout v0.6.0
退出dashboard的网页登录,然后重新进入。即可解决该问题