Continuous Integration using Docker & Jenkins
LinuxCon Europe 2014 October 13-15, 2014
Mattias Giese Solutions Architect B1 Systems GmbH giese@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Continuous Integration using Docker & Jenkins LinuxCon Europe - - PowerPoint PPT Presentation
Continuous Integration using Docker & Jenkins LinuxCon Europe 2014 October 13-15, 2014 Mattias Giese Solutions Architect B1 Systems GmbH giese@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting, Training, Support &
Mattias Giese Solutions Architect B1 Systems GmbH giese@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Consulting Support Development Training Operations Solutions
B1 Systems GmbH Continuous Integration using Docker & Jenkins 2 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 3 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 4 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 5 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 6 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 7 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 8 / 42
cgroups kernel namespaces . . .
B1 Systems GmbH Continuous Integration using Docker & Jenkins 9 / 42
libraries dependencies . . .
B1 Systems GmbH Continuous Integration using Docker & Jenkins 10 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 11 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 12 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 13 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 14 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 15 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 16 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 17 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 18 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 19 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 20 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 21 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 22 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 23 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 24 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 25 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 26 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 27 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 28 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 29 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 30 / 42
base Docker container for every supported OS of a module are being built as seperate jobs
1
git push to development branch
2
Gitlab triggers Jenkins Webhook
3
Jenkins merges dev with test branch
B1 Systems GmbH Continuous Integration using Docker & Jenkins 31 / 42
1 Jenkins creates a new container. 2 r10k deploys all puppet code. 3 simple syntax and style(lint) checks 4 rspec-puppet is run. B1 Systems GmbH Continuous Integration using Docker & Jenkins 32 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 33 / 42
1 Jenkins starts a fresh container from a puppet-enabled base
2 r10k deploys all needed Puppet code 3 puppet apply is run with the specified module:
B1 Systems GmbH Continuous Integration using Docker & Jenkins 34 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 35 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 36 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 37 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 38 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 39 / 42
B1 Systems GmbH Continuous Integration using Docker & Jenkins 40 / 42
implement flow/job dsl plugin
multi-configuration jobs may help with that use Packer for building base Docker images (Puppet Provisioner)
may be implemented through ’promoted builds’
B1 Systems GmbH Continuous Integration using Docker & Jenkins 41 / 42
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development