Nov 272013
 

我以前一直使用一个脚本下载Ubuntu的源,Ubuntu 12.04的源,全部大概是120G,我1M带宽,要下载完,真的要10天时间。脚本运行过程中经常因为网络各种原因,中途退出和中断。

Ubuntu 源下载脚本http://www.chenshake.com/centos6-x-production-of-ubuntu12-04-source/

如果能让脚本退出后,自动继续运行呢?这是困惑我很久的问题,今天请教同事,终于搞定。

原理就是设置Crontab,检查一下脚本是否在运行,如果没有运行,就运行该脚本。如果在运行,就不进行任何操作。

Continue reading »

Nov 262013
 

今天打算尝试使用RDO进行部署,把Neutron单独一个节点进行部署,而不是安装在控制节点上。我对packstack的那个应答文件还是很熟悉的。应该只需要设置几个参数就可以。

CONFIG_NEUTRON_SERVER_HOST=172.28.1.12
CONFIG_NEUTRON_L3_HOSTS=172.28.1.12
CONFIG_NEUTRON_DHCP_HOSTS=172.28.1.12
CONFIG_NEUTRON_METADATA_HOSTS=172.28.1.12

这个时候packstack就会把Neutron安装在一个单独的节点里。一起看上去都很顺利,我登陆Dashboard,结果出现错误。这我一下子就蒙了。我重新安装一遍,检查参数,发现没任何问题。

先把Dashboard打开debug状态,看看为啥不能登陆

编辑 /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py

#DEBUG = False
DEBUG = True

重启apache,这时候登陆Dashboard。就可以明显看到无法登陆的错误。

无法连接到Neutron.

看到这个错误,我第一想到的就是这个bug

http://openstack.redhat.com/forum/discussion/910/havanna-issues-with-multi-node#Item_14

我检查一下我的两个计算节点的 /var/log/neutron/openvswitch-agent.log

2013-11-26 20:37:50.713 996 INFO neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] 
Agent tunnel out of sync with plugin!
2013-11-26 20:38:51.033 996 INFO neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] 
Agent tunnel out of sync with plugin!

这个时候,我去网络节点,添加两条iptables的规则

iptables -I INPUT -s 172.28.1.10/32 -p tcp --dport 9696 -j ACCEPT
iptables -I INPUT -s 172.28.1.132/32 -p tcp --dport 9696 -j ACCEPT

这时候重启一下计算节点的switch agent,

/etc/init.d/neutron-openvswitch-agent restart

log里的错误信息就没有。

不过这个时候我还是无法登陆Dashboard,还是显示相同的错误,无法连接到Neutron.

我登陆Neutron,查看一下 /var/log/neutron/server.log

 TRACE neutron.common.config ImportError: No module named keystoneclient.middleware.auth_token

猜测网络节点没有安装keystone client,并且还发现neutron server是无法启动。

yum -y install python-keystoneclient

重启

/etc/init.d/neutron-server restart

这个时候,我就可以登陆Dashboard.

 

顺便给redhat报告一个bug.http://openstack.redhat.com/forum/discussion/945/havana-neutron-in-single-node-lack-keystone-client#Item_1

Nov 222013
 

估计刚开始使用Openstack用户,一定会比较困惑Openstack的镜像的初始化密码是多少? 不同的镜像初始化密码是不一样,这里做一个总结。

虚拟机登陆方式

对Openstack来说:访问虚拟机提供了两种方式,

  • ssh方式
  • Dashboard的console。

Console方式,相当于你服务器前面直接登陆。有些虚拟机镜像处于安全考虑,不允许root的账号直接远程ssh登陆。

Ubuntu镜像

下载地址

http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

这个是非常有名的镜像,大家用来测试也比较多。这个镜像默认是无法使用密码登陆,只能使用密钥登陆。所以你在console,也是无法登陆到虚拟机。

默认的用户名是:ubuntu,你需要使用密钥才能登陆。

如果你希望console可以登陆,那么你就需要想点办法

Snap6

这个时候,创建完的虚拟机,在console,就可以用 user:ubuntu,pass:ubuntu 登陆,不需要密钥。

不过这个时候,你还是无法通过ssh访问虚拟机,因为ssh默认设置是禁用密码认证,所以你需要多做点工作。

#!/bin/sh
passwd ubuntu<<EOF
ubuntu
ubuntu
EOF
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart

这样你就可以使用ssh登陆到虚拟机,不需要通过console。

用root登陆

如果你希望直接使用root登陆,那么你就需要给root设置一个密码。

Snap7

这里设置的密码,就是镜像管理员的密码,也就是root的密码。

默认Redhat的RDO配置是不支持这个功能,你需要修改所有节点的nova.conf 文件

# Inject the admin password at boot time, without an agent.
# (boolean value)
#libvirt_inject_password=false
libvirt_inject_password=true

记住,是所有的节点,都是需要修改的。重启compute服务

/etc/init.d/openstack-nova-compute restart

当然你这样肯定还是无法ssh,使用root登陆,你就需要结合一下上面的一个例子,你就可以。

Snap8

就是输入下面的代码

#!/bin/sh
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart

这个时候,你就可以ssh,用root的身份登陆进去。

Cirros

Openstack的开发,基本都使用这个image来测试,因为他比较小,只有10M。

镜像介绍 

镜像的地址:

https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

Cirros,是可以使用用户名和密码登陆,也可以使用密钥登陆

