Loading search data...

DevopsBoxes une boxe vagrant/hyperv pour les francophones

Publié le : 25 mars 2022 | Mis à jour le : 19 septembre 2022

logo

Je continue le développement de ma configuration Devops 2022 et je viens de franchir le pas de la publication de ma première box sur le site vagrantUp.

Pour rappel, cette boxe vagrant est construite sur la base d’une Ubuntu 21.10 et on y trouve préinstallé :

  • Python v3.9.7
  • Docker version 20.10.14, build a224086
  • Vagrant 2.2.19
  • Libvirt / KVM / QEMU
  • Arkade 0.8.14

Pour le moment je n’ai pas encore intégré asdf mais comme le playbook actuel le fait il est installé.

Je viens de la publier dans sa version 0.1.0

Build de la boxes avec packer

Je ne suis pas parti d’une feuille vierge puisque je me suis largement inspiré de celle fournie sur le nom generic.

Si vous voulez reconstruire en local (il faudra être très patient !)

git clone git@gitlab.com:b4288/devopsboxes.git
packer build -force .\devopsboxes-hyperv.json
cd output
vagrant box add .\devopsboxes-ubuntu2110-hyperv-0.1.0.box --name devopsboxes/ubuntu2110 --force

Installation de la configuration Devops 2022

Le Vagrantfile se trouve dans le répertoire provision :

# -*- mode: ruby -*-
# vi: set ft=ruby :

$script = <<-SCRIPT
echo I am provisioning...
apt update -y
apt dist-upgrade -y
SCRIPT

$script2 = <<-SCRIPT
pip install ansible --user
git config --global user.email "adresse@gmail.com"
git config --global user.name "Stephane ROBERT"
git config --global core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
git clone https://github.com/stephrobert/my-vagrant-box.git
/home/vagrant/.local/bin/ansible-playbook /home/vagrant/my-vagrant-box/provision.yml
SCRIPT

Vagrant.configure("2") do |config|
    config.vm.box = "devopsboxes/ubuntu2110"
    config.vm.define 'devopsbox' do |node|
        node.vm.hostname = 'devopsbox'
    end
    config.vm.provider "hyperv" do |hyperv|
        hyperv.vmname = "devopsbox"
        hyperv.cpus = 3
        hyperv.memory = 2048
        hyperv.maxmemory = 2048
        # allow nested virtualization
        hyperv.enable_virtualization_extensions = true
        hyperv.linked_clone = true
    end
  config.vm.provision "shell", inline: $script
  config.vm.provision "shell", inline: $script2, privileged: false
  config.vm.synced_folder ".", "/vagrant", disabled: true
end

Pour lancer l’installation :

  • Il faut installer vagrant sur le poste Windows :
choco install vagrant
  • Il faut activer hyper-v. Dans une fenêtre PowerShell avec les droits admin :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  • Ensuite, il faut copier le Vagrantfile et depuis une fenêtre PowerShell :
vagrant up --provider hyperv

Une fois la VM provisionnée je vous conseille d’installer Vscode pour y accéder avec les extensions Remote Dev de Microsoft.

choco install vscode

Pour se connecter il faut récupérer les paramètres de connexion:

vagrant ssh-config

Host devboxes
  HostName 172.22.32.166
  User vagrant
  Port 22
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile D:/Projets/arch/.vagrant/machines/devboxes/hyperv/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Recopier ces lignes en remplaçant l’adresse IP par devopsbox.mshome.net dans le fichier ~/.ssh/config dans les paramètres de vscode (image ci-dessous). Cela vous évitera de devoir changer cette adresse à chaque démarrage de votre machine windows. Plus d’infos sur les extensions remote development.

Conclusion

Je sais que j’ai encore du travail et sans vos commentaires, j’aurais bien du mal.


Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur   Ko-Fi  . Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne nous coûte plus cher, via   ce lien  . Vous pouvez aussi partager le lien sur twitter ou linkedin via les boutons ci-dessous. Je vous remercie de votre soutien


Mots clés :

devops ansible tutorials vagrant packer

Autres Articles


Commentaires: