
Ich bin relativ neu in den CD- und DevOps-Themen und versuche, automatische Bereitstellungen mit Capistrano einzurichten, was in meiner lokalen Add-hoc-Testumgebung gut funktioniert. Ich frage mich jedoch, wie man die Benutzer in der zukünftigen Zielumgebung idealerweise einrichten möchte.
Beispielsweise richtet das Ubuntu Tomcat-Installationsverfahren einen tomcat(6|7)-Benutzer ein, dem der Tomcat-Prozess gehört. Es ist jedoch nicht möglich, mit diesem Benutzer per SSH auf die Box zuzugreifen, und für Capistrano benötigen Sie einen Benutzer mit SSH-Zugriff, um alle Befehle ausführen zu können. Wie lösen die Leute dieses Problem normalerweise? Natürlich habe ich mir meine eigene Lösung überlegt, aber ich bin daran interessiert zu hören, ob es dafür eine bewährte Methode gibt.
Meine Zielumgebung wird letztlich von einer anderen Partei eingerichtet, aber ich habe hier Mitspracherecht und möchte deshalb wissen, was ich hier idealerweise möchte.
Antwort1
Es gibt verschiedene Methoden, dies zu tun, aber die beste ist die Einrichtung dersudoSystem, sodass der SSH-fähige Bereitstellungsbenutzer (den Sie einrichten müssen) bei Bedarf Tomcat oder Root imitieren kann, um Bereitstellungen durchzuführen. Die eigentlichen Codeverzeichnisse können Tomcat gehören oder dem Bereitstellungsbenutzer mit festgelegten Rechten, sodass Tomcat die Dateien verwenden kann.
desc "Restarts the tomcast service"
task restart_tomcat do
set :user, "deployuser"
run "sudo service tomcat restart", :roles => :tomcat_servers
end
Oder so ähnlich. Wenn sudo ein Passwort erfordert, ist Capistrano intelligent genug, Sie danach zu fragen.
Antwort2
Überprüfen Sie die offizielle Empfehlung des Pakets zur Einrichtung. Sehen Sie sich an, wie Ihre ausgewählte Distribution das Problem in ihrem Paket handhabt. Möglicherweise gibt es ein HOWTO für die Distribution oder das Paket. Suchen Sie danach. Seien Sie jedoch vorsichtig, wenn Sie lesen, wie dies in einer anderen Version gelöst wurde. Es kommt häufig vor, dass sich Konfiguration und Funktionen von einer Version zur nächsten radikal ändern (und andere unterstützende Pakete haben sich möglicherweise ebenfalls geändert).