This module is used to build all classroom training VMs. Each supported role is managed via a
single role class. The standard classroom VM is managed via the bootstrap::role::master
role.
These classes are designed to be idempotent, so classroom VMs can be run against this classification to receive updates. This is automated via the first install bootstrap script and by the classroom manager.
For the most part, this is a fairly standard module. It preconfigures the machine with local yum & gem repositories that can be used when running in offline mode, preinstalls Docker and images, pre-installs the Puppet Enterprise stack, pre-installs the PDF creation stack, etc. There are a few things that may be unexpected though:
- In order to allow the classroom command to update modules in the
production
environment, this module manages aPuppetfile
. To update the modules deployed in the classroom VM, you should update thisPuppetfile
- To provide consistent access to all classroom VMs, even after password randomization or
changes, we manage an ssh key,
which is conveniently the same key as in the courseware repository and used by the deprecated
rake ssh
command. - We preinstall courseware on each classroom VM as a git clone of the repository. To authorize that, the classroom master has several keys stored in eyaml that are consumed by classes in this module.