date: 2021-02-28title: cloudstack常见操作 #标题
tags: cloudstack #标签
categories: cloudstack # 分类

记录下cloudstack中的常见操作,包括如下:

  • 制作虚机模板
  • 虚机添加硬盘
  • 关联性组

cloudstack + kvm部署实践 中,我们上传了一个ISO镜像,并且启动了一个虚机、安装操作系统等,可以看到过程比较耗时,也比较繁琐,所以这篇博文就来记录下,如何更快的去启动一个虚机,这就不得不涉及到模板这个东西了。

制作虚机模板

用户创建模板时可选择模板为公有还是私有。

私有模板只对创建者可用。默认上传的模板都是私有的。

当用户将模板标识为“公有”,该模板不但能让该用户域中所有账户中的所有用户使用,还可以让能访问存储该模板的区域的其他域中用户使用。这取决于zone是设置成公用还是私有。私有区域被分配到一个单一的域,而公共区域能被任何域访问。

参考:官方文档

现在我们就通过之前安装的虚机,去制作模板。虚机如下:

cloudstack常见操作 - 图1

安装基础工具

  1. $ yum -y update
  2. $ yum -y install vim net-tools

更改网卡配置

  1. $ vim /etc/sysconfig/network-scripts/ifcfg-eth0
  2. # 删除如下两行(mac地址和uuid)
  3. HWADDR=1E:00:F7:00:00:78
  4. UUID=a580aa07-5976-447d-97de-ff8087c56a86
  5. # 保证下面的值为yes
  6. ONBOOT=yes
  7. # 启动网卡
  8. $ ifup eth0

密码管理

  1. $ wget https://download.cloudstack.org/templates/4.2/bindir/cloud-set-guest-password.in
  2. $ mv cloud-set-guest-password.in cloud-set-guest-password
  3. $ chmod +x /etc/init.d/cloud-set-guest-password
  4. $ chkconfig --add cloud-set-guest-password

移除udev持久设备规则

这一步会移除主模板的特殊信息,如网络MAC地址,租约信息和CD块设备,这个文件会在下次启动时自动生成。

  1. $ rm -f /etc/udev/rules.d/70*
  2. rm -f /var/lib/dhclient/*

移除SSH Keys

这步是为了确认所有要作为模板的VMs的SSH Keys都不相同,否则这样会降低虚拟机的安全性。

  1. $ rm -f /etc/ssh/*key*

清除日志文件

  1. $ > /var/log/audit/audit.log
  2. $ > /var/log/wtmp
  3. $ rm -f /var/log/*-* /var/log/*.gz
  4. $ logrotate -f /etc/logrotate.conf

设置用户密码期限

这步是要在模板部署之后强制用户更改VM的密码。

  1. $ passwd --expire root

清除用户历史

  1. $ history -c
  2. unset HISTFILE

关闭VM

  1. $ halt -p

登录到web控制台制作模板

cloudstack常见操作 - 图2

cloudstack常见操作 - 图3

cloudstack常见操作 - 图4

稍等片刻后,确认模板状态如下:

cloudstack常见操作 - 图5

基于模板创建实例

在创建实例时,选择模板,如下:

cloudstack常见操作 - 图6

cloudstack常见操作 - 图7

创建成功后,会告诉你虚机root密码如下:

cloudstack常见操作 - 图8

注:经过验证,这里的密码并不对,还是你模板的密码,并且控制台重置密码提示成功,但同样不生效。

虚机添加硬盘

默认安装虚机后,只有一块磁盘,那么怎么添加第二块磁盘呢?

1、创建卷

cloudstack常见操作 - 图9

注意,自行创建的磁盘,类型为DATADISK,而启动虚机的磁盘类型为ROOT,如下:

cloudstack常见操作 - 图10

2、附加磁盘

找到创建的磁盘,点击附加磁盘

cloudstack常见操作 - 图11

选择要附加到哪个实例上,然后点击确定:

cloudstack常见操作 - 图12

3、确认磁盘已添加

到对应的实例上,已经可以看到添加的磁盘了,如下:

cloudstack常见操作 - 图13

关联性组

在cloudstack中关联性组有如下两种:

  • host anti-affinity:反关联性组,用于保证同一反关联性组中的VM,创建并运行在不同的物理机上;
  • host affinity:关联性组,用于保证同一个关联性组中的VM,创建并运行在相同的物理主机上。

创建关联性组很简单,按照如下进行创建即可:

cloudstack常见操作 - 图14

创建成功后,即可在创建实例时,选择此关联性组方案,如下:

cloudstack常见操作 - 图15

也可以在已创建的实例上添加关联性组,自行摸索即可,很简单。

如下,必须在停机状态下,才可以更改关联性组:

cloudstack常见操作 - 图16