Driving Innovation: RWS's Open Approach to Ansible Automation
Categories:
For more information on this approach, refer to ODM / OSS. This page provides a comprehensive explanation of how this approach is used to manage the Rijkswaterstaat (RWS) GIS Platform. It covers three distinct Ansible disciplines, accompanied by text and diagrams:
Ansible engineering
This discipline focuses on creating reusable fundamental automation building blocks through Ansible Collections and Ansible Roles. These activities primarily take place in the open source/internet domain, maximizing flexibility and productivity. The configuration/playbook project for this reference implementation is the c2platform/rws/ansible-gis
project. This project enables the local deployment of a complete and functional environment of the RWS GIS Platform. For this purpose, the project utilizes the Ansible collections c2platform.gis
and c2platform.wincore
. These projects are public, open-source projects that are part of the GitLab Open Source Program.
The diagram below illustrates the provisioning of a local instance of the RWS GIS Platform by an open-source Ansible engineer using Vagrant. The example showcases four local nodes:
gsd-rproxy1
: An Apache2 instance running in an LXD container. For more information on this type of node, refer to the guide on Setting up a Reverse Proxy and CA server.gsd-agwat1
,gsd-adserver1
,gsd-agportal1
: These represent ArcGIS Webadapter, ArcGIS Server, and ArcGIS Portal, respectively.
The engineer manages the GitLab projects stored in the c2platform/rws/ folder on gitlab.com by pushing and pulling changes.
Additionally, the c2platform.gis
and c2platform.wincore
projects are periodically pushed to the RWS Azure DevOps Namespace
to facilitate development on the Ansible Control Node
. Refer to Ansible ad-hoc for more details.
Open-source projects that are part of the GitLab Open Source Program benefit from free and unlimited CI/CD workloads. As a result, the c2platform.gis
and c2platform.wincore
projects include a CI/CD pipeline that publishes to the Galaxy website.
Ansible configuration
This discipline involves the creation of an Ansible configuration project, commonly referred to as an Ansible playbook project. It encompasses inventory, plays, and environment configurations for the RWS GIS Platform environments located within the RWS data center. It is important to note that this discipline differs significantly from Ansible engineering. Therefore, the primary role involved is that of an Ansible User rather than an Ansible Engineer.
The tasks involved in this discipline are generally straightforward and can be accomplished using web interfaces: the Ansible Automation Platform (AAP)
and the Azure Devops web interface. However, it is highly recommended to utilize Visual Studio Code as the preferred tool for managing the Ansible configuration/playbook project. This is especially true when dealing with larger and more complex projects such as ansible-gis
and its open-source upstream reference project ansible-gis
, as navigating and managing them without an IDE can become challenging.
Ansible ad-hoc
This discipline revolves around utilizing Ansible on an Ansible Control Node to perform ad-hoc technical maintenance tasks using Ansible. See also How-to: Setup Ansible Control Node.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.