Warm up for Automated configuration of web applications
Imagine you are a end-user, not a programmer, not a system administrator. You rent a virtual private server on a cloud provider, and you want to install applications on it.
Now look at the WordPress wiki page, and ask yourself: can you do that? Should you need to do all that in order do install a web application?
Now come back to your original self, a student who can program and is willing to participate in Outreachy/Summer of Code, and ask yourself: how would you automate that configuration in a way that survives upgrades, e.g. to the next version of Debian, or to the next security upgrade.
Tip 1: we will be using chef for the configuration automation part of this project.
- Tip 2: sometimes, Debian packages will need to be patched to handle things better.
certainly not in these warm up tasks, but keep this in mind.
Warm up task 0: get yourself a Debian machine
It can be a virtual machine, it can be your physical machine. In the Debian community we like when people actually use Debian.
Warm up task 1: get chef running
- Install chef (apt-get install chef)
Create and apply a simple recipe to install, say, vim and bash-completion on your machine using chef-solo.
- Send what you got to the mentor of this project
Warm up task 2: a more realistic setup
- create another recipe, that let's say, installs nginx and configures a simple website that serves static content
- the website root must be at /srv/mywebsite/
- the website configuration must be a file on its own, inside /etc/nginx/conf.d/
- make sure that if the website configuration file changes, nginx is reloaded. chef has a standard way of declaring this.
feel free, of course, to study the nginx documentation
- Send what you got to the mentor of this project