cloudstack4.5安装

 

实验环境:

    management:CentOS-6.6

    cs-manage.qcow2模板虚拟机

        ip:192.168.10.230

    nfs-server:CentOS-7.1

        ip:192.168.10.231

        配置nfs、ntp

    agent:CentOS-7.1

        host232:192.168.10.232

        host242:192.168.10.242

    host244:192.168.10.244

    host245:192.168.10.245

 

准备工作:

    安装好系统,准备好cloudstack安装包;可到cloudstack提供商下载:

        http://packages.shapeblue.com/cloudstack/upstream/centos/4.5/

    配置好各系统的ip地址,方便远程连接操作

    # 安装centos7后创建桥接网络:

nmcli connectionshow 
nmcli connectiondelete enp2s0    #具体的网卡地址请根据实际情况
nmcli connectionadd type bridge con-name cloudbr0 ifname cloudbr0
nmcli connectionmodify cloudbr0 ipv4.addresses "192.168.10.231/24"
nmcli connectionmodify cloudbr0 ipv4.method manual
nmcli connectionmodify cloudbr0 ipv4.gateway 192.168.10.253
nmcli connectionmodify cloudbr0 ipv4.dns 192.168.10.1
nmcli connectionadd type bridge-slave con-name eth0 ifname enp2s0 master cloudbr0
systemctl restart network


nfs-server安装:

    host231是用做nfs-server、ntp-server和cs-manage的物理机,所以要安装nfs、ntp、和virtual组件:

    ps:防火墙配置文件ipt和nfs配置文件exports提前写好上传到指定目录

#!/bin/bash
hostnamectl set-hostname host231.cloud.com
echo "192.168.10.231 host231.cloud.com" >> /etc/hosts
setenforce 0
sed -i '/SELINUX=enforcing/c SELINUX=disabled' /etc/selinux/config
yum install -y ntp
#ntpdate 192.168.10.231
systemctl enable ntpd &> /dev/null
sed -i.bak '17c restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap' /etc/ntp.conf
sed -i '24a server 127.127.1.0' /etc/ntp.conf
sed -i '21,24d' /etc/ntp.conf
systemctl start ntpd
yum groups install -y  virtual*
sed -i.bak '/#vnc_listen = "0.0.0.0"/c vnc_listen = "0.0.0.0"' /etc/libvirt/qemu.conf
sed -i.bak '/#listen_tls = 0/c listen_tls = 0' /etc/libvirt/libvirtd.conf
sed -i '/#listen_tcp = 1/c listen_tcp = 1' /etc/libvirt/libvirtd.conf
sed -i '/#tcp_port = "16509"/c tcp_port = "16509"' /etc/libvirt/libvirtd.conf
sed -i '/#mdns_adv = 1/c mdns_adv = 0' /etc/libvirt/libvirtd.conf
sed -i '/#auth_tcp = "sasl"/c auth_tcp = "none"' /etc/libvirt/libvirtd.conf
sed -i.bak '/#LIBVIRTD_ARGS="--listen"/c LIBVIRTD_ARGS="--listen"' /etc/sysconfig/libvirtd
systemctl restart libvirtd
mkdir /home/primary
mkdir /home/secondary
cat /data/exports > /etc/exports
exportfs -a
sed -i.bak '/#Domain = local.domain.edu/c Domain = cloud.com' /etc/idmapd.conf
sed -i.bak '/#RQUOTAD_PORT=875/c RQUOTAD_PORT=875' /etc/sysconfig/nfs
sed -i '/#LOCKD_TCPPORT=32803/c LOCKD_TCPPORT=32803' /etc/sysconfig/nfs
sed -i '/#LOCKD_UDPPORT=32769/c LOCKD_UDPPORT=32769' /etc/sysconfig/nfs
sed -i '/#MOUNTD_PORT=892/c MOUNTD_PORT=892' /etc/sysconfig/nfs
sed -i '/#STATD_PORT=662/c STATD_PORT=662' /etc/sysconfig/nfs
sed -i '/#STATD_OUTGOING_PORT=2020/c STATD_OUTGOING_PORT=2020' /etc/sysconfig/nfs
systemctl restart nfs
systemctl enable nfs-server
cat /data/ipt > /etc/sysconfig/iptables
firewall-cmd --set-default-zone=trusted &> /dev/null
systemctl stop firewalld
systemctl disable firewalld
exit


