[PYTHON] J'ai créé un outil utile pour Digital Ocean

Introduction

J'ai créé un outil de gestion DigitalOcean (dioc), je voudrais donc le présenter. (Utilisez à vos risques et périls.) L'opération utilise Docker et Python 3.5 sur Ubuntu. Pour Windows, [Comment utiliser Docker avec 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] Veuillez installer. Si vous pouvez utiliser Docker, vous pouvez commencer tout de suite avec l'image Docker dioc-python-3.5.

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

1.png

Terminologie

  • DigitalOcean: AWS EC2 Services cloud comme .com / jp / ec2 /). --Droplet: instance de système d'exploitation virtuel. -Snapshot: un état enregistré de Droplet. Vous pouvez créer un droplet basé sur un instantané. --Image: La source de Droplet. Vous pouvez choisir entre l'officiel et le privé créé par Snapshot. Certains des programmes officiels sont uniquement réservés au système d'exploitation et certains incluent l'application [^ 1](illustrée ci-dessous). --Facturation: 5 \ $, 10 \ $, 20 \ $, 40 \ $, 80 \ $, 160 \ $, 320 \ $, 480 \ $, 640 \ $ par mois, prix mémoire C'est proportionnel. Lorsque vous créez un Droplet, vous serez facturé même s'il est arrêté (Power Off) jusqu'à ce qu'il soit détruit (Destroy). Pour éviter des frais inutiles, vous pouvez arrêter Droplet, créer un instantané à partir de Droplet et supprimer Droplet. Il est gratuit de créer un instantané maintenant, mais il semble être facturé à l'avenir. De plus, vous serez facturé même si la quantité de données transférées dépasse la limite.
2.png

[^ 1]: application fournie par DigitalOcean

Pourquoi Digital Ocean?

--Pas cher. Il y a une limite de paiement. À partir de 5 $ par mois.

  • de bonne heure. Commencez dans 1 minute. Tous les SSD.
  • Facile. Écran de gestion simple.
  • De nombreux utilisateurs. ――Maintenant avec un privilège de 10 $! ??

Inconvénients de DigitalOcean

  • Il n'y a pas de région de Tokyo. Choisissez Singapour.
  • Par rapport à AWS, il n'a pas les fonctions suivantes, donc cela prendra du temps à grande échelle.
  • Reserved Instance
  • Marketplace
  • AvailabilityZone
  • SecurityGroup
  • ElasticIP
  • ELB
  • VPC

référence: Instance AWS Warota trop chère. Si vous le cherchez, il est bon marché et délicieux. Résumé de l'océan numérique que je voulais savoir avant d'utiliser

Avantages de l'utilisation de Docker avec DigitalOcean

  • Par rapport à la distribution de l'application, elle peut être exploitée de manière plus fiable.
  • Vous pouvez créer un environnement d'exécution localement sans frais.
  • Avec CoreOS, c'est facile à déployer.
  • Cela fonctionne légèrement.

Référence: Liste officielle des systèmes d'exploitation Docker

Création d'un compte Digital Ocean

Veuillez noter qu'à partir de là, vous aurez besoin d'une carte de crédit ou PayPal et vous serez débité.

  1. Ouvrez DigitalOcean [^ 2], entrez votre adresse e-mail et votre mot de passe, puis appuyez sur [Créer un compte].
  • Vous recevrez un e-mail, cliquez sur le lien et entrez la méthode telle que la carte de crédit.

[^ 2]: Si vous vous inscrivez depuis cette URL, vous obtiendrez des points pour moi.

Utilisons DigitalOcean

Les mots de passe de connexion Droplet vous sont généralement envoyés par e-mail. (Attendez quelques minutes) Confirmer le mot de passe par e-mail, puis se connecter est gênant, je vais donc vous expliquer comment utiliser la clé SSH.

Paramètres de la clé SSH

  • Exécutez ce qui suit sur Ubuntu. Souvenez-vous de la phrase secrète car vous en aurez besoin pour vous connecter.
  • ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
  • ssh-add
  • Exécutez ce qui suit et copiez le contenu affiché.
  • cat ~/.ssh/id_rsa.pub
  • Connectez-vous à DigitalOcean et sélectionnez Paramètres dans en haut à droite. --Sélectionnez [Security] sur la gauche et appuyez sur [Add SSH Key]. --Définissez [Nom] sur [id_rsa], collez le contenu copié dans [Clé SSH publique] et appuyez sur [Créer une clé SSH].

Essayez de créer le premier Droplet

