CLOUDSTACK FOR HYPER-V
原文地址:http://zhu.vn/archives/1040
我这里是内网测试环境,宿主机为Server 2012R2 ,虚拟化技术为HYPER-V,域环境来的(不是域环境玩不了)。
先给宿主机安装上CS的Hyper-v代理先,这是最根本的根本.
下载http://jenkins.buildacloud.org/view/4.5/job/cloudstack-4.5-hyperv-agent/lastSuccessfulBuild/artifact/bin/cloudstack-4.5-200-hypervagent.zip
解压后随便丢到个目录,例如D:\Cloud 然后CMD 下运行AgentShell.exe –install 就会看到服务那里多出一个CloudStack Hyper-V Agent服务,并设置好登陆身份密码(我这里用的是SCVMM的账户).然后重启服务.
然后给8250端口,也就是hyper-v agent 的端口绑定个ssl 证书,我的环境内有CA服务,所以就不创建自签证书了.
代码:
Get-Childitem Cert:\LocalMachine\My
华丽的分割线———- —————–
得到结果
EC64AE5D5F21622852117B06171598F805BE5A62 CN=DC01.GAMEDEV.COM
然后输入
代码:
netsh
http add sslcert ipport=0.0.0.0:8250
certhash=EC64AE5D5F21622852117B06171598F805BE5A62
appid="{727beb1c-6e7c-49b2-8fbd-f03dbe481b08}"
完事!
接下来是CS VM的部署。
首先得安装一台CentOS 6.6 X64的VPS…….下载地址:http://mirrors.kernel.org/centos/6/isos/x86_64/CentOS-6.6-x86_64-minimal.iso
安装途中记得设定hostname,不然后头修改麻烦,我这里设置为:CloudStack.GameDev.com
IP:10.182.207.239 Mask:255.255.255.0 Gw:10.182.207.200 DNS:10.182.207.253(这是我内部的DNS服务器)
并在DNS上添加A记录CloudStack—->10.182.207.239
系统安装好后,ssh-输入hostname –fqdn 检查正确的输出结果,因为CS要求域名是xxx.xx.xx 形式的.
这时还需要设置SELINUX 为setenforce 0,直接在SSH命令行下输入即可,并修改配置文件/etc/selinux/config设置为permissive 使之永久生效.
为了同步云平台中主机的时间,需要配置NTP,但NTP默认没有安装。因此需要先安装NTP,然后进行配置。通过以下命令进行安装:
代码:
yum install ntp
并配置CS的软件库,vi /etc/yum.repos.d/cloudstack.repo 键入以下信息并保存。
代码:
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.4/
enabled=1
gpgcheck=0
然后yum install cifs-utils 安装cifs,不然CS VM 无法链接到Windows SMB 共享存储.Windows 设置一个secondary的共享作为辅助存储.并把Hyper-v 设置那里的虚拟硬盘目录也得设置为共享,否则无法继续部署.
代码:
PS C:\Users\Administrator> net share
共享名 资源 注解
----------------------------------------------------------------------
C$ C:\ 默认共享
D$ D:\ 默认共享
IPC$ 远程 IPC
Secondary D:\Hyper-V\Secondary
VHDX D:\Hyper-V\Virtual Hard Disks
命令成功完成。
CS创建一个辅助存储的挂载目录,并挂载之.因为要下载系统VM的虚拟磁盘文件.
代码:
mkdir /secondary
mount -t cifs //10.182.207.253/Secondary /secondary -o username=share@gamedev.com
回车然后输入密码即可挂载OK。 接下来还需配置防火墙策略,允许客户端访问。
代码:
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
-A INPUT -s 10.182.207.0/24 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
将这些插入到-A INPUT -i lo -j ACCEPT 下面,千万别放到最后面了,然后重启iptabels服务,service iptables restart
安装MYSQL先
代码:
yum -y install mysql-server
mysql安装完成之后需要修改/etc/my.cnf,添加内容如下
代码:
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
然后重启下mysql服务,开始安装管理服务器
代码:
yum -y install cloudstack-management
看到成功的 提示后,现在要开始初始化数据库.
代码:
cloudstack-setup-databases cloud:你要设置的密码@localhost --deploy-as=root:你的root密码
当看到成功的提示后,执行配置管理服务器.SSH命令如下:
代码:
cloudstack-setup-management
看到成功的提示后,现在开始下载系统VM模板.
代码:
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt
-m /secondary -u http://dc01/systemvm64template-4.5-hyperv.vhd -h
hyperv -F
因为我提前把系统模板下到内网了,所以直接这样即可。
系统模板下载地址:
点这里下载
下载后解压,然后丢到内网的IIS目录即可.千万可别直接替换以上命令的下载地址,我被坑过。
完事之后,把挂载取消,umount /secondary,否则等着ssh key 不对的问题出现吧。
现在CS安装完成了.开始设置基础架构了。
打开http://10.182.207.239:8080/client 输入默认的用户密码 admin,password 登入。 因为要使用本地存储,和下载内网的ISO镜像,所以要修改一下全局设置的参数.
否
则就等着ISO 无法下载报错吧。当然你下载外网的ISO 倒不用这么设置.然后根据提示重启。ssh
输入cloudstack-setup-management.
重启后登陆CS面板,基础架构-区域-添加区域,因为HYPERV的特殊性。故此只能选择高级配置模式,才能确保成功。
下一步,设置区域名称,DNS和虚拟机管理程序,并启用本地存储
继续下一步,
下面是设置公共IP地址池,CS是NAT模式的东东。如果部署在外网的话,就输入你的空闲外网IP吧.我这里是拿内网IP 当外网IP用,部署VM实例是分来宾网络的IP.如果有VLAN 就写上,没有的话就写0,不能不写。
下面是设置提供点,也就是系统VM 将分配的IP地址。如果有多个网卡的话建议使用专属内网IP段来设定.如果只有一块网卡,那么就设置和上面一样即可,图方便。
点下一步是设置来宾网络的VLAN ID,随便写个范围例如100-200即可然后继续下一步,设置群集名,名称随意即可,这里就不截图了。这里呢是设置宿主机链接信息............我是域环境...........so~
设置辅助存储咯~~我是用WINDOWS 的SMB 共享做的辅助存储~~
大功告成!顺利的话你会看到............有2个系统VM在运行了.........
然后添加服务方案,因为默认的服务方案使用的是共享存储我们需要添加个本地存储的服务方案...
这里要注意一点。首先,你的CPU MHZ 不能大于物理CPU的MHZ,否则是不会成功的.然后开始添加实例添加实例之前得先确认默认的CENTOS 模板是否下载完成.
下载完成后部署第一个实例,一路回车即可,顺利的话,你会看到虚拟路由器VM已经创建并启动接下来就能看到实例VM在运行ing了.
创建好后,默认情况下实例VM是不能上网的,得修改来宾网络的出口规则。
然后想访问实例VM 怎么访问捏~因为分配的是10.1.1.x 的IP用VLAN 隔离的....so~还得配置公共IP的防火墙策略,还有转发规则。
先设置允许外部可PING NAT源IP,并允许访问所有TCP端口。
再配置转发规则,这里是把实例VM的SSH 端口转发到公共IP上~不然没法访问的.
然后测试下~是否能PING了,是否能SSH了~
OK,基本的部署已结束,后续工作么,就是自己做系统模板神马的了,设置允许密码对接hostbill for cloudstack........ 等等xxxoxx...