De Ansible ontwikkeldesktop uitrollen
c2d-devtop
Ansible ontwikkeldesktop met Vagrant. Deze node simuleert de host-ontwikkelingdesktop die wordt gebruikt voor
Ansible engineering.Categories:
Projects:
c2platform/c2/ansible-inventory , c2platform.dev.desktop , c2platform.core.linux
Overzicht
Deze handleiding beschrijft hoe je je geconfigureerde C2 Platform
Ansible ontwikkeldesktop
gebruikt om lokaal een extra Ansible ontwikkeldesktop genaamd c2d-devtop uit
te rollen als VirtualBox-node. De geautomatiseerde uitrol laat je de
automatisering testen, inspecteren en aanpassen. Het helpt ook om te begrijpen
hoe de automatisering die jouw Ansible ontwikkeldesktop heeft gemaakt is
opgebouwd, inclusief de componenten en verantwoordelijkheden.
De uitrol gebruikt de desktoprol uit de Dev-collectie en de Linuxrol uit de Core-collectie. Deze rollen zijn gedefinieerd en beheerd in het inventarisproject.
De node c2d-devtop biedt een veilige sandbox voor experimenten. Je kunt
Ansible-automatisering aanpassen, nieuwe configuraties verkennen of
Ubuntu-desktopfuncties testen zonder risico voor je primaire ontwikkelomgeving.
Als iets misgaat, voer je eenvoudig vagrant destroy c2d-devtop gevolgd door
vagrant up c2d-devtop uit om een schone staat te herstellen.
Randvoorwaarden
- Een Ontwikkelomgeving Opzetten op Ubuntu 24
- Zorg dat de Python-virtuele omgeving is geactiveerd met het commando-alias
c2d.
Uitrol
Maak de node aan met Vagrant:
vagrant up c2d-devtop
Dit duurt ongeveer 9 minuten. Zie de Vagrant-logging in
c2d-devtop.log
voor gedetailleerde Vagrant- en Ansible-logging.
Verificatie
RDP met Remmina
Open een RDP-verbinding met Remmina die de vaste Vagrant-gebruikersreferenties hieronder gebruikt.
| IP-adres | Gebruikersnaam | Wachtwoord |
|---|---|---|
192.168.56.13 | vagrant | vagrant |
De RDP-verbinding toont een scherm vergelijkbaar met het onderstaande. Omdat dit de eerste keer is dat de gebruiker via RDP inlogt, doorloop je de eenvoudige installatie door de taal en toetsenbordindeling te kiezen. Daarna kun je Ubuntu gebruiken.

Vagrant, LXD, VirtualBox
Gebruik de toepassingsstarter linksboven (drie stippen) om een terminal te starten. Typ “Terminal” om deze snel te selecteren.
Voer in de terminal de volgende commando’s uit om te controleren of Vagrant, LXD, VirtualBox en Visual Studio Code zijn geïnstalleerd:
vagrant --version
lxd --version
vboxmanage --version
code --version
De uitvoer toont de versies, bijvoorbeeld:
vagrant@c2d-devtop:~$ vagrant --version
Vagrant 2.4.0
vagrant@c2d-devtop:~$ lxd --version
5.21.6 LTS
vagrant@c2d-devtop:~$ vboxmanage --version
7.2.14r174565
vagrant@c2d-devtop:~$ code --version
1.132.0
df53daabb18cd157bdb08c7f01c34df936cf12f4
x64
Visual Studio Code
Start Visual Studio Code vanaf de toepassingsstarter op dezelfde manier als de terminal. Je ziet een GNOME Keyring-prompt, die je eerder hebt gezien bij het instellen van je host Ansible ontwikkeldesktop. Gebruik een eenvoudig, makkelijk te onthouden wachtwoord (bijvoorbeeld je standaardontwikkelwachtwoord) omdat dit een ontwikkelomgeving is waarin nodes vaak worden aangemaakt en vernietigd. Beveiliging is hier geen primaire zorg.
Voor meer informatie over de GNOME Keyring, zie de installatie-instructies voor je host Ansible ontwikkeldesktop: Een Ontwikkelomgeving Opzetten op Ubuntu 24 .

