(R)?ex        Vereinfachtes Deployment mit RexVortrag auf dem Linuxtag 2012Daniel Bäurerinovex GmbHSystems Engineer       ...
(R)?ex        Vereinfachtes Deployment mit RexWas ist (R)?exWie funktioniert (R)?exWelche Funktionen bietet (R)?exWas will...
(R)?ex       Vereinfachtes Deployment mit RexWas ist (R)?ex             Wir nutzen Technologien, um unsere Kunden glücklic...
Was ist (R)?ex            HW Bestellung           Einbau            OS-Deploy                                  Setup Serve...
Was ist (R)?ex                                  Setup Server        App-Deploy       Ziel: Neue Server sollen so schnell w...
Was ist (R)?ex           Mit (R)?ex können alle Server von einem zentralen Punkt                     aus, über den komplet...
(R)?ex        Vereinfachtes Deployment mit RexWie funktioniert (R)?ex             Wir nutzen Technologien, um unsere Kunde...
Wie funktioniert (R)?ex           ●   Es gibt ein Rexfile           ●   Ähnlich wie ein Makefile           ●   Ein normale...
Wie funktioniert (R)?ex    for s in $(grep ^backend ${HOME}/server.lst); do           ssh root@${s} “useradd -u 1500 -d /v...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
Wie funktioniert (R)?ex           set user => "root";           set group => www => "www[01..15]";           task "prepare...
(R)?ex       Vereinfachtes Deployment mit RexWelche Funktionen bietet (R)?ex            Wir nutzen Technologien, um unsere...
Welche Funktionen bietet (R)?ex             Filesystem Operationen             if( is_file("/etc/motd") ) {               ...
Welche Funktionen bietet (R)?ex             Datei Operationen             file "/path/on/the/remote/machine",             ...
Welche Funktionen bietet (R)?ex             User/Gruppen-Management             create_group „appuser“, {                 ...
Welche Funktionen bietet (R)?ex             Paket-Management             update_package_db;             install package =>...
Welche Funktionen bietet (R)?ex             Process/Service-Management             killall "apache2";             service ...
Welche Funktionen bietet (R)?ex             Inject             template_file "inject.conf";             template_search_fo...
Welche Funktionen bietet (R)?ex             Deploy             deploy_to "/var/deploy";             document_root "/var/ww...
Welche Funktionen bietet (R)?ex             Templating – bereits integrierete Variablen             <%= hostname %>       ...
Welche Funktionen bietet (R)?ex             ●   Cron             ●   Iptables             ●   Sysctl             ●   Parti...
(R)?ex       Vereinfachtes Deployment mit RexWas will (R)?ex erreichen             Wir nutzen Technologien, um unsere Kund...
Was will (R)?ex erreichen?             OPS             DEV26.07.12
Was will (R)?ex erreichen?                      OPS    DEV26.07.12
(R)?ex       Vereinfachtes Deployment mit RexPraktische Beispiele und Deployment einer Entwicklungsplatform mit (R)?ex    ...
Praktische Beispiele und Deployment einerEntwicklungsumgebung mit (R)?ex               ●   Beispiele aus dem Admin-Alltag ...
(R)?ex       Vereinfachtes Deployment mit Rex●    Mehr Infos unter http://rexify.org●    Für CentOS, Fedora, Debian, Ubunt...
Vielen Dank für Ihre Aufmerksamkeit!inovex GmbHPforzheim                München                    KölnKarlsruher Straße 7...
Upcoming SlideShare
Loading in...5
×

Rex Linuxtag 2012

1,072

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,072
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Rex Linuxtag 2012"

  1. 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. 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. 3. (R)?ex Vereinfachtes Deployment mit RexWas ist (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  4. 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. 5. Was ist (R)?ex Setup Server App-Deploy Ziel: Neue Server sollen so schnell wie möglich einsatzbereit sein!26.07.12
  6. 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. 7. (R)?ex Vereinfachtes Deployment mit RexWie funktioniert (R)?ex Wir nutzen Technologien, um unsere Kunden glücklich zu machen. Und uns selbst.
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 26. Welche Funktionen bietet (R)?ex ● Cron ● Iptables ● Sysctl ● Partitionierung (Parted) ● LVM ● Virtualisierung ● und vieles mehr!26.07.12
  27. 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. 28. Was will (R)?ex erreichen? OPS DEV26.07.12
  29. 29. Was will (R)?ex erreichen? OPS DEV26.07.12
  30. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×