Adaptations Linux

Pour les systèmes Linux, Google Cloud Migrate for Compute Engine (anciennement Velostrata) inclut des scripts d'adaptation dans l'installation RPM de Migrate for Compute Engine. Les règles des scripts Migrate for Compute Engine sont disponibles ici :

/opt/velostrata/actions/<PHASE>.rules

Les administrateurs système Linux peuvent également définir des scripts personnalisés. Les règles de ces scripts se trouvent ici :

/etc/velostrata/actions/<PHASE>.rules

Les règles sont regroupées par <PHASE>, qui reflète la phase de projet de la VM lors de l'exécution du script. Les valeurs possibles pour <PHASE> sont les suivantes :

  • origin : les scripts exécutés lorsque la VM est sur site.
  • velos : les scripts exécutés lorsque la VM s'exécute en mode cache à la demande.
  • detach : les scripts sont exécutés après l'opération de dissociation.

Les scripts personnalisés sont exécutés par le service velostrata.init à chaque démarrage. Si une modification n'est censé être effectuée qu'une seule fois, le script doit reconnaître qu'elle a déjà été exécutée et ne pas effectuer à nouveau la même modification.

Définitions des règles

Chaque phase applique certaines règles. Les règles définissent les actions exécutées par le service. Migrate for Compute Engine traite les règles dans un ordre défini et exécute chaque règle comme indiqué.

Paramètres de la règle

Les paramètres suivants des règles peuvent être définis dans chaque fichier <PHASE>.rules :

  • NAME : un nom de règle unique.
  • PLATFORM : cloud ou plate-forme sur laquelle exécuter la règle (any).
  • TEST : test d'existence d'un fichier. Si un chemin est spécifié, la règle n'est exécutée que si le fichier et le chemin d'accès au répertoire existent. Ce paramètre peut également être utilisé pour vérifier si le script a déjà été exécuté (en écrivant un fichier pour l'indiquer).
  • ACTION : script Bash à exécuter ou commande intégrée
  • REQUIRES : champ facultatif des services requis pour l'exécution de la règle. (Actuellement, seule la valeur rc.local est compatible).

Exemples de règles

# adjust network settings

NAME="fix-network-config", PLATFORM="any", TEST="", ACTION="/usr/sbin/velostrata-fix-network-config"