2016-01-04 2 views

Répondre

2

J'ai un hôte de Windows qui doit exécuter une Ubuntu 14.04 machine virtuelle esclave Jenkins.

Pré-requis: vous devriez avoir un esclave VM défini dans Jenkins (http://YOUR-JENKINS-URL/computer/)

C'est ainsi que je l'ai résolu:

1) Configuration Ubuntu VM pour démarrer automatiquement un service au démarrage qui exécute un script pour démarrer esclave Jenkins:

  • Utilisez upstart pour exécuter le script: créer un fichier /etc/init/jenkins-slave.conf

    description "A job to start a Jenkins slave" 
    author "Your Name" 
    start on runlevel [2345] 
    exec echo Starting Jenkins slave at `date` >> /var/log/jenkins-slave-job.log 
    exec /jenkins/run.sh 
    
  • Le /jenkins/run.sh:

    cd $(dirname $0) 
    java -jar slave.jar -jnlpUrl   
    http://YOUR-JENKINS-URL/computer/NAME-OF-NODE/slave-agent.jnlp -secret 51d080f68b3d2552c977840aa8a01bb371a1b3e8b3326f36fadb497e597185ce 
    
  • dossier Le/Jenkins doit contenir le fichier téléchargé à partir slave.jar page nœud Jenkins.

  • Les 2 dernières lignes du fichier run.sh doivent provenir de la page du noeud Jenkins.

2) l'installation de Windows pour démarrer la machine virtuelle au démarrage:

  • Créer une shourtcut Windows avec la valeur suivante dans la "cible:"

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "UbuntuVBox" 
    
  • Où UbuntuVBox devrait être remplacé par le nom de votre machine virtuelle

  • Mettez le raccourci sous "Démarrage" dossier dans le menu Démarrer de Windows

Pour conclure:

Après avoir fait les étapes ci-dessus - si vous redémarrez l'hôte Windows, il doit exécuter le raccourci, qui exécutera la machine virtuelle. La VM exécutera le service "Jenkins-slave" et votre esclave Jenkins devrait être opérationnel.

0

Réponse courte:

Oui, nous pouvons le faire. Ajoutez simplement VitrualBox en tant que service sur votre PC, et ajoutez Jenkins Slave en tant que service dans cette VM VitrualBox.

Réponse longue:

En fait, nous parlons de deux choses:

  1. comment auto-démarrer une machine virtuelle VirtualBox lorsque l'hôte de VirtualBox est redémarré.
  2. comment démarrer automatiquement un esclave jenkins lorsque ce client de noeud est redémarré.

Ou, dans un autre mot, nous parlons d'une chose:

  1. comment le démarrage automatique des choses lorsque l'ordinateur redémarré.

Mais les opérations de détail sont liées au système d'exploitation que vous utilisez. (Pour Windows, cet outil peut aider: https://nssm.cc/)

0

Il y a un VirtualBox Plugin que:

  • commence VMs automatiquement si nécessaire

  • arrête les machines virtuelles quand on n'a plus besoin

Il faut VirtualBox service web (vboxwebsrv) pour contrôler les VM (voir par exemple chapter 9.12 of the VirtualBox documentation pour le faire fonctionner). Le seul inconvénient est que (en date de mars 2017), il ne prend en charge que la version 4.3 de VirtualBox et ci-dessous.