Bereitstellen von Deis mit Rigger auf DigitalOcean

Ein Artikel von http://deis.io [Deis]

Einführung

Deis ist eine private Open Source-Plattform als Service (PaaS), die die Bereitstellung und Verwaltung Ihrer Anwendungen auf Ihren eigenen Servern vereinfacht. Durch den Einsatz von Technologien wie Docker und CoreOS bietet Deis einen Workflow und Skalierungsfunktionen, die denen von Heroku bei einem Hosting-Anbieter Ihrer Wahl ähnlich sind. Deis unterstützt Anwendungen, die in einem Docker-Container ausgeführt werden können, und Deis kann auf jeder Plattform ausgeführt werden, die CoreOS unterstützt.

Dieser Leitfaden führt Sie mit dem neuen Tool Rigger des Deis-Projekts durch den neuen und verbesserten Deis-Bereitstellungsprozess.

Vorschau

Wenn Sie nicht viel Zeit haben, zeigt diese beschleunigte terminal recording (nur etwa eine Minute lang!), Was wir im Rest dieses Artikels vorhaben:

asciicast

Voraussetzungen

Rigger ist für das eigene Abhängigkeitsmanagement ausgelegt, aber Sie müssen einige Dinge einrichten, bevor Sie einen Deis-Cluster damit bereitstellen können. Um diesem Leitfaden zu Hause folgen zu können, benötigen Sie:

Alle Befehle in diesem Tutorial können auf einem lokalen Mac oder einer Linux-Workstation ausgeführt werden (OS X> = 10.10 und Debian / Ubuntu wurden getestet). Sie können auch auf einem Droplet ausgeführt werden, dies ist jedoch nicht erforderlich.

Die Dienstprogramme "+ zip ", " make " und " git +" müssen auf jeder Workstation installiert werden, die Sie zur Bereitstellung eines Deis-Clusters mit Rigger verwenden.

Wenn Sie beispielsweise ein Ubuntu-System verwenden, installieren Sie diese mit dem folgenden Befehl:

sudo apt-get update
sudo apt-get install zip make git

Das Hilfsprogramm "+ git " wird in diesem Artikel zum Herunterladen von Rigger und einer Beispielanwendung verwendet. Die Dienstprogramme ` zip ` und ` make +` werden vom Rigger-Bereitstellungsskript verwendet.

Wenn Sie mit Mac OS X arbeiten, müssen Sie auch der Xcode-Lizenzvereinbarung zustimmen, um git verwenden zu können:

sudo xcodebuild -license

Schritt 1 - Rigger installieren

Um Rigger zu installieren, benutze zuerst "+ git +", um es herunterzuladen:

git clone https://github.com/deis/rigger.git

Wechseln Sie in das erstellte Verzeichnis:

cd rigger

Führen Sie dann den folgenden Befehl aus:

./rigger

Wenn es zum ersten Mal ausgeführt wird, sehen Sie Folgendes:

OutputDownloading rerun from GitHub...

Am Ende der Ausgabe sehen Sie eine Liste der verfügbaren Befehle:

OutputAvailable commands in module, "rigger":
checkout: "checkout the Deis repo with version: $VERSION into directory: $DEIS_ROOT"
configure: "initialize a rigger varsfile to use with future commands"
  [ --advanced]: "configure all the nitty gritty details of the infrastructure and Deis deployment"
  [ --provider <>]: "which cloud provider to use to provision a Deis cluster"
  [ --version <>]: "choose what version of Deis to deploy"
create-registry: "Create a local dev registry"
deploy: "Install and Deploy Deis"
destroy: "destroy all infrastructure created by the provision step"
provision: "provision new infrastructure and deploy Deis to it"
  [ --cleanup]: "destroy cluster after action"
setup-clients: "download and stage deisctl and deis clients for your own use"
shellinit: "show the current sourceable environment variables (useful for eval-ing)"
  [ --file <>]: "use a specific file"
shell-reset: "an eval-able output that unsets variables that have been injected by rigger"
  [ --file <>]: "use a specific file"
test: "run a test suite on the provisioned Deis cluster"
  [ --type <smoke>]: "provide a type of test to run"
upgrade: "Tests upgrade path for Deis"
  [ --to <master>]: "Define version of Deis to upgrade to"
  [ --cleanup]: "destroy cluster after action"
   --upgrade-style <graceful>: "choose the style of upgrade you'd like to perform"

Schritt 2 - Konfigurieren der Bereitstellung

Um die Bereitstellung von Deis so zu konfigurieren, dass DigitalOcean als Anbieter und eine bestimmte Version von Deis verwendet wird, müssen wir nur Folgendes aufrufen:

./rigger configure --provider "digitalocean" --version "1.12.0"

Rigger wird Ihnen dann ein paar Fragen stellen. Es wird alles so aussehen:

Output-> What DigitalOcean token should I use? DO_TOKEN (no default)

You chose: ******

-> Which private SSH key should be used? SSH_PRIVATE_KEY_FILE [ /Users/sgoings/.ssh/id_dsa ]
1) /Users/sgoings/.ssh/id_dsa
2) ...
#?
You chose: 1) /Users/sgoings/.ssh/id_dsa

... output snipped ...

Enter passphrase for /Users/sgoings/.ssh/id_dsa:

Rigger has been configured on this system using ${HOME}/.rigger//vars
To use the configuration outside of rigger, you can run:

 source "${HOME}/.rigger//vars"

Du bist fertig mit dem schwierigen Teil!

Schritt 3 - Profit!

Oder genauer: Führen Sie "+ rigger +" aus, um die Infrastruktur auf DigitalOcean bereitzustellen, und stellen Sie dann Deis!

Alles was wir tun müssen, ist auszuführen:

./rigger provision

Der Deis-Bereitstellungsprozess mit Rigger auf DigitalOcean dauert ungefähr 15 Minuten und läuft folgendermaßen ab:

  1. https://terraform.io [Terraform] wird automatisch heruntergeladen und in + $ {HOME} /. rigger + installiert, um von Rigger verwendet zu werden

  2. Deis Clients (+ deis + und + deisctl +) werden in + $ {HOME} /. Rigger // bins + heruntergeladen

  3. https://terraform.io [Terraform] wird verwendet, um 3 CoreOS Droplets in DigitalOcean bereitzustellen

  4. + DEISCTL_TUNNEL + wird ermittelt, indem eines der neu bereitgestellten DigitalOcean Droplets untersucht wird

  5. http://xip.io [xip.io] wird verwendet, um einen einfachen DNS-Einstiegspunkt für den Cluster einzurichten

  6. + deisctl install platform + wird ausgeführt

  7. + deisctl start platform + wird ausgeführt

Schritt 4 - Spielzeit!

Nachdem Sie Ihren Deis-Cluster mit Rigger erstellt haben, sollten Sie eine App bereitstellen!

Kehren Sie zunächst zu einem freien Verzeichnisbereich zurück:

cd ../

Als nächstes holen Sie sich eine Beispiel-App aus dem Deis-Projekt:

git clone https://github.com/deis/example-nodejs-express.git

Wechseln Sie in das neu erstellte Verzeichnis:

cd example-nodejs-express

Laden Sie alle + rigger + Umgebungsvariablen in diese Shell:

source "${HOME}/.rigger//vars"

Registrieren Sie dann ein Administratorkonto für diesen Deis-Cluster:

deis auth:register http://deis.${DEIS_TEST_DOMAIN}

Sie werden aufgefordert, einige Informationen zum Erstellen des Kontos einzugeben:

Outputusername:
password:
password (confirm):
email:
Registered
Logged in as

Fügen Sie Ihren öffentlichen Schlüssel zum Deis-Cluster hinzu:

deis keys:add

Sie werden folgendes sehen:

OutputFound the following SSH public keys:
1) deiskey.pub deiskey
2) id_dsa.pub sgoings
0) Enter path to pubfile (or use keys:add <key_path>)
Which would you like to use with Deis?

Sie sollten den öffentlichen Schlüssel auswählen, der mit dem privaten Schlüssel übereinstimmt, den Sie im Schritt "+ Rigger konfigurieren" ausgewählt haben.

Fügen Sie eine Git-Fernbedienung hinzu, um auf den Deis-Cluster zu zeigen:

deis apps:create

Sie werden folgendes sehen:

OutputCreating Application... done, created
Git remote deis added
remote available at ssh://git@deis.:2222/.git

Jetzt drück es!

git push deis master

Dies kann eine Weile dauern. Am Ende der Ausgabe sollte möglicherweise Folgendes angezeigt werden:

Output-----> Launching...
      done, :v2 deployed to Deis

      http://

      To learn more, use `deis help` or visit http://deis.io

Laden Sie diese URL in Ihren Browser! (Die App ist ziemlich einfach, sie druckt nur aus: "Powered by Deis")

Schritt 5 - Alles niederwerfen!

Wenn Sie ein bisschen mit Ihrem neuen Deis-Cluster herumgespielt haben, ist es wahrscheinlich eine gute Idee, alles abzureißen, oder? Das ist einfach.

Gehe zurück zum + rigger + Verzeichnis:

cd ../rigger

Dann zerstöre es:

./rigger destroy

Fazit

In diesem Handbuch konnten Sie sehen, wohin das Deis-Team steuert, um Entwicklern, Betreibern und Open-Source-Mitarbeitern das Leben zu erleichtern. Dank der erfolgreichen Kombination von https://terraform.io [Terraform] unter der Haube und dem blitzschnellen DigitalOcean als Infrastrukturanbieter ist die Bereitstellung eines http://deis.io [Deis] -Clusters mit Rigger jetzt ein Kinderspiel.