示例计划脚本

该示例计划脚本说明了一些示例 guestfish 命令及其语法。

# Example Image Streamer Plan Script

# 开头的行被视为计划脚本中的注释。

!echo "File Systems in Golden Image:"

该命令在 Image Streamer 设备上执行 bash 命令。在该示例中,echo 命令输出是在部署日志中捕获的。可以使用部署日志监视计划脚本的执行情况和调试错误。

list-filesystems

这是一个 guestfish 命令,用于列出操作系统卷中的文件系统。

list-partitions

这是一个 guestfish 命令,用于列出操作系统卷中的分区。

!echo "Mounting File Systems:"
mount /dev/sda1 /

该命令将 /dev/sda1 分区安装到伪根目录 / 中。在执行该命令后,可以使用 / 访问该分区的内容。例如:/tmp/example.sh

!echo "Personalize message.txt content:"
upload -<<EOF /tmp/example.sh
#!/bin/bash
echo “OS name and version”
uname -r
echo “Example attributes and values:”    
echo “@ExampleString:Hello World!@”   
echo “@ExampleNumber:50@”    
EOF

该命令序列说明了如何使用 heredoc 语法将 bash 脚本插入到操作系统中。如果执行该示例,则将 EOF 标记之间的计划脚本内容放在操作系统映像的 /tmp/example.sh 文件中。该命令序列还说明了如何使用具有默认值的自定义属性 ExampleStringExampleNumber

umount

在完成定制后,该命令将卸载分区。

具有系统属性的计划脚本示例

以下几行说明了如何在计划脚本中使用系统属性以访问目标操作系统卷详细信息。
echo "Target volume device name to mount :@_Target.dev@"
echo "Target name/iqn:@_Target.name@"
echo "Target IP address:@_Target.ip@"
echo "Target port:@_Target.port@ , Target LUN:@_Target.lun@"
以下几行说明了如何在计划脚本中使用系统属性以显示部署连接 1 详细信息。
echo "Initiator-1 MAC:@_Initiator1.mac@"
echo "Initiator-1 name :@_Initiator1.name@"
echo "Initiator-1 IP address:@_Initiator1.ip@ , Initiator-1 netmask:@_Initiator1.netmask@"
echo "Initiator-1 gateway:@_Initiator1.gateway@"
以下几行说明了如何在计划脚本中使用系统属性以显示部署连接 2 详细信息。
echo "Initiator-2 MAC:@_Initiator2.mac@"
echo "Initiator-2 name :@_Initiator2.name@"
echo "Initiator-2 IP address:@_Initiator2.ip@ , Initiator-2 netmask:@_Initiator2.netmask@"
echo "Initiator-2 gateway:@_Initiator2.gateway@"