I recently gave a talk, introducing DevOps how to add value by fully automated toolchains. Following this at my daily work, I realized, that my very personal servers are managed overall manually. Every single change is an epic battle. Therefore, I decided to get my hands dirty and to set up a fully automated toolchain for my personal server.
Why!?
I want to learn about the tools, the automation and the processes necessary. Maybe you ask yourself, why one should do this. I simply do this to fetch up with the current technology development. I meet a lot of technical managers who actually have no clue about the technology they are talking about. Personally, I don’t want to be one of those managers.
On the other hand, I have to move to a more recent version of my server’s OS but I don’t want to set up the server again by hand.
About one year ago, I had to re-install the server completely after a configuration mistake, three months ago I had to spend hours and hours to manually clean my WordPress installations due to an infected site. So there is an actual need as well.
I decided to blog about this adventure, which is especially interesting, as the blog itself has to move at one point to the new server. As usual, I blog to keep notes for myself. However, if you find the articles helpful, feel free to drop me a line, recommendations and tips are warmly welcomed.
Goals
I thought about some goals I want to achieve. Ultimately, I want a fully automated deployment pipeline for at least my main server. To achieve this, I want to
- upgrade to a new version of my server’s OS
- apply automation scripts such as Puppet, Chef or Ansible
- containerize everything – at least Mail and Web-Server have to be deployed independently
- automatically setup and create my WordPress instances
- set up a mechanism to easily deploy .NET Core Web APIs in containers
- create a single place where all “data” lives
- create a mechanism to backup the data
- establish monitoring and alerting push changes through the toolchain fully automated
- run everything through repositories and a CI/CD pipeline
tl;dr
I am going to replace my server and building a fully automated CI/CD pipeline.