Il peut être nécessaire d'initialiser entièrement une machine virtuelle avant de procéder au déploiement de Cloud Assembly.

Par exemple, le déploiement d'une machine qui installe toujours des modules et démarre un serveur Web peut créer des conditions où un utilisateur rapide tente d'atteindre l'application avant qu'elle ne soit disponible.

Tenez compte des éléments suivants lors de l'utilisation de cette fonctionnalité.

  • La fonctionnalité utilise le module phone_home de cloud-init et est disponible lors du déploiement de machines Linux.
  • Phone_home n'est pas disponible pour Windows en raison des limitations de Cloudbase-init.
  • Phone_home peut affecter l'ordre de déploiement comme une dépendance explicite, mais dispose d'une plus grande flexibilité en termes d'options de traitement et de minutage.

    Reportez-vous à la section Création de liaisons et de dépendances entre ressources dans Cloud Assembly.

  • Phone_home requiert une section cloudConfig dans le modèle de cloud.
  • Votre créativité est un facteur. Les commandes d'initialisation peuvent inclure un temps d'attente intégré entre les opérations, qui peut être utilisé en association avec phone_home.
  • Phone_home basé sur des modèles de cloud ne fonctionne pas si le modèle de machine contient déjà des paramètres du module phone_home.
  • La machine doit disposer d'un accès de communication sortant à Cloud Assembly.

Pour introduire un délai de déploiement dans Cloud Assembly, ajoutez une section cloudConfigSettings au modèle de cloud :

cloudConfigSettings:
  phoneHomeShouldWait: true
  phoneHomeTimeoutSeconds: 600
  phoneHomeFailOnTimeout: true
Propriété Description
phoneHomeShouldWait Indique s'il convient d'attendre l'initialisation, true ou false.
phoneHomeTimeoutSeconds Indique quand décider de poursuivre ou non le déploiement même si l'initialisation est toujours en cours d'exécution. La valeur par défaut est de 10 minutes.
phoneHomeFailOnTimeout Indique s'il convient de poursuivre le déploiement après le délai d'expiration, true ou false. Notez que même lorsque vous continuez, le déploiement peut toujours échouer pour des raisons distinctes.