LXD-configuratie en initialisatie
De desktoprol initialiseert LXD en maakt netwerkbruggen zoals lxdbr0,
lxdbr1, lxdbrag1 en phx. Toon ze met:
lxc network ls
Voorbeelduitvoer:
vagrant@c2d-devtop:~$ lxc network ls
+----------+----------+---------+-----------------+------+-----------------------------------------------+---------+---------+
| NAME | TYPE | MANAGED | IPV4 | IPV6 | DESCRIPTION | USED BY | STATE |
+----------+----------+---------+-----------------+------+-----------------------------------------------+---------+---------+
| eth0 | physical | NO | | | | 0 | |
+----------+----------+---------+-----------------+------+-----------------------------------------------+---------+---------+
...
| lxdbr0 | bridge | YES | 10.13.151.1/24 | none | Default LXD bridge | 3 | CREATED |
...
De desktoprol maakt ook verschillende LXD-profielen aan, waaronder default,
agd, microk8s en phx. Toon ze met:
lxc profile ls
Voorbeelduitvoer:
vagrant@c2d-devtop:~$ lxc profile ls
+----------+----------------------+---------+
| NAME | DESCRIPTION | USED BY |
+----------+----------------------+---------+
| agd | GSD LXD profile | 0 |
+----------+----------------------+---------+
| default | Default LXD profile | 0 |
+----------+----------------------+---------+
| microk8s | MicroK8s LXD profile | 0 |
+----------+----------------------+---------+
| phx | PHX LXD profile | 0 |
+----------+----------------------+---------+
Optioneel kun je lxc --help gebruiken om extra LXC-commando’s te ontdekken
voor het inspecteren van de LXD-configuratie. Bekijk het pre-seedbestand
roles/desktop/files/lxd-init-preseed.yml
om de initialisatiestappen te zien die de desktoprol uitvoert.
Review
Dit gedeelte legt uit hoe het resultaat is bereikt. Het verwijst naar de desktoprol en het inventarisproject.
Vagrant
De bestanden
Vagrantfile
en
Vagrantfile.yml
in het inventarisproject zijn relevant voor
Vagrant.
Vagrant gebruikt altijd het eerste bestand: Vagrantfile (zonder extensie). In
de C2 Platform-aanpak blijft dit bestand generiek en verandert het zelden. Het
leest Vagrantfile.yml omdat het YAML-formaat de omgeving beknopter definieert
dan een gewoon Vagrantfile. Naarmate de omgeving groeit, wordt een
traditioneel Vagrantfile al snel moeilijk leesbaar. De node-, geheugen- en
schijfdefinities in een apart YAML-bestand houden voorkomt duplicatie, verbetert
de leesbaarheid en vereenvoudigt onderhoud. Zie
Vagrant
voor meer informatie over deze optimalisatie.
De nodes zijn dus gedefinieerd in Vagrantfile.yml. Het fragment hieronder
definieert de
Vagrant box ubuntu24:
52 ubuntu24:
53 name: c2platform/ubuntu-24
54 version: 0.0.2
55 labels: [ubuntu24, ubuntu, linux, vbox]
Verderop wordt de
Vagrant node c2d-devtop gedefinieerd:
285 - name: devtop
286 short_description: Development Desktop
287 description: Ubuntu 24.04 Development Desktop
288 memory: 8192
289 box: ubuntu24
290 ip-address: 192.168.56.13
291 plays:
292 - plays/dev/desktop.yml
293 labels: [devtop, ubuntu_desktop, xrdp]
Zowel de
Vagrant box als de
Vagrant node hebben labels. Deze labels
worden niet door Vagrant gebruikt maar door Ansible, zoals hieronder wordt
uitgelegd.
Ansible
Ansible Play
De nodedefinitie verwijst naar de play
plays/dev/desktop.yml,
die twee rollen gebruikt:
Ansible-configuratie
Het bestand Vagrantfile.yml wordt geparseerd door de
Vagrant inventory plugin1.
De plugin plaatst de node in groepen op basis van de labels van zowel de
image ubuntu24 als de
node c2d-devtop: devtop, linux,
ubuntu, ubuntu24, ubuntu_desktop, vbox en xrdp.
Een extra groep development verschijnt. Dit is de
omgevingsgroep voor de
standaardontwikkelomgeving, volgens de C2 Platform-strategie
groepgebaseerde omgevingen.
De onderstaande tabel toont de groepen en hun bijbehorende variabelenbestanden. Je kunt elke link volgen om de configuratie voor die groep te bekijken. Dit helpt je begrijpen welke instellingen relevant zijn voor het uitrollen van de Ansible ontwikkeldesktop.
| Groep | Opmerking | Bestand |
|---|---|---|
development | Omgevingsconfiguratie | group_vars/development.yml |
devtop | Desktopconfiguratie | group_vars/devtop/main.yml |
linux2 | ||
ubuntu | Ubuntuconfiguratie | group_vars/ubuntu/main.yml |
ubuntu242 | ||
ubuntu_desktop | Ubuntu-desktopconfiguratie | group_vars/ubuntu_desktop/main.yml |
group_vars/ubuntu_desktop/dev.yml | ||
vbox2 | ||
xrdp | Installeer XRDP | group_vars/xrdp/main.yml |
Voor verdere referentie kun je de volgende informatie bekijken:
- Een Ontwikkelomgeving Opzetten op Ubuntu 24: Installeer Ansible, Vagrant, LXD, Virtualbox en kloon de projectmappen.
- Ontwikkelomgeving: Een lokale open-source ontwikkelomgeving stimuleert Ansible-automatisering door maximale flexibiliteit en productiviteit te bieden voor snelle iteratie, testen en onafhankelijkheid van externe infrastructuurteams of zelfs andere engineers in het team vanwege gedeelde omgevingen.
- Vagrant: Vagrant biedt een gebruiksvriendelijk platform voor het maken en beheren van eenvoudige lokale ontwikkelomgevingen, waardoor het installatieproces wordt gestroomlijnd.
- Ansible-inventarisproject: Een gestructureerde verzameling bestanden die worden gebruikt voor het beheren van hosts en configuraties. Het omvat doorgaans inventarisbestanden, playbooks, hostconfiguraties, groepsvariabelen en Ansible Vault-bestanden.
- Dynamische inventaris simuleren in ontwikkeling: Richtlijn voor het gebruik van een inventaris-plugin in Ansible-ontwikkelomgevingen als concreet voorbeeld om toekomstige volledige automatisering te illustreren voor organisaties die nieuw zijn met Ansible.
Voor meer informatie over de Vagrant inventory plugin, zie:
- Ansible-inventarisproject: Een gestructureerde verzameling bestanden die worden gebruikt voor het beheren van hosts en configuraties. Het omvat doorgaans inventarisbestanden, playbooks, hostconfiguraties, groepsvariabelen en Ansible Vault-bestanden.
- Dynamische inventaris simuleren in ontwikkeling: Richtlijn voor het gebruik van een inventaris-plugin in Ansible-ontwikkelomgevingen als concreet voorbeeld om toekomstige volledige automatisering te illustreren voor organisaties die nieuw zijn met Ansible.
De Ansible-groepen
linux,ubuntu24envboxworden momenteel niet gebruikt. Er bestaan geen groepsvariabelen voor deze groepen en er is geen bijbehorende map aanwezig in degroup_vars-directory. ↩︎ ↩︎ ↩︎
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.