Deploy Magento Shops mit
Capistrano
Roman Hutterer - 2015
CAPISTRANO - MAGENTO
ROMAN HUTTERER
● Selbstständiger Webentwickler
www.multibyte.at
● Senior Developer bei Cyberhouse
www.cyberhouse.at
● Mage...
WARUM EIN DEPLOYMENT TOOL?
● kein direkter Zugang (FTP, SSH, SFTP,...) nötig
● kein „vergessen Hochzuladen“
● keine Änderu...
WAS IST CAPISTRANO?
● ein Deployment – Tool
● geschrieben in Ruby
● Open Source
● eine Community Entwicklung
● einfach Erw...
VORTEILE CAPISTRANO?
● Schnelles Code Deployment (Komplett oder Teil)
● Prozess – Automatisierung (zb. Klone Projekt, Flus...
INSTALL CAPISTRANO
„apt“ managed Distro's:
● apt-get install ruby
● gem install capistrano
● apt-get install git (Client &...
CAPISTRANO EINRICHTEN
● deploy.rb einrichten
● set :application, "myMagentoShop"
● set :repo_url, "git@bitbucket.org:roman...
DEPLOYMENT KONFIGURATION
phpStorm → deploy.rb
The „Flow“
Alle direkt aufrufbaren Tasks mit cap -T
phpStorm → magento.rake
CAPISTRANO UND MAGENTO
Magento spezifische Tasks für Capistrano v3
STAGES EINRICHTEN
● Stages einrichten
● config/deploy/{mystage}.rb
● Rolle definieren
● SSH Zugang definieren
– sollte Sch...
NEUES PROJEKT
cap {stage} deploy:check
Capistrano verbindet sich zur Stage "development" und überprüft ob die Abhängigkeit...
NEUES PROJEKT
cap {stage} deploy
● Capistrano verbindet sich zur Stage
● Legt einen neuen releases/{timestamp} an
● Setzt ...
Struktur
Weitere Möglichkeiten...
● Magento installieren ?
● Update Scripts ?
● Datenbank ?
● Tests ?
● Revert ?
Magento autom. Installieren
cap {stage} project:install_magento
● führt install.php anhand der angegeben Parameter
/config...
Datenbank
cap {stage} project:import_db
● Lädt einen mySQL Dump hoch und importiert diesen.
UnitTests
cap {stage} project:run_tests
● Verbindet sich zur Stage und für phpunit aus
Rollback inkl. Datenbank
cap {stage} deploy:rollback
● deploy:starting
● deploy:started
●
deploy:reverting - revert server...
Danke
Nächste SlideShare
Wird geladen in …5
×

Deploy Magento Shops with Capistrano v3

2.379 Aufrufe

Veröffentlicht am

Folien vom Magento-Stammtisch in Wien am 24.03.2015 vom Roman Hutterer zum Thema
"Deploy Magento Shops with Capistrano v3"

Veröffentlicht in: Internet
0 Kommentare
4 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.379
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
111
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
4
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Deploy Magento Shops with Capistrano v3

  1. 1. Deploy Magento Shops mit Capistrano Roman Hutterer - 2015 CAPISTRANO - MAGENTO
  2. 2. ROMAN HUTTERER ● Selbstständiger Webentwickler www.multibyte.at ● Senior Developer bei Cyberhouse www.cyberhouse.at ● Magento Certified Developer ● Webentwickler seit 2005 ● Magento-Entwickler seit 2011 ● @roman204 ● http://github.com/roman204
  3. 3. WARUM EIN DEPLOYMENT TOOL? ● kein direkter Zugang (FTP, SSH, SFTP,...) nötig ● kein „vergessen Hochzuladen“ ● keine Änderungen am Server direkt ● schneller Rollback ● wiederkehrende Schritte können automatisiert werden ● clearCache, enableCompiler,... ● Automatisches Testen möglich ● meistens History ● ….
  4. 4. WAS IST CAPISTRANO? ● ein Deployment – Tool ● geschrieben in Ruby ● Open Source ● eine Community Entwicklung ● einfach Erweiterbar und/oder Überschreibbar ● ist Event gesteuert ● leicht zu debuggen ● ...
  5. 5. VORTEILE CAPISTRANO? ● Schnelles Code Deployment (Komplett oder Teil) ● Prozess – Automatisierung (zb. Klone Projekt, Flush Cache, DB Update) ● Mehrstufiges Deployment (dev, staging, live) ● Multiple Server Deployment ● Befehle auf Server ausführen ● Schnelles Rollback zu einer archivierten Version der Applikation ● Server Rollen abbilden (DB, Web, App,...) ● Tasks „before“ und „after“ Tasks auslösen ● Verzeichnisse und/oder Dateien zwischen Releases sharen ● ...
  6. 6. INSTALL CAPISTRANO „apt“ managed Distro's: ● apt-get install ruby ● gem install capistrano ● apt-get install git (Client & Server) Capistrano im Projekt initialisieren: ● cd projectPath ● cap install Magento Tasks hinzufügen ● https://github.com/roman204/capistran ● magento.rake nach lib/capistrano/tasks kopieren
  7. 7. CAPISTRANO EINRICHTEN ● deploy.rb einrichten ● set :application, "myMagentoShop" ● set :repo_url, "git@bitbucket.org:roman204/mage_test.git" ● set :keep_releases, 5 ● selbstdefinierte Tasks ● Magento-Core wird nicht über composer installiert: set :linked_dirs, ['var', 'media', 'sitemaps'] set :linked_files, ['app/etc/local.xml'] ● Magento-Core wird über composer im Verzeichnis „htdocs“ installiert: set :linked_dirs, ['htdocs/var', 'htdocs/media', 'htdocs/sitemaps'] set :linked_files, ['htdocs/app/etc/local.xml']
  8. 8. DEPLOYMENT KONFIGURATION phpStorm → deploy.rb The „Flow“ Alle direkt aufrufbaren Tasks mit cap -T phpStorm → magento.rake
  9. 9. CAPISTRANO UND MAGENTO Magento spezifische Tasks für Capistrano v3
  10. 10. STAGES EINRICHTEN ● Stages einrichten ● config/deploy/{mystage}.rb ● Rolle definieren ● SSH Zugang definieren – sollte Schlüssel basiert authentifiziert werden – sollte ein eigener User am Server sein
  11. 11. NEUES PROJEKT cap {stage} deploy:check Capistrano verbindet sich zur Stage "development" und überprüft ob die Abhängigkeiten für ein Deployment erfüllt sind. Überprüft wird : ● SSH - Zugang ● Schreibrechte der Verzeichnisse ● Installation der benötigten Libs (zb. git,…). ● + Legt Verzeichnisse „shared“ und „releases“ an.
  12. 12. NEUES PROJEKT cap {stage} deploy ● Capistrano verbindet sich zur Stage ● Legt einen neuen releases/{timestamp} an ● Setzt darin die symlinks für "shared dirs und shared files" ● Code Update ● Setzt den symlink 'current' auf den releases/{timestamp} ● Abschließende Tasks
  13. 13. Struktur
  14. 14. Weitere Möglichkeiten... ● Magento installieren ? ● Update Scripts ? ● Datenbank ? ● Tests ? ● Revert ?
  15. 15. Magento autom. Installieren cap {stage} project:install_magento ● führt install.php anhand der angegeben Parameter /config/stage/{stage}.rb aus php install.php -- --license_agreement_accepted "yes" -- locale "de_AT" ...
  16. 16. Datenbank cap {stage} project:import_db ● Lädt einen mySQL Dump hoch und importiert diesen.
  17. 17. UnitTests cap {stage} project:run_tests ● Verbindet sich zur Stage und für phpunit aus
  18. 18. Rollback inkl. Datenbank cap {stage} deploy:rollback ● deploy:starting ● deploy:started ● deploy:reverting - revert server(s) to previous release ● deploy:reverted - reverted hook ● deploy:publishing ● deploy:published ● deploy:finishing_rollback - finish the rollback, clean up everything ● deploy:finished
  19. 19. Danke

×