Configuration management code will let us express things like “install the ‘apache’ package” or “put the
apache.conf file from my code repo on the server at
The idea is that the configuration of your system is automatic so it can be duplicated by the other group members as they develop, the system can be instantiated by us for marking, and (not in this course but in theory) many instances can be deployed to cloud infrastructure automatically.
Here's an outline of what's happening:
- We create configuration management code (with Chef or Puppet or Fabric or Docker) that says how our system needs to be set up.
- We use Vagrant or Docker to direct the creation of a virtual machine. (
- As part of that, Vagrant starts the provisioner which runs our configuration code. This actually installs and starts everything on our server.
- The system is up and running.
There are several tools for configuration management. It's not at all clear to me which one is “best”, but I'll give example code for Chef.
More specific technology instructions on the DeployConfig page.
See my introductory videos: