We have been using the Job DSL plugin as well and are very happy with it. We probably generate ~90% of our jobs using it with the rest created by hand.
Our Jenkins master and slaves are all setup running in Docker containers. The master has the Jenkins home directory mounted from a directory on the host, so it persists across Docker container restarts. The containers are started from Docker images built with a Dockerfile, so all of the software install (Git, Java, Ant, Maven, etc) and initial configuration (ssh keys, etc) is in these Dockerfiles. Once the Jenkins master is started up, there is some manual configuration through Jenkins to setup slaves, settings, etc. We then have a backup job run daily to do a thin backup of the Jenkins home directory to S3. Setting up a new master from scratch takes about 15 minutes and requires downloading the backup from S3 and spinning up the Docker container. Spinning up a slave is as simple as starting a Docker container with the slave image somewhere and then hooking it up to the master. We are also using Docker as the basis for all of our test environments. After a build is complete in Jenkins, downstream jobs spin up a set of Docker containers and deploy the built software to those containers. All in all, we have been pretty happy with the setup and Docker has been getting more stable and mature over the past year. Looking forward to their new multi-host networking coming soon - will allow us to spin up test containers across a fleet of machines instead of our one really large instance we use now. On Sun, Jun 28, 2015 at 1:13 AM, David Resnick <[email protected]> wrote: > I'm very pleased with using the Job DSL plugin to keep job configuration > in SCM, both for setting up a new Jenkins instance as well as for keeping > track of job changes over time. > > Does anyone have a similar solution for setting up and maintaining a > Jenkins master? > > This would include such settings as tool installations, email defaults > and, most important, slave definitions. > > I'm hoping to find a groovy or DSL based solution; anything that is > cleaner than checking in the master config.xml. > > I'd really appreciate hearing what other people have worked out. > > Thanks! > > - David > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/94e52e15-dab9-475e-bf0d-9c4110c24658%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/94e52e15-dab9-475e-bf0d-9c4110c24658%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CABARhQmEZKNnks8B81%3DVD7ayWmNojxmLm31GiBC2Z1CbSHHZZA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