-Appuyez sur [Create Droplet]. -Change [Choisissez une image] en [CoreOS]. -Change [Choisissez une taille] pour le moins cher "5 $ / mois". -Change [Choisissez une région de centre de données] en "Singapour", qui est plus proche du Japon. -Vérifiez "id_rsa" pour [Ajouter vos clés SSH]. --Cliquez sur le bouton [Créer]. La facturation commencera. ――Il démarrera dans quelques dizaines de secondes. --Copier [Adresse IP].

  • Exécutez ce qui suit sur Ubuntu. La première fois, votre phrase de passe vous sera demandée. --ssh core @ [adresse IP copiée]
  • Vous pouvez voir les spécifications en exécutant ce qui suit.
  • cat /proc/cpuinfo
  • Veuillez vous déconnecter. -Détruire le droplet créé sur l'écran Droplet.
  • Veuillez noter que si vous ne détruisez pas, vous serez facturé pour toujours.

Émission du jeton API

Un jeton API est requis pour faire fonctionner Digital Ocean par programmation. Veuillez obtenir le jeton par la méthode suivante. Si vous avez un jeton, vous pouvez utiliser Digital Ocean librement. Veuillez gérer vos jetons avec soin. Référence: Une histoire sur un débutant faisant une erreur sur AWS et ayant été abusé pour 6 000 $ et presque pleurant.

  • Connectez-vous à DigitalOcean et sélectionnez API en haut. -Appuyez sur [Générer un nouveau jeton]. -Entrez "apitok" dans [Token Name]. Laissez [Ecrire] coché. -Appuyez sur [Générer un jeton].
  • Veuillez noter le jeton affiché à l'écran. Si vous fermez cet écran, le même jeton ne sera plus affiché.
  • Si vous oubliez votre jeton, supprimez-le et recréez-le.

Introduction de Dioc

Environnement

--Installez la cryptographie. Pour Anaconda, procédez comme suit: - "conda install -y cryptography" --Si vous souhaitez exécuter localement

  • Veuillez faire "pip install dioc" tout en utilisant Python3.5. Après cela, ajoutez-le à ".bashrc" comme indiqué ci-dessous (une seule fois est OK). --Si vous souhaitez exécuter dans un conteneur Docker
  • Ajouter à ".bashrc" localement comme indiqué ci-dessous (une seule fois est OK). Après cela, "docker run -it -v ~: / root tsutomu7 / dioc-python-3.5 "S'il vous plaît.

ubuntu


cat << eof >> .bashrc
export DIOC_TOKEN="Jeton API Digital Ocean"
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

Lors de l'utilisation avec Bash

Pour les opérations Bash, la commande est "dio". Vous pouvez utiliser bash-completion. Le "nom de l'image" doit être, par exemple, "'89 9.17.0 (stable) '". Une liste d'images s'affiche avec "image de la liste dio".

ubuntu


#Créer une gouttelette
dio create "Nom de la gouttelette" "Nom de l'image"

#Créer une gouttelette à partir d'un instantané
dio create "Nom de la gouttelette" "Nom de l'instantané"

#Exécution de commande avec SSH
dio ssh "Nom de la gouttelette" "commander"

#Copie de fichier
dio scp "Nom de la gouttelette:Bus de fichiers" "Nom de la gouttelette:Bus de fichiers"

#Confirmation d'adresse IP
dio ip "Nom de la gouttelette"

#Vérification de la liste des gouttelettes
dio list

#Vérifier une autre liste(La cible est la gouttelette, image, private, ssh, size,la région peut être sélectionnée)
dio list "Cible"

#Élimination des gouttelettes
dio destroy "Nom de la gouttelette"

Exemple de démarrage du serveur Mongodb

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

Exemple de démarrage de serveur Web

Avec DigitalOcean, vous pouvez facilement démarrer le serveur. Ci-dessous, le serveur GoTour est en cours d'exécution.

ubuntu


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

Lors de l'utilisation à partir de Python 3.5

Il s'agit essentiellement d'un wrapper pour python-digitalocean, veuillez donc vous y référer pour la méthode. Vous pouvez également démarrer Droplet avec la méthode Droplet. Le client SSH réessaiera automatiquement jusqu'à 6 fois.

python


from dioc import *
#Créer une gouttelette
d = Droplet('dgoc') #Créer un droplet CoreOS nommé dgoc

#Créer une gouttelette à partir d'un instantané
d = Droplet('dgoc', 'test') #Créez un droplet avec le nom dgoc à partir d'un instantané appelé test

#Confirmation de l'adresse IP
print(d.ip_address)

#Créer un client SSH
c = ssh_client(d)

#Exécution de commande avec SSH
c.exec_command(commander)

#Élimination des gouttelettes
d.destroy()

c'est tout


Recommended Posts