Vagrant-project
Categories:
Een Vagrant-project is een directorystructuur die Vagrant gebruikt om virtuele ontwikkelomgevingen te definiëren en te beheren. Het bevat een Vagrantfile voor de declaratieve configuratie van virtuele machines, netwerken en provisioning-stappen. Het Ansible-mirror-inventarisproject is een uitstekend voorbeeld van een Vagrant-project.
In de context van het C2 Platform integreert een Vagrant-project met Ansible-automatisering om echte infrastructuur lokaal te simuleren. Het is ontworpen voor het testen van Ansible-content ( Ansible-collecties, Ansible-rol, enz.) en Ansible-mirror-inventarisproject. Dit bevordert consistentie en herhaalbaarheid in ontwikkelomgeving, waardoor Ansible engineer automatisering kunnen prototypen en valideren. De Ansible-content wordt vervolgens gepubliceerd naar Ansible Galaxy voor gebruik in automatisering over Nederlandse overheidsdomeinen en datacenters heen.
In de aanpak van het C2 Platform is een Vagrant-project altijd ook een
Ansible-mirror-inventarisproject. Het gebruikt een generiek
Vagrantfile
aangevuld met een YAML-bestand Vagrantfile.yml, waarin de nodes, netwerken en andere configuraties van de ontwikkelomgeving worden gedefinieerd. Het YAML-bestand wordt gebruikt om een deel van de complexiteit te abstraheren die gepaard gaat met het configureren van een Vagrantfile voor systemen die uit vele nodes bestaan, inclusief meerdere LXD-containers en enkele VirtualBox-VM’s. Deze aanpak vereenvoudigt het beheer door configuratiegegevens te scheiden van de kernlogica van Vagrant, waardoor het eenvoudiger wordt om de omgeving te onderhouden en te schalen.
Voor een voorbeeld van een Vagrant-project, zie het
inventarisproject
RWS GIS Platform Ansible Mirror Inventory Project ( c2platform/rws/ansible-gis).
Dit project bevat een
Vagrantfile
dat wordt vergezeld door een YAML-configuratiebestand
Vagrantfile.yml.
Het aanmaken van een nieuwe node is zo eenvoudig als het kopiëren en aanpassen van een stukje YAML-code. In
het fragment hieronder (regels 191-199) wordt node gsd-fme-core gedefinieerd. Dus het aanmaken van een
nieuwe node in je omgeving is zo eenvoudig als het kopiëren van die regels en het aanbrengen van enkele
wijzigingen, zoals een unieke naam, uniek IP-adres, enz., en het kiezen van een Vagrant box. Let bijvoorbeeld op dat de box voor deze node is geconfigureerd als win2022.
191 - name: fme-core
192 description: FME
193 box: win2022
194 ip-address: 1.1.8.106
195 memory: 4500
196 aliases:
197 - share.internal.c2platform.org
198 - gsd-fme-core.internal.c2platform.org
199 - gsd-fme-core.apps.c2platform.org
200 plays:
201 - gis/fme
In het fragment hieronder zien we enkele van de beschikbare Vagrant boxes. Bijvoorbeeld,
gsd-fme-core gebruikt win2022, die is geconfigureerd voor
sysprep (via de sleutel sysprep: true) en gebruikt WinRM voor communicatie
(via de sleutel vm-communicator: winrm). RHEL 8 en 9 boxes zijn ook gedefinieerd,
met registration: true om automatische registratie bij Red Hat te garanderen
bij aanmaak en deregistratie bij vernietiging.
299boxes: # https://app.vagrantup.com/c2platform/
300 ubuntu22-lxd:
301 name: c2platform/ubuntu-jammy
302 version: 0.1.0
303 provider: lxd
304 win2022:
305 name: c2platform/win2022
306 version: 0.1.0
307 sysprep: true
308 vm-communicator: winrm
309 rhel8:
310 name: generic/rhel8
311 version: 4.3.12
312 registration: true
313 rhel9:
314 name: generic/rhel9
315 version: 4.3.12
316 registration: true
Er zijn talloze optimalisaties en verbeteringen aangebracht aan de C2 Vagrant-project-setup door de jaren heen.
Aanvullende informatie
- Ansible-mirror-inventarisproject: Een open-source gespecialiseerd Ansible-inventarisproject dat Vagrant-functionaliteit integreert om real-world infrastructuur lokaal te simuleren voor ontwikkeling en testen.
- Automatiseren van RHEL-Registratie en Abonnement: Automatiseer de registratie en abonnementsbeheer van Red Hat Enterprise Linux (RHEL) in C2 Platform ontwikkelomgevingen met Vagrant voor naadloze toegang tot Red Hat-bronnen.
- Installeer Vagrant en Vagrant Plugins: Installeer Vagrant, Vagrant plugin
vagrant-lxd,vagrant-windows-sysprepen activeer Vagrant-autocompletion.
Feedback
Was deze pagina nuttig?
Fijn om te horen! Vertel ons alstublieft hoe we kunnen verbeteren.
Jammer om dat te horen. Vertel ons alstublieft hoe we kunnen verbeteren.