Jenkins in the Homelab

From Open Homelab
Jump to: navigation, search

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!

Use Cases

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:

Example Jobs


External Links

Below are listed a number of curated links to blog posts from community members about how they used Jenkins for task scheduling and automation.

External Links
Title Description
Drop that cron - use Jenkins instead for scheduled jobs Discusses why you might use Jenkins as a scheduler
Replace Local Cron With Jenkins Examples Jenkins automation, such as automating OS patching