user:cirros
password:cubswin:)

这个密码比较特别,所以你可以使用上面的方法来设置这个镜像的root的密码,实现ssh登陆。

CentOS Gold Image

国内用CentOS比较多,不过在Openstack上的CentOS image,以前都只能自己去制作。这个需要一个大家信任的第三方来完成。最近有了一个选择

http://catn.com/labs/centos-images/

http://catn.com/2013/04/18/building-a-virtual-machine-image-for-centos/

教你如何制作CentOS的image,并且提供现成的image下载

镜像下载地址:

http://mirror.catn.com/pub/catn/images/qcow2/centos6.4-x86_64-gold-master.img

镜像账号

  • user:root
  • pass:changeme1122

你是可以在创建虚拟机的时候,直接把这个root的密码修改。默认是运行root登陆。

不过这个image,没有集成cloud-init。导致你看到的虚拟机名字,不是你设置的计算机名。

 

其他image资源

http://docs.openstack.org/image-guide/content/ch_obtaining_images.html

http://openstack.redhat.com/Image_resources

附录

你需要设置安全组,打开22端口才能ssh登陆。

Snap9

Nov 202013
 

采用豆瓣的pypi进行安装。

目前Devstack脚本已经支持Centos 6.5,那么你可以选择是在Ubuntu 12.04或者CentOS 6.5下来安装,步骤基本都是一样。就是一个git命令安装的区别.

最小化安装CentOS 6.5,我是关闭了selinux,不关闭应该也是可以的。,用root账号登陆。

对于CentOS6.5来说,devstack脚本会添加EPEL和RDO源。

2014年6月6日:文档更新,已经可以支持siwft和trove。不过安装过程,你可能会遇到cliff的bughttps://review.openstack.org/#/c/95916/,如果你遇到horizon无法启动,那么你就去 /etc/httpd/conf.d/ 里把那个配置文件后缀disable去掉就ok。还有就是安装过程,由于启用了heat,会下载一个heat的镜像,会导致安装过程很慢,可以考虑修改stackrc文件,不让下载。另外csdn的git源,也应该没法使用,因为项目太多没有同步了。

修复cilff的bug,估计上游很快就会merge

cd /opt/stack/cliff/
git fetch https://review.openstack.org/openstack/cliff refs/changes/16/95916/4 && git checkout FETCH_HEAD

Continue reading »

Nov 122013
 

Openstack的网络一共有5种,其实对于租户网络来说,应该就是4种。所谓Flat模式,并不是租户的网络,而是把虚拟机直接放在 provider networks,就是管理员创建一个网络,让所有的租户直接连接到外网,获得的是公网的IP,不需要经过NAT。

  1. local模式:这主要是给测试使用,只能是all in one,不能再添加节点
  2. GRE模式:隧道数量没有限制,性能有点问题。
  3. Vlan模式:vlan数量有4096的限制
  4. VXlan模式:vlan数量没有限制,性能比GRE好。

每一种模式,网络的配置都会有所不同,打算每种网络模式,写一篇文章介绍。这里主要是介绍GRE模式的配置。

我的RDO的网络设置和应答文件 GRE模式:http://t.cn/8DDql5W Vlan模式:http://t.cn/8DDql5O 完成后,自己手工创建ifcfg-br-ex http://t.cn/8DDql50

2013年11月22日:目前RDO在多节点部署有bug,在计算节点创建的虚拟机都会失败。http://openstack.redhat.com/forum/discussion/910/havanna-issues-with-multi-node#Item_14  解决办法就是装完后在控制节点,添加一条iptables的规则:

iptables -I INPUT -s 172.28.1.12/32 -p tcp --dport 9696 -j ACCEPT

并保存规则:service iptables save ,172,28,1,12是我计算节点的IP地址。 (bug已经修复)

2013年11月27日:如果你发现虚拟机访问外网速度很慢,在控制节点,准确说,在网络节点,我的例子里是br-ex绑定在eth0上,运行下面命令,就会让虚拟机访问外网获得正常速度。

ethtool --offload eth0 gro off

2013年12月12日:今天按照文档,设置MTU 为1400,好像把所有的问题都解决,虚拟机间的访问和虚拟机访问外网,不需要对网卡做任何的设置。我也顺便把文档更正一下。上面的网卡设置ethtool,不需要操作。目前基本的功能都已经正常,文档也基本完成。

 

Continue reading »

Nov 012013
 

以前整理的cobbler的安装文档,今天看来,其实问题不少,这次我就重新整理一遍,这次文档和以前主要区别是

  1. iptables打开端口,而不是关闭iptables,显得更加正规
  2. dns和dhcp的管理采用dnsmasq,这样更加简化
  3. 不考虑ubuntu,这样让文档更加简单。一篇文档就可以完成全部设置

参考文档:http://terrarum.net/administration/centos-6-cobbler-server.html

2014年1月17日:把文档更新了一下,在centos6.5进行重新安装,基本可以确保文档没有任何的错误,尤其在iptables的地方,已经反复测试。发现文档有一个地方遗漏,导致无法管理dhcp,比较惭愧。

2014年2月28日:更新了ks文件,把密钥注入的功能补上。这基本就是我目前使用的全部功能。关于对cobbler web的定制,我也让同事把所有的修改放到github上。https://github.com/niuzhenguo/cobbler_enhance

Continue reading »