OpenStack提供了一个自动部署的工具,使用该工具尝试安装
1. 使用另外的用户安装openstack,按照他默认配置,增加俩个用户
sudo adduser nii
sudo adduser nova
添加sudo权限
~sudo visudo
nova ALL=(ALL) NOPASSWD:ALL
nii ALL=(ALL) NOPASSWD:ALL
2. 环境部署
su到用户nii安装
su nii
ssh免登陆设置
ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa
ssh-copy-id nii@(each nova component server name)
笔者这边是把所有服务都装在一台机器上ssh-copy-id nii@ubuntu-r1
3. 安装
wget http://launchpad.net/nova-deployment-tool/cactus/cactus1.2/+download/nova-deployment-tool-cactus.tgz
tar -xvzf nova-deployment-tool-cactus.tgz
cd Deployment
修改配置文件,根据实际服务器地址配进去。因为笔者把所有组件都安装在一台机器,所以批量替换如下
sed -i "s/ubuntu7/ubuntu-r1/g" `grep ubuntu7 -rl *conf`
修改 conf/deploy.conf, 把default_store从swift修改成file。 (因为笔者环境没有专门的硬盘,所以没有安装swift, 后面想安装,发现apt-get的swift安装包有问题,根本装不上)
[glance]
default_store=file
在要安装进程的机器上添加nova PPA 源
sudo apt-get install python-software-properties -y
sudo add-apt-repository ppa:nova-core/release
sudo apt-get update
执行安装
./deploy.py install nova
./deploy.py install glance
目前swift有bug,安装不上去,所以我们没有安装swift
4.安装镜像
aptitude install kvm-pxe
kvm-img create -f raw server.img 6G
sudo kvm -m 256 -cdrom ubuntu-10.10-server-amd64.iso -drive file=server.img,if=scsi,index=0 -boot d -net nic -net user -nographic -vnc :0
通过vnc 客户端连到host的5900端口,进行安装
安装的过程中,把整个硬盘弄成1个ext4分区(swap都不要)
安装完成后,重新加载虚拟机,继续用vnc进行后续安装
sudo kvm -m 256 -drive file=server.img,if=scsi,index=0,boot=on -boot c -net nic -net user -nographic -vnc :0 -daemonize
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server cloud-init
生成image
需要对IMAGE的启动区进行忽略:
sudo losetup -f server.img
// losetup : set up and control loop devices
// -f Find the first unused loop device. If a file argument is present, use this device. Otherwise, print its name.
sudo fdisk -ul /dev/loop0
/ *-l List the partition tables for the specified devices and then exit. If no devices are given, those mentioned in /proc/partitions (if that exists) are used.
-u When listing partition tables, give sizes in sectors instead of cylinders.
*/
得到分区偏移起始位置512*2048=1048576
sudolosetup -d /dev/loop0
sudo losetup -f -o 1048576 server.img
//-o offset The data start is moved offset bytes into the specified file or device.
sudo dd if=/dev/loop0 of=serverfinal.img
sudo losetup -d /dev/loop0
sudo mount -o loop serverfinal.img /mnt
配置修改
vi /mnt/etc/fstab
修改:
UUID=381ddfff-5180-48c2-9ab2-4e17bda0d45f / ext4 errors=remount-ro 0 1
LABEL=uec-rootfs / ext4 defaults 0 0
生成ramdisk和kernel的image
cp /mnt/boot/initrd.img-2.6.35-22-server .
cp /mnt/boot/vmlinuz-2.6.35-22-server .
修改serverfinal.img标记
tune2fs -L uec-rootfs serverfinal.img
umount /mnt
uec-publish-image -t image --kernel-file vmlinuz-2.6.35-22-server --ramdisk-file initrd.img-2.6.35-22-server amd64 serverfinal.img bucket1
...
后续待续。。