IBM Systems Director VMControl 的自动环境安装工具

用于准备 IBM Systems Director VMControl 端到端环境的工具

IBM® Systems Director 是一个平台管理解决方案,用于管理物理与虚拟系统。IBM Systems Director 为系统管理人士提供了单一的虚拟管理平台,帮组降低 IT 管理复杂性和成本。IBM Systems Director VMControl™ 是一个在 IBM Systems Director 基础上安装的高级插件,可提供虚拟化功能。本文讨论了一个自动环境安装工具,可以使用该工具进行 IBM Systems Directors 的测试与开发。此工具被设计成几乎适用于所有受支持的虚拟化技术,比如基于内核的虚拟机 (KVM)、IBM z/VM®、VMware 和 IBM PowerVM®。

Aravindo Swain , 助理软件工程师, IBM

Aravindo Swain 的照片Aravindo Swain 是 IBM Systems Director 下 VMControl 项目中的一名助理软件工程师,这是 IBM 产品组合中的一个重要产品。他在 Java 方面有两年以上的工作经验,从印度奥里萨邦的巴瓦内斯瓦尔市技术教育和研究所 (ITER) IET Alwar 获得了计算机应用专业的硕士学位。



Prashant Pareek, 高级软件工程师, IBM

http://www.ibm.com/developerworks/i/p-ppareek.jpgPrashant Pareek 是 IBM 的一名高级软件工程师,目前致力于 IBM Systems Director 中的 VMControl,这是 IBM 产品组合中的一个重要产品。Prashant 有七年半的从业经验,他从印度卡纳塔克邦的 VTU 获得了信息技术工程学士学位。



Piyush Jain, 高级软件工程师, IBM

http://www.ibm.com/developerworks/i/p-pjain.jpgPiyush Jain 是 IBM 的一名高级软件工程师,目前主要致力于 IBM Systems Director 中的 VMControl,这是 IBM 产品组合中的一个重要产品。他有 5 年的从业经验,从印度卡纳塔克邦的 IET Alwar 获得了信息技术工程学士学位。



2013 年 5 月 06 日

第 1 小节. 开始之前

目标

本文的主要目标是让致力于 IBM Systems Director 的开发人员与测试人员了解这个可以自动安装测试或开发环境的实用工具。该工具可以减少安装过程中的人工干预,从而降低出错的几率。它所需的安装时间比手动安装更短。此外它还有一套验证脚本,可以在安装结束后验证环境的正确性。

先决条件

您应该在计算机上安装 IBM Systems Director 和 VMControl。本文假设您已经熟悉 IBM Systems Director 和 VMControl 的功能。

系统要求

用户应该已在系统上安装了以下组件:

  • Python 2.6.x 或更高版本,以及 Pexpect。安装 Pexpect 模块的步骤如下:
    • wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz
    • tar xzf pexpect-2.3.tar.gz
    • cd pexpect-2.3
    • python ./setup.py install
  • wget 模块

第 2 小节:如何对 IBM Systems Director 使用自动环境安装工具?

IBM Systems Director 支持三类界面:图形化用户接口 (GUI)、命令行接口 (CLI) 和 Web 服务接口,Web 服务接口属于符合 Representation State Transfer (REST) 的 Web 服务形式。由于 IBM Systems Director 可管理多种环境,您必须拥有一个可用于开发与测试目的的正确工作环境。使用 IBM Systems Director 的开发与测试团队在安装上花费的时间始终要比实际的开发或测试行为多一些。

本章节讨论了一个自动环境安装工具,可以使用该工具进行 IBM Systems Directors 的测试与开发。此工具是使用 python 开发的,包含各个独立的模块。用户在使用此工具时有很大的灵活性,既可以独立运行任意这些模块,也可以选择在一个用户可配置的主文件中一次性运行所有模块。

例如,如果某用户希望只激活 VMControl 插件,那么他既可以运行 activateVMC.pyc 脚本,也可以将它添加到主文件中运行。

用户可以根据需要更新主文件,并按照所希望的运行顺序添加模块。运行安装文件时,它会按照正确次序依次调用所有模块来执行完整的安装。

使用此脚本,我们可以独立执行以下操作:

  • 激活 IBM Systems Director
  • 激活 VMControl
  • 脱管和清理端点(适用于常见架构服务 [CAS] 托管的端点)
  • 发现(单个 IP,用逗号隔开的多个 IP 或 IP 范围)
  • 发现存储
  • 发现交换机
  • 请求访问
  • 收集清单(单个 IP,用逗号隔开的多个 IP 或 IP 范围)
  • 安装子代理与常见的库代理
  • 卸载 Systems Director 服务器
  • 验证环境
图 1. 自动环境安装工具的流程图
一个像素标尺,显示了某篇文章所用的图像的最大宽度(580 像素)

图 1 阐明了工具的完整流程。用户必须先运行 prerequisite.sh 脚本来检查运行自动工具所需的模块。如果 prerequisite.sh 脚本获得通过,然后使用用户环境的详细信息更新 environment.json 文件,这些信息包括 IP 地址、密码、用户名等。当用户在 json 文件中输入所有必要细节之后,就可以运行环境安装脚本。用户必须按照希望脚本运行的顺序来更新 env_setup_main.py 文件。

