BillionPhotos.com - stock.adobe.

Installation von und erste Schritte in Capistrano

Capistrano gehört zu den bekanntesten Open-Source-Lösungen für Bereitstellung, Konfigurationsmanagement und Automatisierung im Rechenzentrum. Wir zeigen die ersten Schritte.

Mit Capistrano lassen sich komplexe Serverstrukturen bereitstellen und automatisiert konfigurieren. Capistrano setzt dabei vor allem auf SSH, um über das Netzwerk Aufgaben zu automatisieren. Dazu gehört die Softwareinstallation, das Ausrollen von Konfigurationen auf Servern und die Serverüberwachung.

Die Konfigurationsdateien von Capistrano verwenden die Syntax der Programmiersprache Ruby und auch Capistrano selbst ist in Ruby geschrieben Es schadet also nicht, wenn Nutzer sich mit dieser Sprache auskennen. Ein großer Vorteil von Capistrano ist die einfache Skalierbarkeit. Neben Ruby-on-Rails-Anwendungen können Nutzer außerdem Java- und PHP-Anwendungen bereitstellen. Capistrano ist ein Framework, mit dem man Skripte zur Bereitstellung von Anwendungen oder zu Konfigurationsänderungen erstellen kann. Diese Skripte lassen sich dann direkt in ein passendes Projekt integrieren.

Generell nutzen vor allem Entwickler Capistrano, weil sie damit Projekte schnell auf die Server bringen können. Viele Netzwerke verbinden deshalb Capistrano mit Git. Zusammen können Sie mit den beiden Lösungen Anwendungen aus dem Quellcode erstellen und automatisiert verteilen. Um optimal mit Capistrano zu arbeiten, sollten Sie auf Ruby-Werkzeuge setzen.

Für das Verteilen von Ruby-on-Rails-Anwendungen mit Capistrano kommen Capfiles zum Einsatz. Diese teilen Capistrano mit, wie Anwendungen auf den Zielservern bereitgestellt werden sollen. Das Terminal-Tool Cap, das Sie zusammen mit den Capistrano-Komponenten installieren, dient zum Erstellen dieser Dateien.

Capistrano auf Ubuntu installieren

Sie installieren Capistrano auf Servern mit Ubuntu über den Befehl sudo apt install capistrano. Es schadet nicht, vorher mit sudo apt update und sudo apt upgrade eine Aktualisierung durchzuführen. Damit stellen Sie sicher, dass der Server und die Pakete aktuell sind und Sie sicher die neueste Version von Capistrano bekommen. Die Installation der notwendigen Pakete ist dann in wenigen Sekunden abgeschlossen.

Nun steht auf dem Server das Tool Cap zur Verfügung. Mit diesem können Sie Capistrano-Projekte durch das Erstellen von Capfiles bereitstellen, mit denen Sie die Konfiguration Ihrer Anwendungen steuern. Dazu verbindet sich Capistrano per SSH (Secure Shell) mit den einzelnen Computern und stellt die Anwendung oder das Konfigurationsskript automatisch so zur Verfügung, wie es für die angebundenen Computern jeweils notwendig ist. Das kann beispielsweise so aussehen:

task :restart_sidekiq do

  on roles(:worker) do

    execute :service, "sidekiq restart"

  end

end

after "deploy:published", "restart_sidekiq"

In diesem Beispiel handelt es sich um sogenannte Rake Tasks. Diese werden vor allem in Ruby genutzt, um Konfigurationen vorzunehmen. Es gibt aber auch andere Möglichkeiten zur Automatisierung.

Capistrano arbeitet beim Einsatz von Ruby mit Gem. Wenn Sie Projekte verteilen, können Sie Capistrano in die Gemfiles mit integrieren, zum Beispiel mit:

gem 'capistrano', '~> 3.14.1'

gem 'capistrano-rails', '~> 1.1.0'

gem 'capistrano-bundler'

gem 'capistrano-rbenv', "~> 2.0"

gem 'unicorn'

Anschließend können Sie mit bundle install Capistrano in das Projekt integrieren. Für eine Aktualisierung nutzen Sie bundle update capistrano und führen anschließend die Aktion mit bundle exec cap install durch. Nun haben Sie eine Verzeichnis-Struktur erschaffen, über welche Sie Capistrano bereitstellen können.

Cap hat im Anschluss die Aufgabe, das Capfile und die Konfigurationsdatei für Capistrano zu erstellen, damit das entsprechende Projekt verteilt werden kann. Die Konfigurationsdatei befindet sich im Verzeichnis config des Projekts.

SSH-Verbindungen zwischen Capistrano und Clients sicherstellen

Um Anwendungen zu verteilen oder die Konfiguration von Servern zu automatisieren, benötigen Sie SSH. Vor der Bereitstellung von Anwendungen oder der Automatisierung von Konfigurationen sollten Sie überprüfen, ob zwischen dem Capistrano-Server und den angebundenen Geräten SSH-Verbindungen möglich sind. Idealerweise arbeiten Sie bei der Authentifizierung mit Keys.

Für die Bereitstellung von Anwendungen oder zur Automatisierung von Serverkonfigurationen gibt es in Capistrano das SSH-Doctor-Plug-in.

Wenn die Bereitstellung von Anwendungen über Cap nicht funktioniert, liegt das häufig an Problemen mit den SSH-Keys. So kann es leicht passieren, dass bei einer Aktualisierung des Betriebssystems die Keys überschrieben werden und nicht mehr funktionieren.

Will sich Capistrano dann mit dem Server verbinden, schlägt die SSH-Verbindung fehl. Haben Sie den Verdacht, dass genau das in Ihrer Konfiguration passiert ist, können Sie die Keys, die der SSH-Agent nutzt mit ssh-add -A auslesen.

Capistrano und Windows

Capistrano kann grundsätzlich auch mit macOS und Windows arbeiten, wenn es darum geht Anwendungen oder Konfigurationen zu verteilen. Wenn Sie einen Windows-Clienten anbinden möchten, können Sie das ebenfalls über SSH tun, zum Beispiel mit dem internen SSH-Server von Windows oder mit OpenSSH.

Um Capistrano in Windows-Netzwerken zu verwenden und auf Windows zu installieren, benötigen Sie Cygwin, ein Open Source Tool, mit dem es einfacher ist, auf Windows angepasste Unix-basierte Anwendungen auszuführen. Wichtig sind hier die Pakete curl, git, nano, openssh, openssl, ruby, unzip, util-linux, vim, wget. Außerdem sollten Sie RubyGems, ein Paketmanagement-Framework für Ruby, herunterladen und installieren. Im Terminal können Sie dann Capistrano und die notwendigen Pakete mit den folgenden Befehlen installieren:

ruby setup.rb install

gem update -system

gem install capistrano

gem install capistrano-ext

gem install railsless-deploy

Möchten Sie nicht mit Cygwin arbeiten, ist der Einsatz eines Windows-Subsystem for Linux eine weitere Option. Wenn im Netzwerk eine Virtualisierungslösung zum Einsatz kommt, ist es sicherlich sinnvoller, eine virtuelle Maschine zu installieren, in der Ubuntu, Debian oder Red Hat laufen, um Capistrano im Netzwerk zu nutzen.

Erfahren Sie mehr über Data-Center-Betrieb