agent安装:

    agent安装比较简单,主要是修改

    1、hostname

    2、selinux

    3、ntp(同步到host231)

    4、cloudstack-agent

    5、防火墙

    ps:安装包也是提前上传到指定目录

#!/bin/bash
ip=$(ifconfig cloudbr0 | awk 'NR==2{print$2}')
ip_d=$(ifconfig cloudbr0 | awk 'NR==2{print$2}' | awk -F'.' '{print$4}')
hostnamectl set-hostname host"$ip_d".cloud.com
hostname=$(hostname)
echo "$ip $hostname" >> /etc/hosts
setenforce 0
sed -i '/SELINUX=enforcing/c SELINUX=disabled' /etc/selinux/config
yum install -y ntp &> /dev/null
ntpdate 192.168.10.231
systemctl enable ntpd &> /dev/null
sed -i '24a server 192.168.10.231' /etc/ntp.conf
sed -i '21,24d' /etc/ntp.conf
systemctl start ntpd
yum groups install -y  virtual* &> /dev/null
#上传cloudstack4.5 agent安装包到/data
while true
do
	read -p 'do you upload the coudstack-agent packages to /data (y/n)?' ans
	case $ans in  
		y)
			break;;
		n)
			echo 'upload the coudstack-agent packages to /data';;
		*)
			echo 'only input y or n';;
	esac
done
yum install -y createrepo &> /dev/null
createrepo -pv /data/cloudstack4.5/ &> /dev/null
cat >> /etc/yum.repos.d/cloud.repo << EOF
[cloudstack]
name=cloudstack
baseurl=file:///data/cloudstack4.5
enabled=1
gpgcheck=0
EOF
yum clean all &> /dev/null
yum makecache &> /dev/null
yum install -y cloudstack-agent &> /dev/null
/sbin/chkconfig cloudstack-agent on
systemctl start cloudstack-agent
sed -i.bak '/#vnc_listen = "0.0.0.0"/c vnc_listen = "0.0.0.0"' /etc/libvirt/qemu.conf
sed -i.bak '/#listen_tls = 0/c listen_tls = 0' /etc/libvirt/libvirtd.conf
sed -i '/#listen_tcp = 1/c listen_tcp = 1' /etc/libvirt/libvirtd.conf
sed -i '/#tcp_port = "16509"/c tcp_port = "16509"' /etc/libvirt/libvirtd.conf
sed -i '/#mdns_adv = 1/c mdns_adv = 0' /etc/libvirt/libvirtd.conf
sed -i '/#auth_tcp = "sasl"/c auth_tcp = "none"' /etc/libvirt/libvirtd.conf
sed -i.bak '/#LIBVIRTD_ARGS="--listen"/c LIBVIRTD_ARGS="--listen"' /etc/sysconfig/libvirtd
sed -i.bak '496d' /usr/lib64/python2.7/site-packages/cloudutils/serviceConfig.py
sed -i.bak '/#Domain = local.domain.edu/c Domain = cloud.com' /etc/idmapd.conf
systemctl restart libvirtd
systemctl restart network
cat /data/ipt > /etc/sysconfig/iptables
firewall-cmd --set-default-zone=trusted &> /dev/null
systemctl stop firewalld
systemctl disable firewalld
exit

    重启后再看看服务状况,agent就安装好了

    

