Set optional expiration when disabling chef client
We have a script that allows us to disable the Chef client on a host, but we do not have granular monitoring to alert us if we unintentionally leave it disabled. In many cases for maintenance or testing activities, we know that it can/should be re-enabled after a set period of time. Currently we try to set reminders for such cases so that we manually re-enable, but relying on a manual operation is error-prone and leads to problems due to human error.
To resolve this, the script should be updated to support an optional expiration period, after which the client will be automatically re-enabled, if possible. The operation should persist after a reboot, should be pre-empted by the most recent time provided from any successive invocations, and should execute at the earliest possible time after the original date/time if the system is offline when the job was scheduled to run.