安装CloudStackManager 的方法很多,我主要参考了 http://www.cnblogs.com/skyme/p/3135458.html
几个重要的步骤拷贝过来:
配置安装源
sudo gedit /etc/apt/sources.list
配置国内的镜像,我配置的是:
deb http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
配置CloudStack官方源:
sudo vi /etc/apt/sources.list.d/cloudstack.list
添加:
deb http://cloudstack.apt-get.eu/ubuntu precise 4.0
配置CloudStack官方源证书:
wget -O - http://cloudstack.apt-get.eu/release.asc| sudo apt-key add -
更新系统的安装源:
sudo apt-get update
配置CloudStack Management Server
查看主机名:
hostname --fqdn
sudo vi /etc/hosts
添加ip和显示的domain名称
安装ntp:
sudo apt-get install openntpd
sudo apt-get install cloud-client
将用户cloud加入到sudo用户组 //CloudStack默认以cloud用户启动,但默认会通过sudo以root身份管理相关文件与目录
sudo adduser cloud
配置sudo用户组免密码切换 //同样是为了解决和上面相同的权限问题
sudo vi /etc/sudoers
修改:
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
添加一行:cloud ALL =NOPASSWD : ALL
初始化root用户密码,如cloudstack //CloudStack默认需要root权限远程SSH连接到Agent
sudo -i
passwd
下载vhd-util
sudo wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util sudo mv vhd-util /usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/
然后安装mysql
sudo apt-get install mysql-server
在弹出的界面中输入密码,如: cloudstack
修改MySQL配置文件参数
sudo vi /etc/mysql/my.cnf
在[mysqld]模块中加入以下参数
innodb_rollback_on_timeout=1innodb_lock_wait_timeout=600max_connections=350log-bin=mysql-binbinlog-format = 'ROW'
重启MySQL
sudo service mysql restart
初始化数据库cloud
sudo cloud-setup-databases cloud:cloudstack@localhost --deploy-as=root:cloudstack
CloudStack 需要一个地方来存放Primar和Secondary Storage,官方推荐使用NFS共享。
安装NFS
sudo apt-get install nfs-common nfs-kernel-server
创建目录
sudo mkdir -p /export/primarysudo mkdir-p /export/secondary
编辑NFS配置文件
sudo vi /etc/exports
添加如下信息
/export *(rw,async,no_root_squash,no_subtree_check)
刷新配置
sudo exportfs -a
挂载测试NFS共享
sudo mkdir /mnt/primary
sudo mount-t nfs 10.6.203.10:/export/primary /mnt/primary
sudo mkdir /mnt/secondary
sudo mount-t nfs 10.6.203.10:/export/secondary /mnt/secondary
执行df -h查看
可见挂载成功,然后输入
sudo vi /etc/fstab
添加
192.168.74.144:/export/primary /mnt/primary nfs rw,tcp,intr 0 1
192.168.74.144:/export/secondary /mnt/secondary nfs rw,tcp,intr0 1
安装kvm模板
sudo /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary \-u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
注意:这个地方有个bug,我修改了脚本 /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt 中的一处代码
if [ "$templateId" == "" ]then if [ "$hyper" == "kvm" ] then ext="qcow2.bz2" templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"KVM\" and removed is null"`) elif [ "$hyper" == "xenserver" ] then ext="vhd"
等待……
安装成功后显示:
Successfully installed system VM template to /mnt/secondary/template/tmpl/1/3/
(也可以下载到本地后执行)
./cloud-install-sys-tmplt -m /mnt/secondary/ -f /var/acton-systemvm-02062012.qcow2.bz2 -h kvm -F (执行这个的时候不需要修改脚本cloud-install-sys-tmplt)
安装配置KVM 以及cloud-agent:
同cloudstack manage server 一样,需要配置cloudstack 官方源,这里不再描述
安装KVM
1、检查是否支持虚拟化:egrep '(vmx|svm)' --color=always /proc/cpuinfo
2、apt-get install ubuntu-virt-server python-vm-builder kvm-ipxe
3、查看是否已经安装成功:virsh -c qemu:///system list
4、apt-get install bridge-utils
安装cloud-agent
sudo apt-get install cloud-agent
安装配置libvirt:
sudo vi /etc/libvirt/libvirtd.conf
修改以下配置
listen_tls = 0
listen_tcp= 1
tcp_port= "16509"
auth_tcp= "none"
mdns_adv= 0
然后使用如下命令查看配置
cat /etc/libvirt/libvirtd.conf | grep -v'#' | grep -v "^$"
得到的内容如下:
然后输入
sudo vi /etc/init/libvirt-bin.conf
修改以下参数
env libvirtd_opts="-d -l"
sudo vi /etc/libvirt/qemu.conf
修改以下参数
vnc_listen = "0.0.0.0"
重启服务
sudo service libvirt-bin restart
配置安全策略
sudo dpkg --list "apparmor"
sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
sudo ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aahelper /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper
配置防火墙
sudo ufw allow proto tcp from any to any port 22
sudo ufw allow proto tcpfrom any to any port80
sudo ufw allow proto tcpfrom any to any port1798
sudo ufw allow proto tcpfrom any to any port16509
sudo ufw allow proto tcpfrom any to any port5900:6100
sudo ufw allow proto tcp from any to any port49152:49216
启动CloudStack
登录CloudStack 管理节点
sudo /etc/init.d/tomcat6 stop
sudo update-rc.d -f tomcat6 remove
启动cloud-management
cd ~
sudo /etc/init.d/cloud-management restart
netstat -an | grep 8080
通过上边的命令可以看到8080为listen状态。
输入http://{IP}:8080/client/
就可以看到cloudstack的登录界面了。
附录
安装成功后,登录总是提示用户名和密码不正确。查看后台日志文件:/var/log/cloud/management 发现apiServer没有启动,查了好多资料,重置了一遍数据库:
方法:
1、停止CloudStack服务。service cloud-management stop
2、到mysql里查询select uuid from storage_pool; 使用http://blog.csdn.net/jkeven/article/details/8055523里的方法,删除存储的SR
3、mysql -u root -p mysql;
drop database cloud;
drop database cloud;
4、sudo cloud-setup-databases cloud:cloudstack@localhost --deploy-as=root:cloudstack
执行 cloud-setup-management
5、删除目录/mnt/primary /mnt/secondary /export/primary /export/secondary 下的文件
6、首先确保进行了挂载
mount -t nfs 192.168.26.130:/export/primary /mnt/primary
mount -t nfs 192.168.26.130:/export/secondary /mnt/secondary
安装系统VM模板 执行./cloud-install-sys-tmplt -m /mnt/secondary/ -f /var/acton-systemvm-02062012.qcow2.bz2 -h kvm -F
7、在安装KVM的主机上执行操作,删除/mnt下的全部文件,替换/etc/cloud/agent 下的agent.properties 为默认的agent.properties
8、重启agent service cloud-agent restart
9、重启management-server :/etc/init.d/cloud-management restart
(中间一个小插曲,我登录后,修改了初始密码,然后做测试,告诉同事了原始密码,结果同事登录不进去,我狂看日志,怎么也找不到啥问题。。。。。。结果,尼玛 是我把原始密码给改了。。自己坑自己。。)