Jenkins in the Homelab

From Project Homelab
Jump to navigation Jump to search
File:Jenkins.png

This article is a stub. You can help The Open Homelab project by expanding it.


Introduction[edit | edit source]

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[edit | edit source]

TBC

Costs[edit | edit source]

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[edit | edit source]

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[edit | edit source]

  • 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[edit | edit source]

TBC

External Links[edit | edit source]

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 of Jenkins automation, such as automating OS patching
Jenkins Plugins Primary plugin repo, with plugins for Windows, Linux and generic features