这个其实有点技术含量,我平常基本是靠经验。不过自己测试,难免有遗漏。如果一个新的版本出来,如何才能进行完整的测试呢?
今天看到redhat搞的一个Openstack测试日,里面的测试用例,应该可以很好借鉴一下。
https://fedoraproject.org/wiki/Test_Day:2012-09-18_OpenStack
我应该可以补充,让他更加完整。或者哪天翻译出来。
这个其实有点技术含量,我平常基本是靠经验。不过自己测试,难免有遗漏。如果一个新的版本出来,如何才能进行完整的测试呢?
今天看到redhat搞的一个Openstack测试日,里面的测试用例,应该可以很好借鉴一下。
https://fedoraproject.org/wiki/Test_Day:2012-09-18_OpenStack
我应该可以补充,让他更加完整。或者哪天翻译出来。
整理一下Openstack的命令。下面的命令,我都是全部在机器验证过,主要是参考 redhat文档
查看rabbitmq 队列
rabbitmqctl list_queues
查看keystone的用户
keystone user-list
查看keystone endpoint
keystone endpoint-list
查看keystone的role
keystone role-list
查看keystone 服务
keystone service-list
查看keystone租户
keystone tenant-list
查看租户情况
keystone tenant-get ID
查看keystone进程
ps -ef | grep -i keystone-all
查看日志是否有错误
grep ERROR /var/log/keystone/keystone.log
上传image
glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf \ disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img
查看image
glance index
nova 命令查看image
nova image-list
查看image具体信息(ID是通过 glance index 查看获得)
glance show ID
查看nova 服务
nova-manage service list
创建密钥
nova keypair-add oskey > oskey.priv chmod 600 oskey.priv
申请floating IP
nova floating-ip-create
安全组相关命令
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 nova secgroup-list nova secgroup-list-rules default
查看虚拟机配置种类
nova flavor-list
创建虚拟机(一个test的虚拟机)
nova boot --flavor 2 --key_name oskey --image ea3ffba1-065e-483f-bfe2-c84184ee76be test1
完整创建一个虚拟机的流程
nova keypair-add oskey > oskey.priv chmod 600 oskey.priv nova flavor-list nova image-list nova boot --flavor 2 --key_name oskey --image ea3ffba1-065e-483f-bfe2-c84184ee76be test1 nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
查看申请flating IP 列表
nova floating-ip-list
查看虚拟机
nova list
添加floating IP给虚拟机(id是虚拟机的ID,通过nova list获得)
nova add-floating-ip 7eb1d4b3-13fa-4e39-be17-3a27eb0db218 10.1.199.33
查看虚拟机的floating IP (nova list,就可以查看,需要等待1分钟)
nova list
ssh到虚拟机上 (ubuntu的虚拟机,默认的用户名是ubuntu,只能用密钥登陆)
ssh -i oskey.priv ubuntu@192.168.22.2
删除flating IP (ID就是虚拟机ID,通过 nova list 获得)
nova remove-floating-ip ID 10.1.199.33
删除虚拟机
nova delete ID
创建10G的volume
nova volume-create --display_name "test volume" 10
查看nova volume情况
nova volume-list
把volume添加到虚拟机上
( ID是虚拟机的id,后面的1,是volume的ID)添加完后可以通过 nova volume-list查看结果
nova volume-attach 7eb1d4b3-13fa-4e39-be17-3a27eb0db218 1 /dev/vdc
查看虚拟机里的volume情况(登陆虚拟机里)
ubuntu@test1:~$ cat /proc/partitions major minor #blocks name 253 0 10485760 vda 253 1 10474380 vda1 253 16 20971520 vdb 253 32 10485760 vdc
格式化分区
sudo mkfs.ext4 /dev/vdc
sudo mkdir -p /mnt/volume sudo mount /dev/vdc /mnt/volume
删除volume
nova volume-detach VM_ID Volume_ID
创建snapshot ( 完成后可以通过 nova image-list 查看)
nova image-create 7eb1d4b3-13fa-4e39-be17-3a27eb0db218 "snapshot 1"
虚拟机重启,停止
nova suspend ac9e6a9f-58c3-47c3-9b4c-485aa421b8a8 nova resume ac9e6a9f-58c3-47c3-9b4c-485aa421b8a8 nova reboot ac9e6a9f-58c3-47c3-9b4c-485aa421b8a8
ova get-vnc-console myserver20 novnc
今天看到彭勇的blog,提到这个问题。真的是非常及时。
其实7月份的时候,我就听sina的程辉提到这个问题,在大负载的时候,网络突然中断,表面上看都是正常的。症状和彭勇描述的是一样的。据说在IRC里讨论这个问题也很激烈。
看完了https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/997978
http://bugs.centos.org/view.php?id=5526
如果你在运营中遇到这样的bug,估计你会疯掉的。
彭勇的blog,已经给出解决的办法,大家好好学习.
这个东西以前一直都知道,不过真没实际使用.现在希望他每天帮我去同步源.所以就深入学习一下这个.
yum install crontabs
注意啊,是crontabs
不过现在的系统,默认是已经安装好,默认是不启动,你只需要启动该服务就可以.
/etc/init.d/crond start chkconfig crond on
这个时候,你就可以使用 –l 参数来查看当前用户的计划任务。
# crontab -l 30 21 * * * /root/ubuntu_mirror.sh
添加计划任务,
crontab -e
就可以进入vi编辑器.比较简单.
下面这些例子,倒是很全面,直接参考就基本可以满足我的需求.
http://www.cppblog.com/API/archive/2012/03/28/169237.html
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
2,crontab 格式
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab特殊的符号说明:
“*”代表所有的取值范围内的数字。特别要注意哦!
“/”代表每的意思,如”*/5″表示每5个单位
“-“代表从某个数字到某个数字
“,”分散的数字
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启 apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、 10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每 隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三 的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小时同步一下时间
——————————– 如何查看crontab的日志记录 ——————————————————–
昨天crontab中的同步任务没有执行,不知道是什么原因没有执行,貌似任务hang住了,想查询一下crontab到底问题出在哪里,或者hang在了什么地方。
1. linux
看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察
2. unix
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 这些文件就可以看到正在执行的任务了。
3. mail任务
在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。
现在我把yum,apt-get,wget,都使用了代理,现在看看git如何使用代理。
测试devstack脚本,最痛苦的事情,就是每次下载git一堆的东西,时间非常漫长。本来希望搞一个本地的git,定时clone一下,不过这个有点高难度,对我来说。所以就先考虑git用proxy,这样重新安装,就省事多了。
http://www.vpsee.com/2011/07/how-to-use-git-through-a-http-proxy/
由于devstack脚本是 git clone https
所以也就简单。
export http_proxy="http://10.1.199.5:3128/" export https_proxy=http://10.1.199.5:3128/
看看squid的log
1346123268.900 82497 10.1.199.8 TCP_MISS/200 681992 CONNECT github.com:443 - DIRECT/207.97.227.239 -
把源放到本地,可以大大提供效率,加上现在的公司,网络并不是太好,所以就更需要解决这个问题。对于centos和ubuntu,本地源的制作,其实有很大的差异。
这里做一个总结。
CentOS
对于CentOS来说,全部的源其实包括好几部分,这些包都分为x86和i386,我在服务器,也就只使用x86的包就足够。
对于CentOS6.x来说,update和plus是相同的。
用cobbler,可以很方便制作本地源。你可以采用光盘导入,+update和pluse下载的方式,整合起来使用。
对于其他例如puppet的centos的源,也是可以用相同的方式来下载和管理。
对于EPEL的源,redhat的策略是先放在epel-testing上测试,没问题,再移到epel上。同步本地的方式,都是一样的。
Ubuntu
对我来说,ubuntu和centos的源,最大的不同是:ubuntu各个版本的软件包,全部都是在一个目录下。这样比较考验你的rsync的水平。
对于ubuntu的源来说,如ubuntu 12.04的源,分为
你安装完一个ubuntu后,他默认的源,就是上面的5个,并且还需要包括x86,i386和源码包。所以为了客户端不报错。最简单的办法,就是直接把全部的源下载到本地,120G的内容。
这个可以采用脚本下载。http://www.chenshake.com/centos6-x-production-of-ubuntu12-04-source/
对于puppet的第三方的源,如果是给ubuntu 12.04使用的,基本可以用相同的脚本,修改一下就可以使用。目前我正在下载puppet的apt源,
不过就是需要解决一个源的签名的问题:http://www.chenshake.com/the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available-the-solution/
可以考虑使用安装的时候,用脚本导入。