Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
Automated Deployment
… of Debian & Ubuntu
Michael Prokop
About MeDebian Developer
Project lead of Grml.orgFounder of Grml-Forensic.org
Involved in FAI, initramfs-tools, etc.Member in Debian Forensic Team
Author of Book ,,Open SourceProjektmanagement"
IT Consultant
DisclaimersDeployment focuses on Linux
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
Infrastructure Development
Orchestration / Automation
Monitoring + Updates
Provisioning / Bootstrapping
Service Deployment
Configuration Management
Visualization/Trends/Metrics + Logs
SystemsManagement
Cloud
Documentation
DevOps
Systems Management
Remote Access
ipmi, HP iLO, IBM RSA,...
Firmware Management
$Vendor Tools
Provisioning / Bootstrapping
F(ully) A(utomatic) I(nstallation)Debian, Ubuntu, CentOS + Scientific Linux
http://fai-project.org/
grml-debootstrapnetscript=http://example.org/netscript.sh
http://grml.org/
d-i preseedingauto 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.pyfrom fabric.api import run
def host_type(): run('uname -s')
% fab -H host1, host2,host3 host_type
Capistrano (Ruby)% cat Capfilerole :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];[email protected];...
ControlTier, Func, MCollective,...
ClusterSSH, dsh, TakTuk,...
Cobbler, Foreman, openQRM, Spacewalk,...
Configuration Management
PuppetEnvironments (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
% augtoolset /files/etc/hosts/01/ipaddr 192.168.0.1set /files/etc/hosts/01/canonical klug.example.orgsave
bcfg2, cfengine, chef + ohai
Monitoring / Updates
Repository Handling/Proxyapt-cacher-ng
repreprosquid
...
unattended-upgrades
Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates";};
MonitoringCacti, Nagios/Icinga, OpenNMS, Zabbix, Zenos,...
Monit, Runit, Upstart,...
Nagios / Icingasecurity updates, running kernel version,..
git clone git://anonscm.debian.org/mirror/dsa-nagios.git
Service Deployment
Debian Packagingdpkg [v3] + debhelper [v8]
dh-make, dh-make-perl, dh-make-php, dh-make-ruby/gem2debfpm [https://github.com/jordansissel/fpm]
{cvs,svn,git,...}-buildpackage
cowbuilder/pbuilder/sbuild/...
Pythonvirtualenv/pip/pbundler
Continuous Integration & Jenkins
CloudEucalyptus, OpenStack, Cloudstack
Visualization/Trends/Metrics + LogsLogstash, Graylog2, Splunk
Cacti, Munin, Collectd, Ganglia, Graphite
Infrastructure Development + Testing
Vagrant
% vagrant box add base \http://files.vagrantup.com/lucid32.box% vagrant init% 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-PuppetRSpec-Puppet
Guard::Cucumber
DocumentationWiki
VCS (Git!)Asciidoc, Sphinx, txt2tags
Password Management...
Questions || Wishes?
@mikagrmlmika @ github
michael-prokop.at/blog/