I’d like to be able to:
- Launch a Unix server configured to my liking with minimum time and no manual intervention.
- Periodically run a single script that checks my config changes are intact and offers to repair incorrect settings (ie. because config files sometimes get replaced during updates).
What techniques do I have to choose from in order to accomplish this? (I’m asking for different fundamental approaches on how to do this before I want to get into specific software suggestions.)
This is roughly what I would do manually (locally from VirtualBox, or remotely on a VPS). Parenthesis are only partial examples.
- Setup essentials (
- Install packages (
sshd, php, nginx, mysql, ufw)
- Run setup scripts (
- Run config commands (
- Edit config files (
- Populate the database (
cat db.sql | mysql)
- Populate nginx web files (
rsync local remote:)
- Launch nginx
As for checking up on config files today, I don’t have a good strategy except checking them manually, which is really difficult.
I’ve heard of Puppet and others, but honestly I’m a bit intimidated by their syntax. I'd like to know the bird perspective of options before deciding on a technique and investing learning time.