Aller au contenu
medium

DevOpsBoxes une boxe vagrant pour DevOps

5 min de lecture

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é :

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 !)

Fenêtre de terminal
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 :
Fenêtre de terminal
choco install vagrant
  • Il faut activer hyper-v. Dans une fenêtre PowerShell avec les droits admin :
Fenêtre de terminal
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  • Ensuite, il faut copier le Vagrantfile et depuis une fenêtre PowerShell :
Fenêtre de terminal
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.

Fenêtre de terminal
choco install vscode

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

Fenêtre de terminal
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.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.