DevOpsBoxes une boxe vagrant pour DevOps
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 --force
Installation 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: trueend
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.