date: 2021-02-28title: cloudstack常见操作 #标题
tags: cloudstack #标签
categories: cloudstack # 分类
记录下cloudstack中的常见操作,包括如下:
- 制作虚机模板
- 虚机添加硬盘
- 关联性组
在 cloudstack + kvm部署实践 中,我们上传了一个ISO镜像,并且启动了一个虚机、安装操作系统等,可以看到过程比较耗时,也比较繁琐,所以这篇博文就来记录下,如何更快的去启动一个虚机,这就不得不涉及到模板这个东西了。
制作虚机模板
用户创建模板时可选择模板为公有还是私有。
私有模板只对创建者可用。默认上传的模板都是私有的。
当用户将模板标识为“公有”,该模板不但能让该用户域中所有账户中的所有用户使用,还可以让能访问存储该模板的区域的其他域中用户使用。这取决于zone是设置成公用还是私有。私有区域被分配到一个单一的域,而公共区域能被任何域访问。
参考:官方文档。
现在我们就通过之前安装的虚机,去制作模板。虚机如下:
安装基础工具
$ yum -y update
$ yum -y install vim net-tools
更改网卡配置
$ vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 删除如下两行(mac地址和uuid)
HWADDR=1E:00:F7:00:00:78
UUID=a580aa07-5976-447d-97de-ff8087c56a86
# 保证下面的值为yes
ONBOOT=yes
# 启动网卡
$ ifup eth0
密码管理
$ wget https://download.cloudstack.org/templates/4.2/bindir/cloud-set-guest-password.in
$ mv cloud-set-guest-password.in cloud-set-guest-password
$ chmod +x /etc/init.d/cloud-set-guest-password
$ chkconfig --add cloud-set-guest-password
移除udev持久设备规则
这一步会移除主模板的特殊信息,如网络MAC地址,租约信息和CD块设备,这个文件会在下次启动时自动生成。
$ rm -f /etc/udev/rules.d/70*
rm -f /var/lib/dhclient/*
移除SSH Keys
这步是为了确认所有要作为模板的VMs的SSH Keys都不相同,否则这样会降低虚拟机的安全性。
$ rm -f /etc/ssh/*key*
清除日志文件
$ > /var/log/audit/audit.log
$ > /var/log/wtmp
$ rm -f /var/log/*-* /var/log/*.gz
$ logrotate -f /etc/logrotate.conf
设置用户密码期限
这步是要在模板部署之后强制用户更改VM的密码。
$ passwd --expire root
清除用户历史
$ history -c
unset HISTFILE
关闭VM
$ halt -p
登录到web控制台制作模板
稍等片刻后,确认模板状态如下:
基于模板创建实例
在创建实例时,选择模板,如下:
创建成功后,会告诉你虚机root密码如下:
注:经过验证,这里的密码并不对,还是你模板的密码,并且控制台重置密码提示成功,但同样不生效。
虚机添加硬盘
默认安装虚机后,只有一块磁盘,那么怎么添加第二块磁盘呢?
1、创建卷
注意,自行创建的磁盘,类型为DATADISK
,而启动虚机的磁盘类型为ROOT
,如下:
2、附加磁盘
找到创建的磁盘,点击附加磁盘
:
选择要附加到哪个实例上,然后点击确定:
3、确认磁盘已添加
到对应的实例上,已经可以看到添加的磁盘了,如下:
关联性组
在cloudstack中关联性组有如下两种:
- host anti-affinity:反关联性组,用于保证同一反关联性组中的VM,创建并运行在不同的物理机上;
- host affinity:关联性组,用于保证同一个关联性组中的VM,创建并运行在相同的物理主机上。
创建关联性组很简单,按照如下进行创建即可:
创建成功后,即可在创建实例时,选择此关联性组方案,如下:
也可以在已创建的实例上添加关联性组,自行摸索即可,很简单。
如下,必须在停机状态下,才可以更改关联性组: