I have 100+ remote locations. In each of those locations I have 4 devices: ESXi, CentOS7, FreeBSD, and a purpose-built appliance that only accepts API calls. The devices that operate from API calls are managed from the CentOS7 device and has the information needed to connect and manage. I want to conform and manage the API based device based on centralized configs so that if they get altered by an end user they are reverted, or if we need to deploy new configs to all 100 sites we don’t have to script it manually or run it on the side. I’m very comfortable scripting in python. Ruby is completely foreign to me. I have a couple templates setup I managed to make work but they are sketchy at best.
Manage the API hosts by setting common things like time zone, default user list, reports, etc… Coding the process in python is something I’m comfortable with, creating factor items, or ruby scripts is out of skill set. I’m willing to learn enough to get by if I absolutely have to.
Foreman and Proxy versions:
1.22 for all versions. Running on CentOS7
I’ve been toying with the idea of having a cron job that runs ever 30 mins that pulls the current API config data and compares it to a config file on the local server. If they are different, then the cron job updates the API target data to match. If they are the same, it reports no change. My struggle with this approach is that I’m creating a layer of troubleshooting between foreman/puppet and the API target. The advantage is I can use the tools I know well and the puppet checks are simpler (maintain the configuration file)… also the VPN I’m coming across won’t have a latency impact on the calls.