Jenkins in the Homelab
This article is a stub. You can help The Open Homelab project by expanding it.
Jenkins is an open source automation platform, who describe themselves as The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
Primarily used by developers for pipelining their code through development stages and into production, it's primary function is to enable "Continuous Integration and Continuous Delivery". However, the platform itself is extremely extensible, and being Java based, runs on almost any OS. This makes it a really interesting choice as a base for introducing automation into your homelab and controlling it from a single console! (Nobody said Single Pain of Glass! *Drink*!)
Pros and Cons
The basic version of Jenkins (with no high availability features) is completely free! Enterprise versions and even SaaS are available. For a zero cost solution, run it on Linux!
So you can of course use this as a tool for deploying and automating code, but being an extensible platform with scheduling capabilities, why not use it as a scheduling tool as well? You dont even need to install a single slave either, just spin up your Jenkins master server, then use that to either SSH or run PowerShell scripts on all of your managed VMs, and monitor their progress via the dashboard! It couldn't be simpler!
Known Issues and Solutions
- If you do try to remotely deploy a slave to a Windows instance, it can be quite painful and requires lots of firewall ports and registry changes. Best just to avoid slaves in a small environment, but if you do need them:
Below are listed a number of curated links to blog posts from community members about how they used Jenkins for task scheduling and automation.
|Drop that cron - use Jenkins instead for scheduled jobs||Discusses why you might use Jenkins as a scheduler|
|Replace Local Cron With Jenkins||Examples of Jenkins automation, such as automating OS patching|
|Jenkins Plugins||Primary plugin repo, with plugins for Windows, Linux and generic features|