SlideShare ist ein Scribd-Unternehmen logo
1 von 19
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
● Magento Certified Developer
● Webentwickler seit 2005
● Magento-Entwickler seit 2011
● @roman204
● http://github.com/roman204
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
● ….
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
● ...
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
● ...
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
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']
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 Schlüssel basiert
authentifiziert werden
– sollte ein eigener
User am Server sein
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.
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
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/stage/{stage}.rb aus
php install.php -- --license_agreement_accepted "yes" -- locale "de_AT" ...
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(s) to previous release
●
deploy:reverted - reverted hook
●
deploy:publishing
● deploy:published
● deploy:finishing_rollback - finish the rollback, clean up everything
●
deploy:finished
Danke

Weitere ähnliche Inhalte

Was ist angesagt?

Deployment mit Webistrano
Deployment mit WebistranoDeployment mit Webistrano
Deployment mit Webistranodaniel.mattes
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhenDietrichRordorf
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!JanWeinschenker
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppetinovex GmbH
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang BarthNETWAYS
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsBild GmbH & Co. KG
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0Patrick Charrier
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?punkt.de GmbH
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)Marcus Schwemer
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit HudsonDr. Christian Betz
 

Was ist angesagt? (20)

Deployment mit Webistrano
Deployment mit WebistranoDeployment mit Webistrano
Deployment mit Webistrano
 
Deployment 2.0
Deployment 2.0Deployment 2.0
Deployment 2.0
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!
 
Nginx
NginxNginx
Nginx
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Entwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
 
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang BarthNagios Conference 2007 |  Pluginprogrammierung in Perl by Wolfgang Barth
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkins
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
 
TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Continuous Integration mit Hudson
Continuous Integration mit HudsonContinuous Integration mit Hudson
Continuous Integration mit Hudson
 

Ähnlich wie Deploy Magento Shops with Capistrano v3

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...Marc Müller
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtOPITZ CONSULTING Deutschland
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHFlorian Holzhauer
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...inovex GmbH
 
JAMstack / Static Site Generators
JAMstack / Static Site GeneratorsJAMstack / Static Site Generators
JAMstack / Static Site GeneratorsDietrichRordorf
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit MavenStefan Scheidt
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Joachim Baumann
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Managementinovex GmbH
 
JavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UXJavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UXKai Donato
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigerThomas Kratz
 

Ähnlich wie Deploy Magento Shops with Capistrano v3 (20)

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 
JAMstack / Static Site Generators
JAMstack / Static Site GeneratorsJAMstack / Static Site Generators
JAMstack / Static Site Generators
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
JavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UXJavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UX
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Openshift
OpenshiftOpenshift
Openshift
 
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
 

Deploy Magento Shops with Capistrano v3

  • 1. Deploy Magento Shops mit Capistrano Roman Hutterer - 2015 CAPISTRANO - MAGENTO
  • 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. 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. 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. 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. 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. 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. DEPLOYMENT KONFIGURATION phpStorm → deploy.rb The „Flow“ Alle direkt aufrufbaren Tasks mit cap -T phpStorm → magento.rake
  • 9. CAPISTRANO UND MAGENTO Magento spezifische Tasks für Capistrano v3
  • 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. 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. 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
  • 14. Weitere Möglichkeiten... ● Magento installieren ? ● Update Scripts ? ● Datenbank ? ● Tests ? ● Revert ?
  • 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. Datenbank cap {stage} project:import_db ● Lädt einen mySQL Dump hoch und importiert diesen.
  • 17. UnitTests cap {stage} project:run_tests ● Verbindet sich zur Stage und für phpunit aus
  • 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. Danke