两周前才把OEM的自助服务折腾完,很长一段时间都是纠结于各种各样的小问题,一直也没信心把它搞完,从Oracle VM 3.0.2版本就开始用,到现在3.2.1,体验一塌糊涂。

总结一下OEM12C的自助服务门户配置流程,当是对自己这段时间耗费的精力的补偿吧!

目标

使用自助服务用户登录OEM云平台,可以在自助服务门户上创建自己的虚拟机。(最基本的需求了)

先决要求

省略前面纷繁复杂的安装和配置OEM服务器过程,基本的环境我们需要

  1. 至少一台Oracle VM Server,一台安装Oracle VM Manager的服务器和一台配置好的OEM主机
  2. 已经完成OVMM注册到OEM的过程,在OEM上至少有一个可用于自助服务的ZONE

参考我的环境如下:

角色与用户

本步骤中我们要完成两个任务:

  1. 创建角色APP_DEVELOPER,该角色包含EM_SSA_USER角色。
  2. 创建用户BEANBEE,并授予他APP_DEVELOPER角色。

关系图:

这里会有疑问,既然都只用到EM_SSA_USER,为什么要多此一举创建一个APP_DEVELOPER角色呢。

两个原因。第一,基于细粒度划分权限考虑;第二,后面自助服务配置的角色管理设置过程中无法使用系统角色EM_SSA_USER,原因参考第一条。

在菜单中找到Setup > Security:

依据上面的关系创建好用户和角色,创建过程只需要设置名称和角色即可,其他的权限细则保持默认。

建立自助服务门户

点击OEM管理界面右上方的 Setup >Cloud>Infrastructure,现在可以看到自助服务配置的主要选项了!

分别来看每个选项:

Machine Size:自定义虚拟机的大小,包括CPU个数,内存大小,存储大小。这个SIZE会在我们使用自助服务用户创建虚拟机的时候被引用,其实也是“最不重要”的设置,可以忽略。

Request Settings:关于自助服务的请求设置,包括:

  • 自助服务用户请求云平台的预约时间
  • 自助服务用户一次请求的持续时间
  • 是否启用EM Agent(在配置软件库的过程中需要用具有EM Agent的服务器上的存储,所以这里必须启用)
  • Partial Deployment:默认情况下,自助服务中如果模版或OVA部署失败的话会自动进行回滚清除工作,勾选了这个选项就会禁用这一功能,还是不勾为好
  • 配置自助服务用户保存模版等文件的软件库目录

这个实验中,我们指定自助服务用户可以提前两个月发出请求,请求最长可以持续1年的时间,允许EM Agent服务,并分配我预先创建好的一个MyFolder文件夹给自助服务用户用于保存模版等文件,参考:

  • Roles:个性化定制自助服务用户能够使用的总的资源大小(可以理解为quota),包括内存,磁盘大小,CPU个数,还有服务器数量;不仅如此,我们还要分配一个可用的自助服务ZONE,指配一个可以访问的用户角色,就是上一步中创建的APP_DEVELOPER角色,如果你是直接使用的EM_SSA_USER角色,这里会看不到可用的Role。

点击Assign Quota to Role开始,我的设置:

  • Software Components:添加自助服务可以使用的组件,只能是模版和装配集(OVA),这里我导入了一个事先就导入好了的模版OEL5_TEMPLATE,记得为导入的组件选择可用的角色:

  • Chargeback:最重要的计费环节,点击Configure Charge Plan开始配置计费策略;在计费的主界面中,Universal Charge Plan可以定义一个全局的收费策略,Extended Charge Plan显示可用的收费计划,最下方的显示栏中列出了对应不同Size的VM Guest的收费标准:

我这里就直接设置的全局策略了,如下:

推荐的做法是定义自己的收费计划,创建过程和设置全局策略基本一致,点击Extended Charge Plan右边的Create即可。

收费策略搞定后就需要将它指定到收费目标上去了,这个收费目标就是前面提到的ZONE,点击计费页面上方的Targets标签进入目标指定界面:


分两步:

  1. 点击Add Targets添加之前定义的ZONE_SELF_01为收费目标
  2. 点击Assign Plan给ZONE_SELF_01分配收费计划

完成后的样子:

如果你已经成功的完成了以上的所有配置的话,一个OEM12C的IaaS环境就基本成型了,终于到了测试的时候了。

使用自助服务门户

注销到OEM登录界面中,这里使用建立的自助服务用户BEANBEE登录:

在自助服务界面中,左下方的Usage显示当前可用的系统资源,上方的标签栏显示的是自助服务相关管理选项,包括了Server,Storage管理以及软件库使用和计费查看等:

点击主界面的Request Servers请求服务器创建虚拟机,

指定安装源为我们在Software Components步骤中导入的模版:

指定使用的服务器资源,这里可以定义使用的Server数量已经cpu数等,可以保持默认:

指定创建调度,选择立即执行,需要注意调度的结束时间不能设置的超过使用期限:

统计页面中确认后就可以开始创建了:

创建过程中我们查看主界面的下方的10 Latest Requests,这里显示创建job的运行状态:

Job执行完成后会在10 Last Requested Servers栏中显示创建好的虚拟机,也可以进入My Requests和My Servers标签页面中查看,右键虚拟机选择Launch VNC Console:

启动VNC的过程与Oracle VM Manager上的使用基本相同,唯一的区别是这里不需要输入Oracle VM Manager的管理密码就可以进入vnc界面了,输入模版虚拟机root用户名和密码(ovsroot)便可登录虚拟机了:

最后要吐槽一下OEM的VNC界面,必须下载并执行java web starter客户端来才能访问,而且连接虚拟机也不稳定,可能是我的服务器配置太渣(用的嵌套虚拟化),这点上不如openstack……

以上