Question

Je travaille actuellement sur un produit côté serveur qui est un peu complexe à déployer sur un nouveau serveur, ce qui en fait un candidat idéal pour effectuer des tests sur une machine virtuelle. Nous utilisons déjà Hudson en tant que notre système CI, et j'aimerais vraiment pouvoir déployer une image de machine virtuelle avec le logiciel le plus récent et le plus performant en tant qu'artefact de construction.

Alors, comment s'y prend-on exactement? Quel logiciel VM est recommandé à cet effet? Combien de script doit être fait pour accomplir cela? Y at-il des problèmes en particulier lorsqu’on utilise Windows 2003 Server comme système d’exploitation ici?

Était-ce utile?

La solution

Désolé de refuser de donner une réponse acceptée à qui que ce soit, mais après des recherches approfondies (grâce à vos réponses!), j'ai trouvé une meilleure solution et j'ai voulu résumer ce que j'ai trouvé.

Premièrement, VirtualBox et VMWare Server sont d'excellents produits. Comme ils sont tous deux gratuits, chacun mérite d'être évalué. Nous avons décidé d’utiliser VMWare Server, car il s’agit d’un produit bien établi et nous pouvons obtenir de l’assistance si besoin est. Ceci est d'autant plus important que nous envisageons également de distribuer notre logiciel aux clients en tant que machine virtuelle au lieu d'une installation sur un serveur spécial, en supposant que le temps système généré par le lecteur VMWare n'est pas trop élevé. En outre, il existe une interface de script VMWare appelée VIX que l'on peut utiliser directement installer des fichiers sur la machine virtuelle sans avoir à installer SSH ou SFTP, ce qui représente un avantage considérable.

Notre solution est donc la suivante: nous créons d’abord un "vanille". Image de machine virtuelle avec système d'exploitation, rien d'autre, et archivez-la dans le référentiel. Ensuite, nous écrivons un script qui fait office d’installateur et place les artefacts créés par Hudson sur la machine virtuelle. Ce script doit avoir des interfaces pour copier des fichiers directement, via SFTP et via VIX. Cela nous permettra de continuer à distribuer des logiciels directement sur la machine cible ou via une machine virtuelle de notre choix. Cette image résultante est ensuite compressée et distribuée comme un artefact du serveur CI.

Autres conseils

Quel que soit le logiciel de la machine virtuelle (je peux également recommander VirtualBox), je pense que vous envisagez le scénario suivant:

  1. La construction est terminée
  2. CI lance la machine virtuelle (ou elle est toujours en cours d'exécution)
  3. CI utilise scp / sftp pour télécharger la construction dans la machine virtuelle via le réseau
  4. CI utilise ssh (si disponible sur le système d'exploitation cible exécuté sur une machine virtuelle) ou une autre fonction d'exécution de commande à distance pour déclencher l'installation dans l'environnement de la machine virtuelle

VMWare Server est un produit gratuit et très stable. Il vous permet également de créer des instantanés de la tranche de machine virtuelle et de revenir à la version précédente de votre machine virtuelle en cas de besoin. Il fonctionnera correctement sur Win 2003.

En ce qui concerne l'approvisionnement de nouvelles tranches de machines virtuelles pour vos générations, vous pouvez simplement copier et coller le dossier contenant les fichiers VMWare, modifier le SID et l'adresse IP de la nouvelle machine virtuelle et disposer d'un nouvel ordinateur. Prend 15 minutes en fonction de la taille de votre tranche de VM. Aucun script requis.

Si vous utilisez VirtualBox, vous voudrez peut-être l'exécuter sans tête, car ce sera sur votre serveur. Normalement, VirtualBox s’exécute en tant qu’application de bureau, mais il est possible de démarrer les ordinateurs virtuels à partir de la ligne de commande et d’accéder à la machine virtuelle via RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp

Nous utilisons Jenkins + Vagrant + Chef pour ce scénario.

Vous pouvez donc effectuer le processus suivant:

  • Contrôlez la version de votre environnement de machine virtuelle à l'aide de scripts de provisioning vagrant (Chef ou Puppet)

  • Construisez votre système à l'aide de Jenkins / Hudson

  • Exécutez votre script Vagrant pour extraire la dernière version stable de la sortie de CI

  • Enregistrez l'état de la machine virtuelle pour pouvoir le réutiliser ultérieurement.

Référence:

vagrantup.com

Je recommanderais VirtualBox . Il est gratuit et possède une interface de programmation bien définie, bien que je ne l’aie pas personnellement utilisé dans des situations de construction automatisées.

Choisir VMWare n’est actuellement pas un mauvais choix.

Cependant, Tout comme VMWare prend en charge le serveur VMWare, SUN prend en charge VirtualBOX.

Vous pouvez également accomplir cette tâche en utilisant VMWare Studio, qui est également gratuit. Le flux de travail de base est le suivant: 1. Créez un fichier XML décrivant votre machine virtuelle. 2. Utilisez studio pour créer le shell. 3. Utilisez le serveur VMWare pour provisionner la machine virtuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top