4 votes

startup-script ne s'exécute pas au premier démarrage

En startup-script ajouté à une instance dans GCP ne semble pas fonctionner au premier démarrage (mais fonctionne aux démarrages suivants).

J'utilise le https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-7-v20160921 mais j'ai rencontré le même problème sur une version légèrement plus ancienne de l'image centos-7.

Cela se produit que j'utilise l'API pour créer une instance, ou la console web.

Selon la documentation ( https://cloud.google.com/compute/docs/startupscript ) en ajoutant une métadonnée avec la clé startup-script et la valeur d'un script doivent provoquer l'exécution du script sur chaque botte.

(Il existe une section sur l'ajout du script à une instance en cours d'exécution, et il est mentionné qu'un redémarrage est nécessaire pour que le script s'exécute, mais cela ne devrait (apparemment) pas s'appliquer aux nouvelles instances).

Il est possible de forcer le script à s'exécuter en utilisant sudo google_metadata_script_runner --script-type startup ( https://cloud.google.com/compute/docs/startupscript#rerunthescript ) ce qui implique que le script est chargé, mais pas exécuté, donc je ne suis pas sûr de ce qui se passe.

Est-ce que je fais quelque chose de mal, ou ai-je trouvé un bug dans GCP ? :)

1voto

Carlos Points 1385

Cela a fonctionné pour moi sans problème en utilisant l'image Centos 7. J'ai créé la VM à partir de la console et ajouté ce petit script

#! /bin/bash
yum update
yum install -y httpd
cat <<EOF > /var/www/html/index.html
<html><body><h1>Hello World</h1>
<p>This page was created from a simple startup script!</p>
</body></html>
EOF

Après la création de la VM, j'ai pu vérifier qu'Apache avait été installé dans le répertoire de la VM. console série .

…
Feb  3 20:36:17 instance-3 startup-script: INFO startup-script: ---> Package httpd.x86_64 0:2.4.6-45.el7.centos will be installed
Feb  3 20:36:17 instance-3 startup-script: INFO startup-script: --> Processing Dependency: httpd-tools = 2.4.6-45.el7.centos for package: httpd-2.4.6-45.el7.centos.x86_64
Feb  3 20:36:17 instance-3 startup-script: INFO startup-script: --> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-45.el7.centos.x86_64
….
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script: Installed:
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script:   httpd.x86_64 0:2.4.6-45.el7.centos
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script: Dependency Installed:
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script:   apr.x86_64 0:1.4.8-3.el7                     apr-util.x86_64 0:1.5.2-6.el7
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script:   httpd-tools.x86_64 0:2.4.6-45.el7.centos     mailcap.noarch 0:2.1.41-2.el7
Feb  3 20:36:20 instance-3 startup-script: INFO startup-script: Complete!

Le script a bien installé Apache mais le service dans la VM n'a pas été démarré. Il a fallu que je me connecte en SSH à la VM pour démarrer le service.

1voto

Maaalte Points 1930

Ce n'est pas un bug, il existe toujours et il est délicat.

Les scripts de démarrage sont exécutés après tout. init.d scripts.

Ainsi, si vous initialisez un /etc/environment par exemple, et essayer de l'utiliser dans un fichier init.d script, au premier démarrage, /etc/environment n'existera pas lorsque votre script sera lancé.

Au deuxième démarrage, il n'y a plus de problème, /etc/environment existe déjà :-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X