Precreation 脚本可以在创建归档文件时对其进行验证,并且为以后的自定义准备归档文件(尤其是差别归档文件)。该脚本还可以在归档文件中创建 user-defined 段。
Predeployment 脚本可以在安装期间验证归档文件,并且为以后的自定义准备归档文件。
Postdeployment 脚本可以在克隆系统上重新配置新的系统映像。
Reboot 脚本则可以在系统重新引导后进行最终的重新配置。
关于如何创建脚本,请参见创建自定义脚本指南。
该脚本在创建归档文件期间运行。它有多种用途。
验证软件的内容和完整性。如果完整性被破坏,脚本将无法创建归档文件。
为以后在克隆系统上的自定义准备产品。
在创建归档文件期间,动态注册其他安装脚本。
向 Flash 创建的摘要文件中添加一条消息。该消息必须简短,并且仅记录脚本的开始时间和结束时间,以及脚本运行的结果。可以在 Summary 段中查看结果。
创建 Precreation 脚本。按照创建自定义脚本指南中描述的内容进行操作。
将脚本存储在 /etc/flash/precreation 目录中。
以下示例是 Precreation 脚本的摘录。
要在 Summary 段中记录开始时间,请使用以下示例:
echo "MyApp precreation script started">> $FLASHDIR/summary
要检查软件的完整性,请使用 flcheck 命令,但不能在命令行中使用该命令。该命令的语法如下:
flcheck software component files and directories ...| - |
例如,要验证文件和目录,请使用以下示例:
flcheck software component files and directories If Not in selection - refuse creation echo "Myapp Integrity Damage">>$FLASHDIR/summary
或者,要保留意外的新文件和目录而不终止归档文件的创建,请使用以下示例:
flcheck software component files and directories If Not in selection include by force flinclude software component
要注册部署脚本和数据,请使用以下示例:
要查看 user-defined 段中特定于应用程序的数据,请使用以下示例:
cp custom section $FLASHDIR/custom_sections/MyApp
要在 Summary 段中记录安装成功的消息,可以使用以下示例:
echo "product one flash preparation started." >>$FLASH_DIR/summary ... echo "product one flash preparation finished successfully">>$FLASH_DIR/summary
#!/bin/sh echo "Test precreation script started" >> $FLASH_DIR/summary cat /opt/TestApp/critical_file_list | flcheck - if [ $? != 0 ]; then echo "Test precreation script failure" >> $FLASH_DIR/summary exit 1 if echo "Test precreation script started" >> $FLASH_DIR/summary /opt/TestApplication/license_cloning $FLASH_DIR/predeployment/.TestApplicationLicenceTransfer \ $FLASH_DIR/custom_sections/TestApplicationLicenceCounter echo "Test precreation script finished" >> $FLASH_DIR/summary exit 0
Precreation 脚本可以在归档文件中创建 User-Defined 段,以提供特定的应用程序信息。User-Defined 段用于维护归档文件。该脚本必须放在 $FLASH_DIR/sections 目录中。Solaris Flash 归档文件不处理 User-Defined 段。例如,User-Defined 段可包含归档文件的说明,或包含用来检查应用程序完整性的脚本。
User-Defined 段要求具有以下格式。
必须是面向行的
必须使用新行 (ASCII 0x0a) 字符结束
各行的长度没有限制
必须使用 Base64 或类似算法来编码二进制数据
该脚本将在安装归档文件之前运行。如果它用于验证归档文件,则将其保留在归档文件中;而如果它用于在克隆系统上保存本地配置,则将其保留在克隆系统中。该脚本还可以分析和收集以后自定义所需的本地数据。例如,可在要提取的文件覆写客户机特定的信息之前,将这些信息保存下来。以后,可在提取之后的最后阶段使用这些信息。
创建 Predeployment 脚本。按照创建自定义脚本指南中描述的内容进行操作。
将脚本存储到下面的目录之一。
如果用于验证归档文件,请存储在 /etc/flash/predeployment 目录中。
如果要引用 Precreation 脚本,请将脚本存储在 $FLASH_DIR/preinstall 目录中。
如果要保留克隆系统上的配置,请在 JumpStart 配置文件中使用 local_customization 关键字提供指向存储在克隆系统上的脚本的路径。
#!/bin/sh $FLASH_DIR/TestApplication/check_hardware if [ $? != 0 ]; then echo Unsupported hardware exit 1 fi $FLASH_DIR/TestApplication/check_licence_key if [ $? != 0 ]; then echo No license for this host exit 1 fi $FLASH_DIR/TestApplication/deploy_license_key \ $FLASH_DIR/TestApplication/.TestApplicationLicenceTransfer $FLASH_DIR/TestApplication/save_data_files $FLASH_DIR/flash exit 0
该脚本保留在归档文件中或存储在克隆系统的本地目录中,它将在安装完成后运行。该脚本在克隆系统上重新配置一个新的系统映像。如果脚本存储在归档文件中,更改将影响所有的克隆系统。如果脚本存储在克隆系统的本地目录中,更改将只影响该克隆系统。例如,由 Predeployment 脚本保存的客户机特定信息将被应用到该克隆环境,以完成安装。
Postdeployment 脚本还可以在安装归档文件后清除文件。例如,可以清除 /var/adm 中的日志文件。
不是所有的日志文件都需要用脚本清除。创建归档文件时,可以不包括 /var/tmp 中的日志文件。
创建 Postdeployment 脚本。按照创建自定义脚本指南中描述的内容进行操作。
将脚本存储到下面的目录之一。
要影响所有克隆系统,则将脚本存储在 /etc/flash/postdeployment 目录中。
如果只希望影响本地克隆系统,则在 JumpStart 配置文件中使用 local_customization 关键字提供指向存储在克隆系统上的脚本的路径。
#!/bin/sh $FLASH_DIR/TestApplication/clone_reconfiguration $FLASH_DIR/TestApplication/restore_data $FLASH_DIR/flash
该脚本保留在归档文件中,将在重新引导系统后运行。该脚本在重新配置系统后执行所有的最终配置。
将 Solaris Flash 归档文件安装在克隆系统上之后,将删除某些主机特定的文件并为克隆计算机重建这些文件。安装程序使用 sys-unconfig(1M) 命令和 sysidtool(1M) 程序删除并重建主机特定的网络配置文件。例如,重建的文件包括 /etc/hosts、/etc/defaultrouter 和 /etc/defaultdomain。您可以使用 Reboot 脚本进行任何最终的重新配置。
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license