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.