对于 Linux 系统,Google Cloud Migrate for Compute Engine(之前称为 Velostrata)在 Migrate for Compute Engine RPM 安装项中包含一些适配脚本。Migrate for Compute Engine 的脚本规则位于以下位置:
/opt/velostrata/actions/<PHASE>.rules
Linux 系统管理员还可以定义自定义脚本。这些脚本的规则位于以下位置:
/etc/velostrata/actions/<PHASE>.rules
这些规则按 <PHASE>
进行分组,反映了运行脚本时虚拟机的项目阶段。<PHASE>
可以是下列值之一:
origin
- 当虚拟机在本地时运行的脚本。velos
- 当虚拟机以“按需缓存”模式运行时运行的脚本。detach
- 在分离操作后运行的脚本。
在每次启动时,velostrata.init
服务会执行自定义脚本。如果某更改只需进行一次,脚本应知道它已执行过,而不会再次执行相同的更改。
规则定义
每个阶段都会应用一些规则。规则定义了服务运行的操作。Migrate for Compute Engine 按定义的顺序处理规则,并执行所提供的每个规则。
规则参数
下列规则参数可以在每个 <PHASE>.rules
文件中定义:
- NAME:唯一规则名称。
- PLATFORM:运行规则的云或平台 (
any
)。 - TEST:检查文件是否存在的测试。如果指定了路径,则仅当文件和目录路径存在时才执行规则。此参数还可用于检查脚本是否已经运行(方法是编写一个文件来进行指示)。
- ACTION:内嵌命令或者要运行的 Bash 脚本
- REQUIRES:运行规则所需的服务的可选字段(目前仅支持
rc.local
)。
规则示例
# 调整网络设置
NAME="fix-network-config", PLATFORM="any", TEST="", ACTION="/usr/sbin/velostrata-fix-network-config"