ent Automated Deploym u … of & Ubunt

Michael Prokop

About Me

Debian Developer Project lead of Grml.org Founder of Grml-Forensic.org Involved in FAI, initramfs-tools, etc. Member in Debian Forensic Team Author of Book ,,Open Source Projektmanagement" IT Consultant

Disclaimers

Deployment focuses on

Several tools mentioned, but there exist even more :)

We'll cover some sections in more detail than others

There's no one-size-fits-all solution – identify what works for you

Systems Management Provisioning / Documentation Bootstrapping Infrastructure Orchestration / Development DevOps Automation Visualization/Trends Configuration /Metrics + Logs Management Monitoring + Cloud Service Updates Deployment

Systems Management

Remote Access ipmi, HP iLO, IBM RSA,...

Firmware Management

$Vendor Tools

Provisioning / Bootstrapping

F(ully) A(utomatic) I(nstallation) Debian, , CentOS +

http://fai-project.org/

Juju Ubuntu „Charms“ https://juju.ubuntu.com/

grml-debootstrap netscript=http://example.org/netscript.sh

http://grml.org/

d-i preseeding auto url=http://debian.org/releases/\ squeeze/example-preseed.txt http://wiki.debian.org/DebianInstaller/Preseed

Kickstart

Cobbler

Foreman

AutoYaST, openQRM, Spacewalk,...

Orchestration / 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

Rundeck

apt-dater

% cat .config/apt-dater/hosts.conf [example.org] [email protected];mika@ mail.example.org;... ControlTier, Func, MCollective,...

ClusterSSH, dsh, TakTuk,...

Cobbler, Foreman, openQRM, Spacewalk,...

Configuration Management

Puppet

Environments (production/staging/development)

●http://anonscm.debian.org/gitweb/?p=mirror/dsa-puppet.git ●https://github.com/grml/gsa-puppet ●https://labs.riseup.net/code/projects/sharedpuppetmodules ●...

Augeas

% augtool set /files/etc/hosts/01/ipaddr 192.168.0.1 set /files/etc/hosts/01/canonical klug.example.org save

bcfg2, cfengine, chef + ohai

Monitoring / Updates

Repository Handling/Proxy

apt-cacher-ng reprepro squid ...

unattended-upgrades

Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates"; };

Monitoring

Cacti, Nagios/Icinga, OpenNMS, Zabbix, Zenos,...

Monit, , ,...

Nagios / Icinga

security updates, running kernel version,.. git clone git://anonscm.debian.org/mirror/dsa-nagios.git

Service Deployment

Debian Packaging

dpkg [v3] + debhelper [v8] dh-make, dh-make-perl, dh-make-php, dh-make-ruby/gem2deb fpm [https://github.com/jordansissel/fpm]

{cvs,svn,git,...}-buildpackage

cowbuilder/pbuilder/sbuild/...

Ruby

Bundler http://gembundler.com/

Python virtualenv/pip/pbundler

Continuous Integration & Jenkins

Cloud Eucalyptus, OpenStack, Cloudstack

Visualization/Trends/Metrics + Logs Logstash, Graylog2, Splunk Cacti, Munin, Collectd, Ganglia, Graphite

Infrastructure Development + Testing

Vagrant

% vagrant box add base \ http://files.vagrantup.com/lucid32.box % vagrant % vagrant up

http://vagrantup.com/ + http://www.vagrantbox.es/

Veewee

% 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

https://github.com/jedi4ever/veewee Jenkins

Cucumber-Puppet RSpec-Puppet Guard::Cucumber

Documentation Wiki VCS (Git!) Asciidoc, Sphinx, txt2tags Password Management ...

Questions || Wishes?

@mikagrml mika @ github michael-prokop.at/blog/