IBM SmartCloud init启动时通过使用启动脚本来使用配置数据

IBM SmartCloud init(一个 IBM SmartCloud 支持包)是从开源 cloud-init 包上获得灵感而开发出来的第一个启动脚本。它最初是采用 ICON bundle 的形式在 Image Construction and Composition Tools (ICON) 和 IBM SmartCloud Provisioning 1.2 之间的集成上下文中开发的,后来扩展成为 IBM SmartCloud Provisioning 2.1 中的一个关键组件。

IBM SmartCloud init 是一个简单的独立组件,该组件在虚拟机 (VM) 启动时执行,以便使用被格式为多个部分组成的多用途 Internet 邮件扩展 (MIME) 的配置数据。IBM SmartCloud init 会获得此输入数据,并查看与每个部分关联的内容类型。如果内容类型是已知的,那么 IBM SmartCloud init 会调用相关使用者。

利用 IBM SmartCloud init 脚本的可能用例

第一个用例和相关的 MIME 类型是支持 ICON 生成的开放虚拟化格式 (OVF) 镜像。当前的实现只处理一种内容类型(应用程序/ovf-param)和一个使用者来处理 OVF 元数据,并将相关部分作为激活引擎 (AE) 的 OVF-env.xml 进行保存。

您可以使用 IBM SmartCloud init 来初始化一个在启动时执行了一系列操作的云实例,比如安装一系列 Red Hat 软件包 (RPM),并在启动时执行命令,或者在启动时下载和执行脚本(这对于虚拟机到虚拟机的转换非常有用)。或者,您可以对该脚本进行扩展,以支持程序包的已排序列表,例如:

IBM Tivoli® Endpoint Manager(TEM 或 BigFix)Fixlet(通过在启动 VM 时部署 BigFix 代理和 Fixlet) Chef Recipes Puppet 策略 ICON/Image Construction and Composition Tool (ICCT) bundle(用于安装任何 IBM 中间件,如 IBM DB2® 或
WebSphere® 应用服务器) Maestro bundle IBM
Workload Deployer (IWD) 脚本程序包 RPM 和 Debian 本机程序包

您可以使用指向储存库搜索顺序的统一资源标识符来下载用于执行的程序包。其他用例包括支持 Maestro 使用包含 IBM SmartCloud init 首次启动脚本的任何镜像,该脚本将下载和安装 Maestro 代理,并扩展 IBM SmartCloud Provisioning 安装程序,以便创建一个基本的 Red Hat Enterprise Linux 镜像,该镜像具有已安装的 IBM SmartCloud init 程序包。这样,任何根据该镜像创建的新实例都可以在激活时自动执行任务。

IBM SmartCloud init 可交付成果

scp-cloud-init 是一个可用于 Linux 和 Windows 的简单组件。Linux 中的 scp-cloud-init 包含文件 scp-cloud-init。在使用级别 3 和 5 的镜像中安装此文件的最简单方法是运行以下命令:

cp -f scp-cloud-init.sh /etc/init.d/scp-cloud-init 2>/dev/nullchkconfig scp-cloud-init on

如果您已经挂载该磁盘,并且无法使用 chkconfig,那么可以使用清单 1 中显示的命令手动生成 rc#.d 链接。

清单 1. 手动生成 rc#.d 链接的命令

if [ -d /etc/rc3.d ]; then ln -fs ../init.d/scp-cloud-init /etc/rc3.d/S11scp-cloud-init chmod 755 /etc/rc3.d/S11scp-cloud-init 2>/dev/nullfiif [ -d /etc/init.d/rc3.d ]; then ln -fs ../scp-cloud-init /etc/init.d/rc3.d/S11scp-cloud-init chmod 755 /etc/init.d/rc3.d/S11scp-cloud-init 2>/dev/nullfiif [ -d /etc/rc5.d ]; then ln -fs ../init.d/scp-cloud-init /etc/rc5.d/S11scp-cloud-init chmod 755 /etc/rc5.d/S11scp-cloud-init 2>/dev/nullfiif [ -d /etc/init.d/rc5.d ]; then ln -fs ../scp-cloud-init /etc/init.d/rc5.d/S11scp-cloud-init chmod 755 /etc/init.d/rc5.d/S11scp-cloud-init 2>/dev/nullfi # The S## above should be after the "network" but before any activation.* (AE) scripts.

Windows 中的 scp-cloud-init 包含文件 scp-cloud-init.cmd 和 scp-cloud-init.vbs。要在镜像中安装这些文件以便在启动时运行它们,请执行以下操作:

