Rex Linuxtag 2012
 

Like this? Share it with your network

Share

Rex Linuxtag 2012

on

  • 1,119 views

 

Statistics

Views

Total Views
1,119
Views on SlideShare
1,119
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Rex Linuxtag 2012 Presentation Transcript

  • 1. (R)?ex Vereinfachtes Deployment mit RexVortrag auf dem Linuxtag 2012Daniel Bäurerinovex GmbHSystems Engineer Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 2. (R)?ex Vereinfachtes Deployment mit RexWas ist (R)?exWie funktioniert (R)?exWelche Funktionen bietet (R)?exWas will (R)?ex erreichenPraktische Beispiele und Deployment einer Entwicklungsplatform mit (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 3. (R)?ex Vereinfachtes Deployment mit RexWas ist (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 4. Was ist (R)?ex HW Bestellung Einbau OS-Deploy Setup Server App-Deploy Ziel: Neue Server sollen so schnell wie möglich einsatzbereit sein!26.07.12
  • 5. Was ist (R)?ex Setup Server App-Deploy Ziel: Neue Server sollen so schnell wie möglich einsatzbereit sein!26.07.12
  • 6. Was ist (R)?ex Mit (R)?ex können alle Server von einem zentralen Punkt aus, über den kompletten Prozess des Konfigurationsmanagement und Applikations-Deployment, verwaltet werden. A simple framework to simplify systemadministration26.07.12
  • 7. (R)?ex Vereinfachtes Deployment mit RexWie funktioniert (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 8. Wie funktioniert (R)?ex ● Es gibt ein Rexfile ● Ähnlich wie ein Makefile ● Ein normales Perlscript ● Kann auch als Library in eigenen Perlscripts verwendet werden26.07.12
  • 9. Wie funktioniert (R)?ex for s in $(grep ^backend ${HOME}/server.lst); do ssh root@${s} “useradd -u 1500 -d /var/www/app -g appuser -m appuser“ ssh root@${s} “apt-get update && apt-get install apache2“ sed s/@keepalive@/On/ templates/apache2.conf | ssh root@${s} “cat > /etc/apache2/apache2.conf“ done26.07.12
  • 10. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 11. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 12. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 13. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 14. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 15. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 16. Wie funktioniert (R)?ex set user => "root"; set group => www => "www[01..15]"; task "prepare", group => "www", sub { create_user "appuser", home => "/var/www/app", uid => 1500, groups => [qw/appuser/]; update_package_db; install "apache2"; file "/etc/apache2/apache2.conf", content => template("templates/apache2.conf", keepalive => "On", ), on_change => sub { service apache2 => "restart"; }; };26.07.12
  • 17. (R)?ex Vereinfachtes Deployment mit RexWelche Funktionen bietet (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 18. Welche Funktionen bietet (R)?ex Filesystem Operationen if( is_file("/etc/motd") ) { rm "/etc/motd"; } chown "root", "/etc" recursive => 1; chgrp "root", "/etc", recursive => 1; chmod 644, "/etc/passwd"; if( !is_dir("/var/www/app") ) { mkdir "/var/www/app", owner => "appuser", mode => 755; }26.07.12
  • 19. Welche Funktionen bietet (R)?ex Datei Operationen file "/path/on/the/remote/machine", source => "/path/on/local/machine", owner => "root", group => "root", mode => 400, on_change => sub { say "File was changed."; }; delete_lines_matching "/var/log/auth.log", matching => qr{Failed};26.07.12
  • 20. Welche Funktionen bietet (R)?ex User/Gruppen-Management create_group „appuser“, { gid => 1500, system => 1, }; create_user "appuser", uid => 1500, home => /var/www/app, comment => App-User, expire => 2012-05-23, groups => [appuser, www, […] ], password => foobar, system => 1, ssh_key => "ssh-rsa AAAAB3NzaC1yc2EAADABAAABAQCh.."; };26.07.12
  • 21. Welche Funktionen bietet (R)?ex Paket-Management update_package_db; install package => [ "perl", "apache2", "tomcat6", "vim“, "sudo“, "openjdk-7-jre“ ]; remove package => "vim-tiny";26.07.12
  • 22. Welche Funktionen bietet (R)?ex Process/Service-Management killall "apache2"; service apache2 => "ensure", "started"; service apache2 => "restart"; if( service apache2 => "status" ) { say "Apache2 is running"; } else { say "Apache2 is not running"; }26.07.12
  • 23. Welche Funktionen bietet (R)?ex Inject template_file "inject.conf"; template_search_for "*.properties"; inject "myapp.tar.gz", pre_pack_hook => sub { run "BUNDLE_PATH=vendor/bundle bundle install"; }, post_pack_hook => { say "Post Pack Hook"; }; inject "myapp.war";26.07.12
  • 24. Welche Funktionen bietet (R)?ex Deploy deploy_to "/var/deploy"; document_root "/var/www"; deploy "myapp.tar.gz" context_path "/myapp"; deploy "myapp.war", username => "admin", password => "admin-password", port => 8080, manager_url => "/manager";26.07.12
  • 25. Welche Funktionen bietet (R)?ex Templating – bereits integrierete Variablen <%= hostname %> <%= domain %> <%= eth0_ip %> <%= eth0_mac %> <%= … %> Templating – eigene Variablen <%= myvariable1 %> template("templates/apache2.conf", myvariable1 => "defined",)26.07.12
  • 26. Welche Funktionen bietet (R)?ex ● Cron ● Iptables ● Sysctl ● Partitionierung (Parted) ● LVM ● Virtualisierung ● und vieles mehr!26.07.12
  • 27. (R)?ex Vereinfachtes Deployment mit RexWas will (R)?ex erreichen Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 28. Was will (R)?ex erreichen? OPS DEV26.07.12
  • 29. Was will (R)?ex erreichen? OPS DEV26.07.12
  • 30. (R)?ex Vereinfachtes Deployment mit RexPraktische Beispiele und Deployment einer Entwicklungsplatform mit (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 31. Praktische Beispiele und Deployment einerEntwicklungsumgebung mit (R)?ex ● Beispiele aus dem Admin-Alltag ● Beispiel eines Server-Setup ● Bereitstellen einer Entwicklungsumgebung ● App-Deployment mit (R)?ex26.07.12
  • 32. (R)?ex Vereinfachtes Deployment mit Rex● Mehr Infos unter http://rexify.org● Für CentOS, Fedora, Debian, Ubuntu, Gentoo, Mageia, OpenSuSE, CPAN Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  • 33. Vielen Dank für Ihre Aufmerksamkeit!inovex GmbHPforzheim München KölnKarlsruher Straße 71 Valentin-Linhof-Straße 2 Schanzenstraße 6-20D-75179 Pforzheim D-81829 München D-51063 Köln 26.07.12