Introduction

The ESC-Scheduler is a web application that allows you to start and stop virtual machines (VMs) automatically based on schedules. Users can create different schedules and assign VMs to them. The corresponding VMs will then automatically be started and stopped at the days and times defined in the schedule.
The ESC Scheduler also allows to start/stop VMs directly without scheduling them.
Technologies
The tool is a stand-alone Python application based on the Django framework that holds an own inventory with the VMs from one specific tenant of the vRA in a local MySQL database.
In case that VMs from several tenants need to be started and stopped, a separate instance of the ESC-Scheduler needs to be installed for each tenant. All the interactions with the virtual machines are executed over the API of vRA. This includes the update of the inventory as well as the necessary commands for starting and stopping the VMs.
The application is server over a Nginx webserver.
All these applications are delivered in docker images and can be easily started through a docker-compose.yml file, see installation.
Authentication
The ESC Scheduler offers two authentication methods: Local auth and LDAP.
Local Auth
With local auth, two users get created: admin and user. While the admin user has superuser rights and can adjust all settings (such as vRA API endpoint), the user can only schedule & start/stop VMs. The password for both users can be set initially through the docker-compose environment variables.
LDAP integration
When using LDAP, you have the possibility to connect to one of your LDAP servers (e.g. Active Directory) and allow all - or certain groups of users - access to the ESC scheduler. You can optionally set a specific group that has superuser rights.
Both
Setting the env variable LDAP_WITH_LOCAL_AUTH to true enables LDAP integration with the local admin & user. This is useful if you don't want to setup an admin group in over LDAP.
Managing vRA VMs
The ESC scheduler accessed vRA with the credentials setup in the vRA settings. The scheduler can therefore only see VMs to which the configured credentials have access to. It is therefore advised to configure credentials that have access to all VMs.