将 scp-cloud-init.* 文件复制到某个目录,比如 C:\windows\setup\ibm。 通过运行 gpedit.msc 添加将在启动时使用组策略编辑器运行的脚本。 单击Computer Configuration > Windows Settings > Scripts,
然后双击 Startup。 单击 Add,然后键入 c:\Windows\Setup\IBM\scp-cloud-init.cmd 作为该程序(无参数)。 单击 OK,再次单击 OK 退出启动脚本窗口,然后退出 gpedit 应用程序。

以前向 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 添加注册表项的方法(如下所示)似乎只在管理员登录时执行脚本,在系统启动时不会自动执行脚本。

"reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /f /v a-cloud-init /d c:\windows\setup\ibm\scp-cloud-init.cmd"

scp-cloud-init 在 Linux 中是作为 RPM 程序包提供的,在 Windows 中是作为 .msi 文件提供的。

时间: 2024-12-22 15:55:33

IBM SmartCloud init启动时通过使用启动脚本来使用配置数据的相关文章

spark1.5.2 spark-shell 启动时一定要启动hadoop,怎么解决,谢谢!

问题描述 spark1.5.2我启动spark后启动spark-shell.以下,如果我不启动hadoop就不能使用sqlContext15/11/1812:34:30INFOrepl.SparkILoop:Createdsparkcontext..Sparkcontextavailableassc.15/11/1812:34:31INFOhive.HiveContext:Initializingexecutionhive,version1.2.115/11/1812:34:31INFOclie

如何在Linux启动时自动执行命令或脚本

我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时,也是这样. 更有意思的是,在系统启动以及用户登录或注销时,还可以让系统执行特定的操作. 本文,我们将探讨一下在 Linux 操作系统中实现这些目标的传统方法. 注意:我们假定使用的是 Bash 作为登录及注销的主 Shell.如果你使用的是其他 Shell,那么有些方法可能会无效.如果有其他的疑问

如何在 Linux 启动时自动执行命令或脚本

在启动时执行 Linux 脚本 有两种传统的方法可以实现在启动时执行命令或脚本: 方法 #1 - 使用 cron 任务 除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持 @reboot 指令.这个指令后面的参数是脚本(启动时要执行的那个脚本)的绝对路径. 然而,这种方法需要注意两点: a) cron 守护进程必须处于运行状态(通常情况下都会运行),同时 b) 脚本或 crontab 文件必须包含需要的环境变量(如果有的话,参考 StackOverflow 获取更多详细

java-Java的框架SSH整合的项目,项目启动时总是会报一个莫名其妙的错误?

问题描述 Java的框架SSH整合的项目,项目启动时总是会报一个莫名其妙的错误? Unable to load configuration. - [unknown location] Caused by: Unable to load configuration. - [unknown location] Caused by: Unable to load jar:file:/D:/mars-workspace/.metadata/.plugins/org.eclipse.wst.server.

拦截器-tomcat启动时出现这种错误

问题描述 tomcat启动时出现这种错误 严重: Dispatcher initialization failed Unable to load configuration. - bean - jar:file:/D:/Program%20Files/apache-tomcat-6.0.29/webapps/struts2.myeclipse.bak/WEB-INF/lib/struts2-spring-plugin-2.3.20.jar!/struts-plugin.xml:29:132 at

配置-Java Web容器启动时,SessionFactory注入失败的问题

问题描述 Java Web容器启动时,SessionFactory注入失败的问题 包结构如下:Spring配置如下:UserDAO代码如下:Tomcat一启动,报错如下:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exception is org.

jdbc-tomcat启动时,创建连接池失败

问题描述 tomcat启动时,创建连接池失败 tomcat启动信息及报错如下: 2015-8-18 16:41:30 org.apache.catalina.core.ApplicationContext log 严重: StandardWrapper.Throwable org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction;

mfc-MFC多文档应用程序中嵌入cef3,启动时一次性启了三个多文档应用程序

问题描述 MFC多文档应用程序中嵌入cef3,启动时一次性启了三个多文档应用程序 新建多文档应用程序,新增了Dialog,在Dialog的OnCreate中实现 了cef的CefExecuteProcess.CefInitialize.CreateBrowser,编译无误,结果运行时一下启了多文档实例,而且网页也没有显示出来. 附代码: int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialogEx::OnCreate(

struts2 3 15-Struts2.2升级到2.3.15 启动时出错,能帮看下是什么原因不

问题描述 Struts2.2升级到2.3.15 启动时出错,能帮看下是什么原因不 [ERROR]: [2013-12-02 20:30:41] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error(CommonsLogger.java:38): Dispatcher initialization failed Unable to load configuration. - Class: java.net.PlainSoc