Deploy Magento Shops with Capistrano v3

Roman Hutterer
Roman HuttererChief Executive Officer um CopeX GmbH
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
1 von 19

Recomendados

Vagrant - Einführung & Verwendung von
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungTilo Baller
517 views44 Folien
Einsteiger Workshop von
Einsteiger WorkshopEinsteiger Workshop
Einsteiger WorkshopFunThomas424242
622 views27 Folien
WP-CLI - Das Kommandozeilen Interface für Wordpress von
WP-CLI - Das Kommandozeilen Interface für WordpressWP-CLI - Das Kommandozeilen Interface für Wordpress
WP-CLI - Das Kommandozeilen Interface für Wordpressfrankstaude
2.1K views45 Folien
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant von
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantDeployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit VagrantChristoph Möller
2K views59 Folien
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core von
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
1.2K views35 Folien
Magento 2 Zertifizierung - Wissenswertes und ein paar Tipps von
Magento 2 Zertifizierung - Wissenswertes und ein paar TippsMagento 2 Zertifizierung - Wissenswertes und ein paar Tipps
Magento 2 Zertifizierung - Wissenswertes und ein paar TippsChristian Münch
1.1K views14 Folien

Más contenido relacionado

Was ist angesagt?

Deployment mit Webistrano von
Deployment mit WebistranoDeployment mit Webistrano
Deployment mit Webistranodaniel.mattes
2K views19 Folien
Deployment 2.0 von
Deployment 2.0Deployment 2.0
Deployment 2.0Daniel Andrisek
2.2K views16 Folien
Verteilte Anwendungen bei Azure mit Docker und Kubernetes von
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
1.4K views245 Folien
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen von
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
125 views23 Folien
Eine Stunde was mit Api First! von
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!JanWeinschenker
618 views39 Folien
Nginx von
NginxNginx
Nginxdorn&malag
2.2K views11 Folien

Was ist angesagt?(20)

Verteilte Anwendungen bei Azure mit Docker und Kubernetes von Gregor Biswanger
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Gregor Biswanger1.4K views
10 Stunden / 5 Massnahmen: Sicherheit einer Web App erhöhen von DietrichRordorf
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
DietrichRordorf125 views
Einführung in Puppet und Vagrant von s0enke
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
s0enke6.6K views
Entwicklungsumgebungen - Packer, Vagrant, Puppet von inovex GmbH
Entwicklungsumgebungen - Packer, Vagrant, PuppetEntwicklungsumgebungen - Packer, Vagrant, Puppet
Entwicklungsumgebungen - Packer, Vagrant, Puppet
inovex GmbH759 views
Nagios Conference 2007 | Pluginprogrammierung in Perl by Wolfgang Barth von NETWAYS
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
NETWAYS52 views
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core von Gregor Biswanger
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
Gregor Biswanger212 views
Deployment pipeline mit maven, chef und jenkins von Bild GmbH & Co. KG
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkins
Bild GmbH & Co. KG269 views
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s? von punkt.de GmbH
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 GmbH1.8K views
TYPO3 Performance (TYPO3camp München) von Marcus Schwemer
TYPO3 Performance (TYPO3camp München)TYPO3 Performance (TYPO3camp München)
TYPO3 Performance (TYPO3camp München)
Marcus Schwemer315 views

Similar a Deploy Magento Shops with Capistrano v3

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac... von
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
49 views29 Folien
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se... von
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
43 views28 Folien
Cloud Observability mit Loki, Prometheus, Tempo und Grafana von
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaQAware GmbH
219 views40 Folien
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH von
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
1.8K views64 Folien
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt von
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
1.9K views36 Folien
Automatisierung mit grunt von
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit gruntChristian Keuerleber
1.1K views40 Folien

Similar a Deploy Magento Shops with Capistrano v3(20)

TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac... von Marc Müller
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üller49 views
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se... von 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...
Marc Müller43 views
Cloud Observability mit Loki, Prometheus, Tempo und Grafana von QAware GmbH
Cloud Observability mit Loki, Prometheus, Tempo und GrafanaCloud Observability mit Loki, Prometheus, Tempo und Grafana
Cloud Observability mit Loki, Prometheus, Tempo und Grafana
QAware GmbH219 views
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH von agilemethoden
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
agilemethoden1.8K views
Entwicklung mit Chef und Vagrant - PHPUG HH von Florian Holzhauer
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
Florian Holzhauer1.3K views
Make Developers Fly: Principles for Platform Engineering von QAware GmbH
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
QAware GmbH58 views
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra... von inovex 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...
inovex GmbH800 views
Abläufe mit PHP und Phing automatisieren von Christian Münch
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch2K views
Gradle - Beginner's Workshop (german) von Joachim Baumann
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
Joachim Baumann6.1K views
Opensource Tools für das Data Center Management von inovex GmbH
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
inovex GmbH1.3K views
JavaScript-Erweiterungen für UI und UX von Kai Donato
JavaScript-Erweiterungen für UI und UXJavaScript-Erweiterungen für UI und UX
JavaScript-Erweiterungen für UI und UX
Kai Donato2.7K views
magnolia mit thymeleaf - ein agiler prozess-beschleuniger von Thomas Kratz
magnolia mit thymeleaf - ein agiler prozess-beschleunigermagnolia mit thymeleaf - ein agiler prozess-beschleuniger
magnolia mit thymeleaf - ein agiler prozess-beschleuniger
Thomas Kratz1.8K views
Docker und Kubernetes Patterns & Anti-Patterns von Josef Adersberger
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
Josef Adersberger682 views

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