DevOpsBoxes une boxe vagrant pour DevOps
Publié le :
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.gitpacker build -force .\devopsboxes-hyperv.jsoncd outputvagrant box add .\devopsboxes-ubuntu2110-hyperv-0.1.0.box --name devopsboxes/ubuntu2110 --forceInstallation de la configuration Devops 2022
Le Vagrantfile se trouve dans le répertoire provision :
# -*- mode: ruby -*-# vi: set ft=ruby :
$script = <<-SCRIPTecho I am provisioning...apt update -yapt dist-upgrade -ySCRIPT
$script2 = <<-SCRIPTpip install ansible --usergit 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.ymlSCRIPT
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: trueendPour 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 hypervUne fois la VM provisionnée je vous conseille d’installer Vscode pour y accéder avec les extensions Remote Dev de Microsoft.
choco install vscodePour 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 FATALRecopier 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.