该工具包含以下脚本:

  1. prerequisite.sh: 此脚本用于检查是否已经安装必要的 python 与 wget 模块。如果系统中缺少任何必要模块,则会显示相应的错误消息并退出安装。如果先决条件脚本成功通过,那么我们就可以启动安装。
    清单 1. 先决条件脚本的详细输出
    [root@z1-9-5-124-25 code]# sh prerequisite.sh
    Before setup the System should have :
    1. wget 1.11.4
    2. Python 2.6.x or above
    3. Pexpect module installed in it.
    
    1. CHECKING FOR WGET.
    wget is installed in the machine with the following version :
    GNU Wget 1.12 built on linux-gnu.
    Wgetrc:
    
    2. CHECKING FOR PYTHON.
    Python 2.7.2
    Python is installed in the system
    
    3. CHECKING FOR PEXPECT
    [SUCCESS] Pexpect is currently installed.
    [root@z1-9-5-124-25 code]#
  1. activateVMC.pyc: 此脚本用于激活 VMControl 插件。系统首先会检查 IBM Systems Director 的状态。如果尚未激活它,则会激活它。然后,系统会检查 VMControl 的状态。如果已经激活,则不返回任何操作,如果尚未激活,则会激活 VMControl 并重启 Systems Director 服务器。
    清单 2. activateVMC.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python activateVMC.pyc
    Director is already Active.
    VMControl is not Active.
    [SUCCESS] VMControl is activated successfully.
    Director CLI daemon is in state Starting  - time left is 600 seconds
    Director CLI daemon is in state Starting  - time left is 590 seconds
    Director CLI daemon is in state Starting  - time left is 580 seconds
    Director CLI daemon is in state Starting  - time left is 570 seconds
    Director CLI daemon is in state Starting  - time left is 560 seconds
    Director CLI daemon is in state Starting  - time left is 550 seconds
    Director CLI daemon is in state Starting  - time left is 540 seconds
    Director CLI daemon is in state Starting  - time left is 530 seconds
    Director CLI daemon is in state Starting  - time left is 520 seconds
    Director is now Active
    [root@z1-9-5-124-25 code]#
  1. cleanup.pyc: 此脚本用于清理单独用于 Power 环境的 CAS 托管的端点。我们必须通过命令提供机器的类型(IVM 或 VS)、IP 地址、用户名和密码。

    示例:

    python cleanup.pyc IVM ip_address username password
    python cleanup.pyc VS ip_address username password
    清单 3. cleanup.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python cleanup.pyc VS 10.11.12.13 username password
    Now will unmanage the endpoint 10.11.12.13
    [SUCCESS] Not Cleaned the machine 10.11.12.13 as it is unmanaged already
    
    [root@z1-9-5-124-25 code]# python cleanup.pyc IVM 5.6.7.8 username password
     (yes/no)? yes
    Warning: Permanently added '5.6.7.8' (RSA) to the list of known hosts.
    @5.6.7.8's
    Checking for management endpoint for 5.6.7.8
    Now will unmanage the endpoint 5.6.7.8
    [SUCCESS] Cleaning up of the IVM 5.6.7.8 completed.
    Now will stop the endpoint 5.6.7.8
     /opt/ibm/director/agent/runtime/agent/bin/endpoint.sh stop
    0513-044 The cas_agent Subsystem was requested to stop.
    Stopping The LWI Nonstop Profile...
    Waiting for the LWI Nonstop Profile to exit ...
    Waiting for the LWI Nonstop Profile to exit ...
    Waiting for the LWI Nonstop Profile to exit ...
    Waiting for the LWI Nonstop Profile to exit ...
    Waiting for the LWI Nonstop Profile to exit ...
    Stopped The LWI Nonstop Profile.
    
    (0) root @ c610am4b1: /home/padmin
    
    #
  1. discovery.pyc: 此脚本用于发现一个端点。我们可以使用这个脚本一次性发现单个、多个或一个范围内的 IP。

    示例:

    python discovery.pyc ip_address
    python discovery.pyc ip_address1, ip_address2, .... ,ip_addressN
    python discovery.pyc ip_range (for example:discovery 1.2.3.4-1.2.3.8)
    清单 4. . discovery.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python discovery.pyc 5.6.7.8
    smcli discover -i 5.6.7.8
    Discovery of 5.6.7.8 started . . .
    [SUCCESS] Discovery of 5.6.7.8 completed successfully
    [root@z1-9-5-124-25 code]#
  1. requestaccess.pyc: 此脚本用于获取对一个已发现的端点的访问权。我们必须通过命令提供机器的 IP 地址、用户名和密码。

    示例:

    python requestaccess.pyc ip_address username password
    清单 5. requestaccess.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python requestaccess.pyc 9.114.148.39 username password
    Requesting for access on : 9.114.148.39
    [SUCCESS] Request Access Successful on 9.114.148.39
    [root@z1-9-5-124-25 code]#
  1. collectinv.pyc: 此脚本用于收集单个或多个端点上的详细目录。它使用以逗号隔开的 IP 地址作为输入。

    示例:

    python collectinv.pyc ip_address
    python collectinv.pyc ip_address1, ip_address2, ...., ip_addressN
    清单 6. 下面显示了 collectinv.pyc 脚本的详细输出:
    [root@z1-9-5-124-25 code]# python collectinv.pyc 5.6.7.8
    smcli collectinv -i 5.6.7.8 -p "All Inventory"
    Collecting inventory on : 5.6.7.8
    Inventory collection percentage 7%
    Inventory collection percentage 87%
    Inventory collection percentage 92%
    Inventory collection percentage 99%
    Inventory collection completed:
    100%
    
    [SUCCESS] Collect inventory successfuly completed on 5.6.7.8
    [root@z1-9-5-124-25 code]#
  1. installNIMSubagent.pyc: 此脚本用于在一个已发现的 NIM 主逻辑分区(LPAR)上安装或更新 Network Installation Management (NIM) 子代理。它首先将 NIM 子代理从 NIM 主分区(如果已经安装)上卸载,将 NIM 子代理 JAR 文件从 Systems Director 服务器复制到 NIM 主分区上,并在 NIM 主分区上安装 NIM 子代理。要运行 installNIMSubAgent.pyc 脚本,则需要更新 environment.json 文件中的以下数据:
    "NIMaster" : { "hostip":"1.2.3.7", "user":"root", "password":"passw0rd" },

    Example:

    python installNIMSubagent.pyc
    清单 7. installNIMSubagent.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python installNIMSubAgent.pyc
    Uninstallation completed successfully.
    NIM Subagent copied to NIM Master successfully.
    Installation of NIM Subagent is completed.
    
      com.ibm.director.im.rf.nim.subagent_9.9.9.9-201301182038 Enabled
    
    NIM Subagent installed properly.
    [root@z1-9-5-124-25 code]#
  1. installKVMCommonAgent.pyc: 此脚本用于在 Systems Director 服务器计算机上安装或更新 KVM 常用库代理。它首先卸载 KVM 子代理(如果存在),然后在 Systems Director 服务器计算机上安装最新的 KVM 子代理。

    示例:

    python installKVMCommonAgent.pyc
    清单 8. installKVMCommonAgent.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python installKVMCommonAgent.pyc
    
    Archive:  /tmp/repo/CommonAgentSubagent_VMControl_CommonRepository_2.4.0.jar
       creating: /tmp/repo/META-INF/
       creating: /tmp/repo/TC-INF/
       creating: /tmp/repo/xml/
      inflating: /tmp/repo/META-INF/MANIFEST.MF
      inflating: /tmp/repo/TC-INF/tc-driver.xml
      inflating: /tmp/repo/plugin.xml
      inflating: /tmp/repo/xml/CommonAgentSubagent_VMControl_CommonRepository.xml
       creating: /tmp/repo/repository/
      inflating: /tmp/repo/repository/com.ibm.director.im.cr.agent.installer.zip
    
    Archive:  /tmp/repo/repository/com.ibm.director.im.cr.agent.installer.zip
       creating: /tmp/repo/repository/features/
       creating: /tmp/repo/repository/features/com.ibm.director.im.cr.agent.installer_
    										2.4.0/
       creating: /tmp/repo/repository/plugins/
       creating: /tmp/repo/repository/temp/
      inflating: /tmp/repo/repository/features/com.ibm.director.im.cr.agent.installer_
    										2.4.0.jar
      inflating: /tmp/repo/repository/features/com.ibm.director.im.cr.agent.installer_
    									2.4.0/kvm-ae.zip
      inflating: /tmp/repo/repository/plugins/com.ibm.director.im.cr.agent_2.4.0.jar
      inflating: /tmp/repo/repository/plugins/com.ibm.director.im.cr.common.nl1_2.4.0.jar
      inflating: /tmp/repo/repository/plugins/com.ibm.director.im.cr.common_2.4.0.jar
      inflating: /tmp/repo/repository/plugins/com.ibm.director.im.rf.events_2.4.0.jar
      inflating: /tmp/repo/repository/plugins/derby_10.3.3.1.jar
      inflating: /tmp/repo/repository/site.xml
    
    ALR0276I: Install processing for the following features were successful :
    com.ibm.director.im.cr.agent.installer_2.4.0
    
    ALR0282I: The platform needs to be restarted to complete the operation.
    
    Stopping The LWI Nonstop Profile...
    Waiting for The LWI Nonstop Profile to exit...
    Waiting for The LWI Nonstop Profile to exit...
    Waiting for The LWI Nonstop Profile to exit...
    Waiting for The LWI Nonstop Profile to exit...
    Waiting for The LWI Nonstop Profile to exit...
    Stopped The LWI Nonstop Profile.
    Starting The LWI Nonstop Profile...
    
    KVM Common Agent is installed successfully, Verification completed.
    [root@z1-9-5-124-25 code]#
  1. installSCSCommonAgent.pyc: 此脚本用于安装或更新 Virtual I/O Server (VIOS) 上的 SCS 常用库代理。它首先卸载 SCS 常用库代理(如果已存在),然后在 SCS 库计算机上安装 SCS 常用代理,并对安装进行验证。要运行 installSCSCommonAgent.pyc 脚本,则需要更新 environment.json 文件中的以下内容:
    "SCSRepo" : { "hostip":"1.2.3.7", "user":"root", "password":"passw0rd" },
    "RepositoryName" : "Repository",
    "RepositoryOS" : "abc7.pdl.pok.ibm.com",

    示例:

    python installSCSCommonAgent.pyc
  1. storage.pyc: 此脚本用于发现存储子系统与存储矩阵。要运行 storage.pyc 脚本,则需要更新 environment.json 文件中的以下内容:
    "StorageProvider" : { "hostip":"1.2.3.5", "user":"root", "password":"passw0rd" },

    Example:

    python storage.pyc
    清单 9. storage.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python storage.pyc
    [SUCCESS] Storage setup done successfully with the Storage Provider : 1.2.3.5
    [root@z1-9-5-124-25 code]#
  1. switch.pyc: 11. switch.pyc: 此脚本用于安装交换机,即发现交换机提供程序和交换机。要运行 switch.pyc 脚本,则需要更新 environment.json 文件中的以下内容:
    "SwitchProvider" : { "hostip":"1.2.3.4", "user":"root", "password":"passw0rd" },

    示例:

    python switch.pyc
    清单 10. switch.pyc 脚本的详细输出
    [root@z1-9-5-124-25 code]# python switch.pyc
    [SUCCESS] Switch setup done successfully with the Switch Provider : 1.2.3.4
    [root@z1-9-5-124-25 code]#
  1. uninstallDirector.pyc: 此脚本用于从本地系统中卸载 Systems Director 服务器。在卸载 Systems Director 服务器之前,首先需要卸载所有高级管理器,比如 VMControl、Storage Control 和 Network Control。

    示例:

    python uninstallDirector.pyc
  1. verifySetup.pyc: 此脚本通过验证所有已发现系统的虚拟服务器与 OS 托管端点 (MEP),安装代理,列出存储矩阵与交换机,列出库等,以便检查安装是否正确。

    示例:

    python verifySetup.pyc
  1. env_setup_main.py: 用户可以根据需要更新主文件,并按照所希望的运行顺序添加模块。运行安装文件时,系统会按照正确次序依次调用所有模块来执行完整的安装。

    在运行 env_setup_main.py 脚本之前,必须在 environment.json 文件中输入正确的系统细节。

    示例:

    python env_setup_main.py
  1. environment.json: 此文件包含与硬件环境相关的详细情况,格式为 JavaScript Object Notation (JSON)。在这里,我们必须以正确格式输入所有计算机的所有详细情况。
    清单 11. 一个 environment.json 示例文件
    {
    	"Platform" : "NIM",
    	"IVM1" : { "hostip":"9.12.3.1", "user":"padmin", "password":"ivmpass" },
    	"VS1" : { "hostip":"9.12.1.2", "user":"root", "password":"pass" },
    	"VS2" : { "hostip":"9.12.1.2", "user":"root", "password":"pass" },
    	"NIMaster" : { "hostip":"9.12.4.1", "user":"root", "password":"pass" },
    	"SCSRepo" : { "hostip":"9.12.5.1", "user":"root", "password":"pass" },
    	"StorageProvider" : { "hostip":"9.12.6.2", "user":"root", "password":"pass1" },	
    	"SwitchProvider" : { "hostip":"9.12.6.4", "user":"Admin", "password":"pass2" },
    	"SubAgentVersion" : "2.4.1",
    }

    用户必须为指定环境创建一个 environment.json 文件,在以后安装脚本运行时会用到它。输入详细情况时应该采用键-值的形式,用冒号隔开键和值,并使用 JSON 文件中指定的格式。

    注意: 用户在放置 VS 与 IVM 时应该遵循相同的约定。例如:VS1,VS2等。


下载

描述名字大小
Automated Environment Setup tool for ISDenv_setup.zip28KB

参考资料

学习

  • IBM Systems Director:获取有关 IBM Systems Director 产品的信息。
  • Python:获取有关 Python 的信息。
  • JSON:获取有关 JSON 的信息。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=894646
ArticleTitle=IBM Systems Director VMControl 的自动环境安装工具
publish-date=05062013