第一次使用devstack安装OpenStack的过程中,遇到了很多问题,在这里记录一下。
错误1: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决办法:首先,打开/etc/mysql下的文件debian.cnf,里面有user和password,使用该用户名登陆mysql数据库, mysql -u username -p。登陆成功之后修改root用户的密码,update user set password=password(新密码) where user='root',最后执行flush privileges;
错误2:Thisserver could not verify that you are authorized to access the document yourequested
解决办法:这应该是没有采用stack用户身份去执行命令./stack.sh造成的。
cd /home/devstack/tools
./create-stack-user.sh #创建stack用户身份
su stack
cd /home/devstack
./stack.sh #使用stack用户身份执行./stack.sh
错误3:cannot create directory '文件': Permission denied
解决办法:sudo chown –R stack:stack 文件
错误4:Error:service q-agt isnot running
解决办法:是ubuntu 内核版本和OVS版本不兼容造成的,可以通过提高OVS的版本或者降低ubuntu内核版本来解决
降低ubuntu内核版本:
apt-getinstall linux-headers-3.2.0-51.generic
apt-get install linux-image-3.2.0-51-generic
reboot
重启后用uname –r 查看一下当前内核版本号,若未修改过来就把grub.cfg文件中版本号全部替换成新安装的版本号。
sudo chmod +w /boot/grub/grub.cfg
sudo vi /boot/grub/grub.cfg
将文件中原来的内核版本号全部修改为新的版本号
reboot
错误5:nova flavor-listERROR: [Errno 111] Connection refused
解决办法:应该是在配置文件/etc/nova/nova.conf中设置了enable_apis=metadata;应改为enable_apis=ec2,osapi_compute;
但由于该文件是在执行./stack.sh文件自动生成的,因此需要把stackrc文件里的enable_apis=ec2,osapi_compute,metadata;改为enable_apis=ec2,osapi_compute;
vi /home/devstack/stackrc
去掉metadata。
错误6:脚本运行到:cloning git://git.openstack.org......就停止不前
解决办法:vi /home/devstack/stackrc
把cloning git://git.openstack.org......改为cloning https://git.openstack.org......
错误7:ERROR (CommandError): You must provide a username or user id via ......
解决办法:
ps:在安装完成之后最好做一个快照,安装后虚拟机重启时不会自动启动服务,需要手动重启,手动重启的命令为:
screen -c stack-screenrc
下面的“n-sch*”表示的是nova-scheduler服务,前面的14表示这个服务的编号,上面的信息是这个服务的日志信息,可以在这里查看输出情况。有错误时也可以在这里查看。
切换不同服务的方法为按 ctrl+a+' (即:ctrl+a+单引号),这是屏幕左下角会显示“Switch to window:”表示要前往的服务控制台,你可以输入18,表示看n-cpu (nova-compute)服务的情况。
停止服务的方法是在在相应控制台下使用:ctrl+c,再启动这个服务是按下“↑”(即向上键),然后在按enter键。
退出控制的方法是使用ctrl+d