management安装:

    management是安装在host231物理机上的虚拟机,模板是cs-manger-c6.qcow2,在host231上使用命令virt-install安装或者使用virt-manage图形化界面安装

    安装好虚拟机后需要修改网络:  

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-cloudbr0
cat > ifcfg-cloudbr0 < ifcfg-eth0 << EOF
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE=cloudbr0
DEFROUTE=yes
EOF

    修改hostname

      # vim /etc/sysconfit/network #把对应的hostname修改了

   添加host表解析    

    echo "192.168.10.230 host230.cloud.com">> /etc/hosts

 配置selinux

    setenforce 0
    sed -i '/SELINUX=enforcing/c SELINUX=disabled'/etc/selinux/config

   配置ntp

    sed -i '25a server 192.168.10.231'/etc/ntp.conf
    sed -i '22,25d' /etc/ntp.conf

    修改mysql配置文件,添加以下参数;

        vim /etc/my.cnf

        innodb_rollback_on_timeout=1

   innodb_lock_wait_timeout=600

   max_connections=350

   log-bin=mysql-bin

   binlog-format ='ROW'

    启动mysql并开机启动     

    service mysqld start
    chkconfig mysqld on

     执行安全初始化:    

    mysql_secure_installation

      ps:会提示修改密码和删除一些没有的库,全部yes就行

      等mysql启动起来后,执行数据库初始化:     

    cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password

      完成后挂载二级存储到本地           

    mkdir /secondsry
    mount 192.168.10.231:/home/secondary/ /secondary/

    上传模板:   

    /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /secondary/ -f /home/rpm-for-CentOS6/systemvm64template-4.5-kvm.qcow2.bz2 -h kvm -F/

    卸载挂载并启动cloudstack-management      

    umount /secondary
    cloudstack-setup-management

    ps:模板本来就已经安装好mysql和cloudstack-management  

    到此cloudstack4.5就安装完毕了


如果没有模板,可以安装一台CentOS-6.6系统的主机作为management:

#!/bin/bash
hostname=$(hostname)
ip=$(ifconfig cloudbr0 | awk -F'[: ]+' 'NR==2{print $4}')
echo "$ip $hostname" >> /etc/hosts
hostname --fqdn
setenforce 0
sed -i '/SELINUX=enforcing/c SELINUX=disabled' /etc/selinux/config
sed -i '25a server 192.168.10.231' /etc/ntp.conf
sed -i '22,25d' /etc/ntp.conf
chkconfig ntpd on
service ntpd start
sed -i.bak '/#Domain = local.domain.edu/c Domain = cloud.com' /etc/idmapd.conf
cat /data/ipt > /etc/sysconfig/iptables
service iptables save
service iptables restart
yum install mysql-server -y
sed -i.bak '6a innodb_rollback_on_timeout=1' /etc/my.cnf
sed -i '7a innodb_lock_wait_timeout=600' /etc/my.cnf
sed -i '8a max_connections=350' /etc/my.cnf
sed -i '9a log-bin=mysql-bin' /etc/my.cnf
sed -i "10a binlog-format = 'ROW'" /etc/my.cnf
chkconfig mysqld on
service mysqld start
mysql_secure_installation
sleep 5
yum install -y createrepo
createrepo -pv /data/cloudstack4.5/
cat >> /etc/yum.repos.d/cloud.repo << EOF
[cloudstack]
name=cloudstack
baseurl=file:///data/cloudstack4.5
enabled=1
gpgcheck=0
EOF
yum clean all && yum makecache
yum install -y cloudstack-management
cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password
mkdir /secondary
mount 192.168.10.231:/home/secondary/ /secondary/
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /secondary/ -f /data/systemvm64template-4.5-kvm.qcow2.bz2 -h kvm -F
umount /secondary/
cloudstack-setup-management
service iptables stop
exit


 

安装完成后打开http://192.168.10.230:8080/client/,登陆到管理平台

用户名:admin

密码:password

然后就添加一个zone


做实验的时候可能会出现各种问题,那时需要删除zone重置,手动删除需要逐级删除比较麻烦,直接删除数据库比较快:

#!/bin/bash
service cloudstack-management stop
mysql -uroot -ppassword -e "drop database cloud;"
mysql -uroot -ppassword -e "drop database cloud_usage;"
mysql -uroot -ppassword -e "drop database cloudbridge;"
mysql -uroot -ppassword -e "show databases;"
cloudstack-setup-databases cloud:password@localhost --deploy-as=root:password
sleep 5
#到nfs存储删除之前的模板
while true
do
	read -p 'do you remove the secondary storage template in nfs server? (y/n)?' ans
	case $ans in  
		y)
			break;;
		n)
			echo 'please remove the secondary storage template in nfs server';;
		*)
			echo 'only input y or n';;
	esac
done
mount 192.168.10.231:/home/secondary/ /secondary/
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /secondary/ -f /home/rpm-for-CentOS6/systemvm64template-4.5-kvm.qcow2.bz2 -h kvm -F
umount /secondary/
cloudstack-setup-management
service iptables stop
exit