Nov 282013
 

以前基本都是为了学习去配置Openvpn,不过这次真的是到实际需求,需要使用Openvpn,也就下工夫好好整理一下。

各种的中文的文档,让人很晕。还是看官方文档 http://openvpn.net/index.php/open-source/documentation/howto.html#quick

需求很简单。在家里需要通过Openvpn访问到公司的内网,可以访问公司内网我实验的服务器,同时我上网,还是走我自己的网络。

Continue reading »

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 »