[PYTHON] Ich habe ein nützliches Tool für Digital Ocean erstellt

Einführung

Ich habe ein DigitalOcean-Verwaltungstool (dioc) erstellt und möchte es daher vorstellen. (Bitte auf eigenes Risiko verwenden.) Die Operation verwendet Docker und Python 3.5 unter Ubuntu. Für Windows [Verwendung von Docker mit Ubuntu](http://qiita.com/Tsutomu-KKE@github/items/29414e2d4f30b2bc94ae#ubuntu%E3%82%92%E5%85%A5%E3% 82% 8C% E3% 81% A6docker% E3% 82% 92% E4% BD% BF% E3% 81% 86% E6% 96% B9% E6% B3% 95), VirtualBox, Ubuntu14, Docker [ ^ 3] Bitte installieren. Wenn Sie Docker verwenden können, können Sie sofort mit dem Docker-Image dioc-python-3.5 beginnen.

[^ 3]: Unter Linux "wget -qO- https://get.docker.com/ | sh"

1.png

Terminologie

  • DigitalOcean: AWS EC2 Cloud-Dienste wie .com / jp / ec2 /). --Droplet: Instanz des virtuellen Betriebssystems. -Snapshot: Ein gespeicherter Status von Droplet. Sie können ein Droplet basierend auf einem Snapshot erstellen.
  • Bild: Die Quelle des Tropfens. Sie können zwischen der offiziellen und der privaten Version wählen, die von Snapshot erstellt wurde. Einige der offiziellen sind nur für das Betriebssystem bestimmt, andere enthalten die App [^ 1](siehe unten).
  • Abrechnung: 5 \ $, 10 \ $, 20 \ $, 40 \ $, 80 \ $, 160 \ $, 320 \ $, 480 \ $, 640 \ $ pro Monat, Speicherpreis Es ist proportional. Wenn Sie ein Tröpfchen erstellen, werden Sie belastet, auch wenn es gestoppt ist (Ausschalten), bis es zerstört wird (Zerstören). Um unnötige Gebühren zu vermeiden, können Sie Droplet stoppen, einen Snapshot aus Droplet erstellen und Droplet verwerfen. Es ist jetzt kostenlos, einen Schnappschuss zu erstellen, aber er scheint in Zukunft in Rechnung gestellt zu werden. Darüber hinaus werden Ihnen auch dann Gebühren berechnet, wenn die übertragene Datenmenge das Limit überschreitet.
2.png

[^ 1]: App von DigitalOcean

Warum Digital Ocean?

--Billig. Es gibt ein Zahlungslimit. Ab 5 US-Dollar im Monat.

  • früh. Beginnen Sie innerhalb von 1 Minute. Alle SSD.
  • Einfach. Einfacher Verwaltungsbildschirm.
  • Viele Benutzer. ――Jetzt mit einem 10 $ Privileg! ??

Nachteile von DigitalOcean

  • Es gibt keine Region Tokio. Wählen Sie Singapur.
  • Im Vergleich zu AWS verfügt es nicht über die folgenden Funktionen, sodass es in großem Umfang einige Zeit dauern wird.
  • Reserved Instance
  • Marketplace
  • AvailabilityZone
  • SecurityGroup
  • ElasticIP
  • ELB
  • VPC

Referenz: AWS-Instanz zu teuer Warota. Wenn Sie danach suchen, ist es billig und lecker. Zusammenfassung des digitalen Ozeans, die ich vor der Verwendung wissen wollte

Vorteile der Verwendung von Docker mit DigitalOcean

  • Im Vergleich zur Verteilung der Anwendung kann sie zuverlässiger betrieben werden.
  • Sie können eine Ausführungsumgebung lokal kostenlos erstellen.
  • Mit CoreOS ist die Bereitstellung einfach.
  • Es funktioniert leicht.

Referenz: offizielle Docker-Betriebssystemliste

