Continuous Integration with Jenkins
Total Page:16
File Type:pdf, Size:1020Kb
Automated Deployment … of Debian & Ubuntu Michael Prokop About Me Debian Developer Project lead of Grml.org ounder of Grml-Forensic.org #nvolved in A#$ initramf"-tools$ etc. Member in Debian orensic Team Author of &ook $$Open Source Projektmanagement) #T *on"ultant Disclaimer" Deployment focuses on Linux (everal tools mentioned$ but there exist even more :. We'll cover some sections in more detail than others %here's no one-size-fits-all solution – identify what works for you Sy"tems Management Provisioning 4 Documentation &oot"trapping #nfrastructure 'rche"tration 4 Development Dev'ps Automation 6isualization/Trends *onfiguration 4Metric" + Logs Management Monitoring + *loud Service Updates Deployment Systems Management Remote Acce"" ipmi, HP i+'$ IBM RSA,... irm3are Management 9Vendor Tools Provisioning / Bootstrapping :ully) A(utomatic) I(n"tallation) Debian, Ubuntu$ Cent'( + Scientific +inu, http://fai-project.org/ ;uju Ubuntu <Charms= https-44juju.ubuntu.com/ grml-debootstrap netscript=http://example.org/net"cript.sh http-44grml.org4 d-i preseeding auto url>http-44debian.org/releases4\ "queeze/example-preseed.txt http-443iki.debian.org/DebianInstaller/Preseed Kickstart Cobbler Foreman AutoYa(%$ openQRM, (pace3alk,... Orche"tration / Automation Fabric (Python) % cat fabfile.py from fabric.api import run def host_type(): run('uname -s') % fab -H host1, host2,host3 host_type Capistrano (Ruby) % cat Capfile role :hosts, "host1", "host2", "host3" task :host_type, :roles => :hosts do run "uname -s" end % cap host_type 7undeck apt-dater % cat .config/apt-dater/hosts.conf [example.org] [email protected];mika@ mail.example.org;... *ontrolTier, Func$ MCollective$... *luster((8$ dsh, TakTuk,... *obbler$ Foreman$ openQRM, Spacewalk,... *onfiguration Management Puppet Environment" :production4"taging/development. ●http-44anonscm.debian.org/git3eb4Ep=mirror/dsa-puppet.git ●http"-44github.com/grml4gsa-puppet ●http"-44lab".riseup.net4code/project"4"haredpuppetmodules ●... Augea" % augtool "et 4files4etc/ho"t"4GH4ipaddr 192.168.0.H "et 4files4etc/ho"t"4GH4canonical klug.example.org "ave bcfg2$ cfengine$ chef + ohai Monitoring / Update" Repository Handling/Pro,y apt-cacher-ng reprepro "@uid ... unattended-upgrade" Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates"; }; Monitoring *acti, Nagio"4#cinga$ OpenNM($ Nabbix$ Neno"$... Monit$ Runit$ Upstart,... Nagios / Icinga "ecurity updates$ running kernel version,.. git clone git-44anonscm.debian.org/mirror/dsa-nagio".git Service Deployment Debian Packaging dpkg [vPQ + debhelper [v8] dh-make, dh-make-perl, dh-make-php, dh-make-ruby4gem2deb fpm Ohttps-44github.com/jordansis"el/fpmQ {cvs$"vn,git$...S-buildpackage co3builder/pbuilder/"build/... 7uby Bundler http:4/gembundler.com/ Python virtualenv/pip/pbundler *ontinuous Integration & Jenkin" *loud Eucalyptus$ 'penStack$ *loudstack 6isualization/Trends/Metrics + Log" +ogsta"h, GraylogJ$ Splunk *acti, Munin, *ollectd, Ganglia$ Graphite #nfrastructure Development + Testing Vagrant % vagrant box add base \ http://files.vagrantup.com/lucid32.box % vagrant init % vagrant up http:44vagrantup.com/ + http:/4333.vagrantbo,.es4 Vee3ee % bundle install --path vendor % alias veewee='bundle exec veewee' % veewee vbox define CustomDebian-6.0.4 \ Debian-6.0.4-amd64-netboot % $EDITOR definitions/CustomDebian-6.0.4/* % veewee vbox build 'CustomDebian-6.0.4' % veewee vbox validate CustomDebian-6.0.4 % vagrant package --base CustomDebian-6.0.4 http"-44github.com/jedi4ever/veewee Jenkins *ucumber-Puppet 7(pec-Puppet Guard:-Cucumber Documentation /iki 6*S :GitU. A"ciidoc, (phinx$ t,t2tag" Pa""3ord Management ... Cuestions VV Wishes? @mikagrml mika @ github michael-prokop.at4blog/ .