创建前脚本可以在创建归档文件时对其进行验证,并且为以后的定制准备归档文件(尤其是差别归档文件)。该脚本还可以在归档文件中创建用户定义的段。
部署前脚本可以在安装期间验证归档文件,并且为以后的定制准备归档文件。
部署后脚本可以在克隆系统上重新配置新的系统映像。
重引导脚本则可以在系统重新引导后进行最终的重新配置。
有关创建脚本的指南,请参见创建定制脚本的原则。
验证软件的内容和完整性。如果完整性被破坏,脚本将终止创建归档文件。
为以后在克隆系统上的定制准备产品。
在创建归档文件期间,动态注册其它安装脚本。
向 Flash 创建摘要文件添加信息。该信息必须简短,并且仅记录脚本的开始和结束以及脚本运行的结果。可以在摘要段查看结果。
创建创建前脚本。按照创建定制脚本的原则中的原则进行操作。
将脚本存储在 /etc/flash/precreation 目录中。
下面的示例是创建前脚本的摘录。
要在摘要段中记录开始时间,可以使用以下示例:
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
要注册部署脚本和数据,可以使用以下示例:
要查看用户定义段中应用程序特有的数据,可以使用以下示例:
cp custom section $FLASHDIR/custom_sections/MyApp
要在摘要段中记录安装成功的信息,可以使用以下示例:
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 fi 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
创建前脚本可以在归档文件中创建用户定义段,以提供特定的应用程序信息。用户定义段用于维护归档文件。该脚本必须放在 $FLASH_DIR/sections 目录中。Solaris Flash 归档文件不会处理用户定义段。例如,用户定义段可以包含归档文件的说明或者用来检查应用程序完整性的脚本。
用户定义段要求具有以下格式。
必须是面向行的
必须使用新行 (ASCII 0x0a) 字符结束
各行的长度没有限制
使用 base64 或类似算法来编码二进制数据
这种脚本在安装归档文件之前运行。如果它用于验证归档文件,则保留在归档文件中;而如果它用于在克隆系统上保存本地配置,则保留在克隆系统中。这种脚本还能分析和收集日后定制所需的本地数据。例如,在客户机特定的信息被要提取的文件覆写之前,将这些信息保存下来。这些信息可以在提取后的最终阶段使用。
创建部署前脚本。按照创建定制脚本的原则中的原则进行操作。
将脚本存储到下面的目录之一。
如果用于验证归档文件,请存储在 /etc/flash/predeployment 目录中。
如果要在创建前脚本中引用,请存储在 $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
这种脚本保留在归档文件中或存储在克隆系统的本地目录中,它在安装完成后运行。该脚本在克隆系统上重新配置一个新的系统映像。如果脚本存储在归档文件中,更改将影响所有的克隆系统。如果脚本存储在克隆系统的本地目录中,更改将只影响该克隆系统。例如,由部署前脚本保存的客户端特有信息将被应用到该克隆环境,以便完成安装。
部署后脚本还可以在安装归档文件后清除文件。例如,可以清除 /var/adm 中的日志文件。
不是所有的日志文件都需要用脚本清除。可以在创建归档文件时排除 /var/tmp 中的日志文件。
创建部署后脚本。按照创建定制脚本的原则中的原则进行操作。
将脚本存储到下面的目录之一。
如果要影响所有克隆系统,请将该脚本存储在 /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。您可以使用重引导脚本进行任何最终的重新配置。
#!/bin/sh $FLASH_DIR/TestApplication/finalize_license