Erstellung eines Digital Ocean-Kontos

Bitte beachten Sie, dass Sie von hier aus eine Kreditkarte oder PayPal benötigen und belastet werden.

  1. Öffnen Sie DigitalOcean [^ 2], geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein und klicken Sie auf [Konto erstellen].
  • Sie erhalten eine E-Mail, klicken auf den Link und geben die Methode wie Kreditkarte ein.

[^ 2]: Wenn Sie sich über diese URL registrieren, erhalten Sie Punkte für mich.

Verwenden wir DigitalOcean

Droplet-Anmeldekennwörter werden normalerweise per E-Mail an Sie gesendet. (Warten Sie einige Minuten.) Das Bestätigen des Kennworts per E-Mail und das anschließende Anmelden ist problematisch. Daher werde ich die Verwendung des SSH-Schlüssels erläutern.

SSH-Schlüsseleinstellungen

  • Führen Sie die folgenden Schritte unter Ubuntu aus. Denken Sie an die Passphrase, die Sie zum Anmelden benötigen.
  • ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
  • ssh-add
  • Führen Sie Folgendes aus und kopieren Sie den angezeigten Inhalt.
  • cat ~/.ssh/id_rsa.pub
  • Melden Sie sich bei DigitalOcean an und wählen Sie Einstellungen aus oben rechts. --Wählen Sie links [Sicherheit] und drücken Sie [SSH-Taste hinzufügen].
  • Setzen Sie [Name] auf [id_rsa], fügen Sie den kopierten Inhalt in [Öffentlicher SSH-Schlüssel] ein und drücken Sie [SSH-Schlüssel erstellen].

Versuchen Sie, das erste Tröpfchen zu erstellen

-Drücken Sie [Droplet erstellen].

  • Ändern Sie [Bild auswählen] in [CoreOS]. -Ändern Sie [Wählen Sie eine Größe] auf die günstigsten "$ 5 / Monat".
  • Ändern Sie [Wählen Sie eine Rechenzentrumsregion] in "Singapur", das näher an Japan liegt. -Überprüfen Sie "id_rsa" auf [Fügen Sie Ihre SSH-Schlüssel hinzu]. --Klicken Sie auf die Schaltfläche [Erstellen]. Die Abrechnung beginnt. ――Es beginnt in einigen zehn Sekunden. --Kopieren Sie [IP-Adresse].
  • Führen Sie die folgenden Schritte unter Ubuntu aus. Beim ersten Mal werden Sie nach Ihrer Passphrase gefragt. --ssh core @ [kopierte IP-Adresse]
  • Sie können die Spezifikationen anzeigen, indem Sie Folgendes ausführen.
  • cat /proc/cpuinfo
  • Bitte abmelden.
  • Zerstöre das auf dem Bildschirm Droplet erstellte Droplet. --Bitte beachten Sie, dass Sie für immer belastet werden, wenn Sie nicht zerstören.

Ausgabe des API-Tokens

Ein API-Token ist erforderlich, um Digital Ocean programmgesteuert zu betreiben. Bitte besorgen Sie sich den Token auf folgende Weise. Wenn Sie einen Token haben, können Sie Digital Ocean frei verwenden. Bitte verwalten Sie Ihre Token sorgfältig. Referenz: Eine Geschichte über einen Anfänger, der einen Fehler bei AWS gemacht hat und missbraucht wurde und 6.000 US-Dollar in Rechnung stellte, fast weinend.

  • Melden Sie sich bei DigitalOcean an und wählen Sie oben API aus. -Drücken Sie [Neues Token generieren]. -Geben Sie "apitok" in [Token Name] ein. Lassen Sie [Schreiben] aktiviert. --Drücken Sie [Token generieren]. --Bitte notieren Sie sich den auf dem Bildschirm angezeigten Token. Wenn Sie diesen Bildschirm schließen, wird dasselbe Token nicht mehr angezeigt.
  • Wenn Sie Ihr Token vergessen haben, löschen Sie es und erstellen Sie es neu.

Einführung der Diözese

Umgebung

  • Installieren Sie die Kryptografie. Gehen Sie für Anaconda wie folgt vor:
    • "conda install -y cryptography"
  • Wenn Sie lokal ausführen möchten --Bitte machen Sie "pip install dioc", während Sie Python3.5 verwenden. Fügen Sie es danach wie unten gezeigt zu ".bashrc" hinzu (nur einmal ist OK).
  • Wenn Sie in einem Docker-Container ausgeführt werden möchten
  • Fügen Sie lokal wie unten gezeigt ".bashrc" hinzu (nur einmal ist OK). Danach "docker run -it -v ~: / root tsutomu7 / dioc-python-3.5 "Bitte.

ubuntu


cat << eof >> .bashrc
export DIOC_TOKEN="Digital Ocean API Token"
export DIOC_DEFAULT_SSHKEY=id_rsa
export DIOC_DEFAULT_SIZE=512mb
export DIOC_DEFAULT_REGION=sgp1
if [ -x /usr/local/bin/dio -o -x /opt/conda/bin/dio ]; then
  eval "$(_DIO_COMPLETE=source dio)"
fi
eof
source ~/.bashrc

Bei Verwendung mit Bash

Für Bash-Operationen lautet der Befehl "dio". Sie können Bash-Vervollständigung verwenden. Der "Bildname" sollte beispielsweise "'89 9.17.0 (stabil) '" sein. Eine Liste von Bildern wird mit "dio list image" angezeigt.

ubuntu


#Ein Tröpfchen erstellen
dio create "Tröpfchenname" "Bildname"

#Droplet aus Snapshot erstellen
dio create "Tröpfchenname" "Schnappschussname"

#Befehlsausführung mit SSH
dio ssh "Tröpfchenname" "Befehl"

#Dateikopie
dio scp "Tröpfchenname:Dateibus" "Tröpfchenname:Dateibus"

#Bestätigung der IP-Adresse
dio ip "Tröpfchenname"

#Überprüfung der Tröpfchenliste
dio list

#Überprüfen Sie die andere Liste(Das Ziel ist Tröpfchen, image, private, ssh, size,Region kann ausgewählt werden)
dio list "Ziel"

#Tröpfchenentfernung
dio destroy "Tröpfchenname"

Beispiel für den Start eines Mongodb-Servers

ubuntu


dio create test
dio ssh test
mkdir mongo
docker run -d -p 27017:27017 -v ~/mongo:/data/db --name mongo mongo
# docker exec -it mongo mongo
exit
dio destroy test

Beispiel für den Start eines Webservers

Mit DigitalOcean können Sie den Server einfach starten. Unten läuft der GoTour-Server.

ubuntu


dio create test '' user_data='"#!/bin/bash\ndocker run -p 80:8080 tsutomu7/gotour"'
firefox `dio ip test`
# do something
dio destroy test

Bei Verwendung von Python 3.5

Es ist im Grunde ein Wrapper für python-digitalocean. Die Methode finden Sie hier. Sie können Droplet auch mit der Droplet-Methode starten. Der SSH-Client versucht es automatisch bis zu 6 Mal.

python


from dioc import *
#Ein Tröpfchen erstellen
d = Droplet('dgoc') #Erstellen Sie ein CoreOS-Droplet mit dem Namen dgoc

#Droplet aus Snapshot erstellen
d = Droplet('dgoc', 'test') #Erstellen Sie ein Droplet mit dem Namen dgoc aus einem Snapshot namens test

#Bestätigung der IP-Adresse
print(d.ip_address)

#Erstellen eines SSH-Clients
c = ssh_client(d)

#Befehlsausführung mit SSH
c.exec_command(Befehl)

#Tröpfchenentfernung
d.destroy()

das ist alles


Recommended Posts