TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Jenkins the Cow – How to Deploy Jenkins Completely Pre-Configured

3 pointsby emmetogradyover 8 years ago

2 comments

Annatarover 8 years ago
<i>Luckily, there is an alternative: we can move all of the configuration of Jenkins into source control. This means that when we deploy Jenkins it is deployed fully configured, so we can treat the instances as cattle instead of pets.</i><p>I would take that two steps further:<p>1. make an OS package of the configuration, and keep the OS package files plus the configuration under revision control (Bitkeeper, git, Mercurial, ...);<p>2. ditch Docker, because at that point, it&#x27;s superfluous (the OS&#x27; software management subsystem worries about the payload and deployments at that point, for example with Kickstart in RHEL &#x2F; CentOS, or AutoYAST in SLES, or...) - no code required for installation.<p><i>We might lose the job build histories when we redeploy (only if we wipe the old Jenkins and redeploy a fresh, but treating Jenkins as cattle implies that this can happen at any time). If keeping the build histories intact is very important to you then you’ll have to solve this yourself or keep treating Jenkins as a pet.</i><p>That&#x27;s easy to solve (I already solved it): if Jenkins the application, and Jenkins&#x27; configuration is packaged, then the same applies for backup software (Bacula), and backup software&#x27;s client configuration.<p>Using the AT&amp;T &#x2F; SVR4 filesystem hierarchy standard specification, Jenkins can be <i>engineered</i> to deliver:<p>- payload in &#x2F;opt&#x2F;;<p>- configuration in &#x2F;etc&#x2F;opt&#x2F;;<p>- <i>data</i> in &#x2F;var&#x2F;opt&#x2F;jenkins&#x2F;.<p>Since the client will be automatically configured via the OS package to backup only &#x2F;var&#x2F;opt (no point in backing up packaged application and configuration, since they&#x27;re under revision control and can be reinstalled at will to replay the machine state), only <i>data</i> can be restored and the instance can continue where it left off, <i>without any loss of state</i>.<p>I already do this at scale. No Docker needed at all, and servers, be they virtual or physical, are completely disposable.
评论 #12751013 未加载
mrmrcolemanover 8 years ago
Great post. I&#x27;ve seen first hand the problems that occur with all the uncontrolled &#x27;state&#x27; in Jenkins installations when something goes wrong... lots of manual work!<p>It&#x27;s like moving Jenkins towards a static website model where you can always get back to a known state quickly and easily.<p>At hyper.sh we&#x27;ve been working to take this a step further by providing fast starting (couple of seconds), secure and highly-parallelized on-demand CI worker nodes.<p>We started with Buildbot (released yesterday: <a href="https:&#x2F;&#x2F;blog.hyper.sh&#x2F;serverless-ci-hyper-docker-integration-for-buildbot.html" rel="nofollow">https:&#x2F;&#x2F;blog.hyper.sh&#x2F;serverless-ci-hyper-docker-integration...</a>) and the Jenkins plugin is coming up next.<p>That makes a dream situation whereby you have a Jenkins master that can be easily restored from version control and all workers are created on-demand and billed per second meaning that there is no worker node maintenance at all and you only pay when you&#x27;re building.<p>We&#x27;re calling it &#x27;Serverless CI&#x27;. Would love to talk to you about this further. You can find contact details on the website if interested!