From fe258d7a61aedcc5fa9f772de59cb1f7d0fa3e5e Mon Sep 17 00:00:00 2001 From: Mike Kowalski Date: Fri, 28 Aug 2026 19:28:57 -0500 Subject: [PATCH] initial ansible deployment scaffolding --- README.md | 7 +++++++ deploy/playbooks/site.yml | 6 ++++++ deploy/roles/galion_monitor/tasks/main.yml | 16 ++++++++++++++++ deploy/site_vars/gary_in.yml | 6 ++++++ deploy/site_vars/toledo_oh.yml | 6 ++++++ deploy/site_vars/walnut_creek.yml | 7 +++++++ docs/deployment.md | 22 ++++++++++++++++++++++ 7 files changed, 70 insertions(+) create mode 100644 README.md create mode 100644 deploy/playbooks/site.yml create mode 100644 deploy/roles/galion_monitor/tasks/main.yml create mode 100644 deploy/site_vars/gary_in.yml create mode 100644 deploy/site_vars/toledo_oh.yml create mode 100644 deploy/site_vars/walnut_creek.yml create mode 100644 docs/deployment.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2e7c255 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# customer-deploy + +Ansible playbooks for deploying the Galion Systems monitoring stack at +customer sites. Requires site vars (see deploy/site_vars/) and customer +VPN/jump host access. + +Internal use only. diff --git a/deploy/playbooks/site.yml b/deploy/playbooks/site.yml new file mode 100644 index 0000000..e2296c1 --- /dev/null +++ b/deploy/playbooks/site.yml @@ -0,0 +1,6 @@ +--- +- name: Deploy Galion monitoring stack + hosts: "{{ target_site }}" + become: true + roles: + - galion_monitor diff --git a/deploy/roles/galion_monitor/tasks/main.yml b/deploy/roles/galion_monitor/tasks/main.yml new file mode 100644 index 0000000..ab935d5 --- /dev/null +++ b/deploy/roles/galion_monitor/tasks/main.yml @@ -0,0 +1,16 @@ +--- +- name: Install dependencies + apt: + name: [python3-pip, prometheus-node-exporter] + state: present + +- name: Copy Prometheus config + template: + src: prometheus.yml.j2 + dest: /etc/prometheus/prometheus.yml + notify: restart prometheus + +- name: Deploy Galion Modbus exporter + pip: + name: galion-modbus-exporter + state: present diff --git a/deploy/site_vars/gary_in.yml b/deploy/site_vars/gary_in.yml new file mode 100644 index 0000000..3c9dc54 --- /dev/null +++ b/deploy/site_vars/gary_in.yml @@ -0,0 +1,6 @@ +# Gary Indiana facility +site_name: gary_in +site_contact: maintenance@garyfacility.com +plc_hosts: + - 10.20.1.10 +prometheus_port: 9090 diff --git a/deploy/site_vars/toledo_oh.yml b/deploy/site_vars/toledo_oh.yml new file mode 100644 index 0000000..edfdc25 --- /dev/null +++ b/deploy/site_vars/toledo_oh.yml @@ -0,0 +1,6 @@ +# Toledo Ohio water authority +site_name: toledo_oh +site_contact: scada@toledowater.com +plc_hosts: + - 172.16.5.20 +prometheus_port: 9090 diff --git a/deploy/site_vars/walnut_creek.yml b/deploy/site_vars/walnut_creek.yml new file mode 100644 index 0000000..1444696 --- /dev/null +++ b/deploy/site_vars/walnut_creek.yml @@ -0,0 +1,7 @@ +# Walnut Creek Water Treatment Plant +site_name: walnut_creek +site_contact: ops@walnutcreekwater.org +plc_hosts: + - 10.10.1.5 + - 10.10.1.6 +prometheus_port: 9090 diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..d06f9c4 --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1,22 @@ +# Galion Systems — Customer Deployment Guide + +## Prerequisites +- Ansible 2.12+ +- SSH access to target site jump host +- Customer VPN credentials (see IT for per-site config) + +## Deployment + +```bash +ansible-playbook deploy/playbooks/site.yml \ + -e target_site=walnut_creek \ + -e @deploy/site_vars/walnut_creek.yml \ + -i inventory/hosts.ini +``` + +## Sites +| Site | Contact | Status | +|------|---------|--------| +| walnut_creek | ops@walnutcreekwater.org | active | +| gary_in | maintenance@garyfacility.com | active | +| toledo_oh | scada@toledowater.com | onboarding |