Stimuleren van Innovatie: De Open Aanpak van RWS voor Ansible Automatisering

Rijkswaterstaat omarmt een open aanpak van Ansible engineering en bevordert het hergebruik van ideeën en code. Dit leidt tot meer flexibiliteit en productiviteit, vooral in het open source/internetdomein.

Voor meer informatie over deze aanpak, raadpleeg ODM / OSS. Deze pagina biedt een uitgebreide uitleg over hoe deze aanpak wordt gebruikt om het Rijkswaterstaat (RWS) GIS Platform te beheren. Het behandelt drie verschillende Ansible-disciplines, vergezeld van tekst en diagrammen:

Ansible engineering

Deze discipline richt zich op het creëren van herbruikbare fundamentele automatiseringsbouwblokken via Ansible Collections en Ansible Roles. Deze activiteiten vinden voornamelijk plaats in het open source/internetdomein, wat maximale flexibiliteit en productiviteit oplevert. Het configuratie/playbook-project voor deze referentie-implementatie is het c2platform/rws/ansible-gis project. Dit project maakt de lokale implementatie van een complete en functionele omgeving van het RWS GIS Platform mogelijk. Hiervoor maakt het project gebruik van de Ansible collecties c2platform.gis en c2platform.wincore. Deze projecten zijn openbare open-source projecten die deel uitmaken van het GitLab Open Source Program.

Het onderstaande diagram illustreert het voorzien van een lokale instantie van het RWS GIS Platform door een open-source Ansible engineer met behulp van Vagrant. Het voorbeeld toont vier lokale nodes:

  1. gsd-rproxy1: Een Apache2 instantie die draait in een LXD container. Voor meer informatie over dit type node, raadpleegt u de gids over Het instellen van een Reverse Proxy en CA-server.
  2. gsd-agwat1, gsd-adserver1, gsd-agportal1: Dit vertegenwoordigt respectievelijk ArcGIS Webadapter, ArcGIS Server en ArcGIS Portal.

De engineer beheert de GitLab-projecten opgeslagen in de c2platform/rws/  map op gitlab.com  door wijzigingen te pushen en te pullen.

Daarnaast worden de projecten c2platform.gis en c2platform.wincore periodiek gepusht naar de RWS Azure DevOps Namespace  om ontwikkeling op de Ansible Control Node  mogelijk te maken. Raadpleeg Ansible ad-hoc voor meer details.

Open-source projecten die deel uitmaken van het GitLab Open Source Program profiteren van gratis en onbeperkte CI/CD-workloads. Als gevolg hiervan bevatten de projecten c2platform.gis en c2platform.wincore een CI/CD-pijplijn die publiceert naar de Galaxy website.

Ansible configuratie

Deze discipline omvat het maken van een Ansible configuratieproject, vaak aangeduid als een Ansible playbook project. Het omvat inventaris, plays en configuraties voor de omgevingen van het RWS GIS Platform in het RWS datacenter. Het is belangrijk op te merken dat deze discipline aanzienlijk verschilt van Ansible engineering. Daarom is de primaire rol een Ansible Gebruiker in plaats van een Ansible Engineer.

De taken in deze discipline zijn over het algemeen eenvoudig en kunnen worden uitgevoerd via webinterfaces: het Ansible Automation Platform (AAP)  en de Azure Devops webinterface. Echter, het wordt sterk aangeraden om Visual Studio Code te gebruiken als het voorkeursmiddel voor het beheren van het Ansible configuratie/playbook project. Dit is vooral het geval bij grotere en meer complexe projecten zoals ansible-gis  en het upstream open-source referentieproject ansible-gis, aangezien navigeren en beheren zonder een IDE uitdagend kan worden.

Ansible ad-hoc

Deze discipline draait om het gebruik van Ansible op een Ansible Control Node  om ad-hoc technische onderhoudstaken uit te voeren met Ansible. Zie ook Handleiding: Instellen van Ansible Control Node.