Déploiement de Deis avec Rigger sur DigitalOcean

Un article de http://deis.io [Deis]

introduction

Deis est une plate-forme PaaS (Private as a Service) privée qui simplifie le déploiement et la gestion de vos applications sur vos propres serveurs. En exploitant des technologies telles que Docker et CoreOS, Deis fournit un flux de travail et des fonctionnalités de dimensionnement similaires à ceux de Heroku, chez le fournisseur d’hébergement de votre choix. Deis prend en charge les applications pouvant s’exécuter dans un conteneur Docker, et sur toute plate-forme prenant en charge CoreOS.

Ce guide vous guide pas à pas dans le processus de provisionnement Deis nouveau et amélioré à l’aide du nouvel outil du projet Deis appelé Rigger.

Aperçu

Si vous n’avez pas beaucoup de temps, cet enregistrement accéléré terminal (seulement environ une minute!) Montre ce que nous ferons dans la suite de cet article:

asciicast

Conditions préalables

Rigger est conçu pour gérer sa propre gestion des dépendances, mais vous devrez configurer quelques éléments avant de configurer un cluster Deis avec ce dernier. Pour suivre ce guide à la maison, il vous faut:

Toutes les commandes de ce tutoriel peuvent être exécutées sur un poste de travail Mac ou Linux local (OS X> = 10.10 et Debian / Ubuntu ont été testés). Ils peuvent également être exécutés sur une gouttelette, mais ce n’est pas nécessaire.

Les utilitaires + zip +, '+ make + , et + git + `doivent être installés sur le poste de travail que vous utilisez pour provisionner un cluster Deis avec Rigger.

Par exemple, si vous utilisez un système Ubuntu, installez-les avec la commande suivante:

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

L’utilitaire + git + est utilisé dans l’article pour télécharger Rigger et un exemple d’application. Les utilitaires + zip + et + make + sont utilisés par le script d’approvisionnement Rigger.

Si vous utilisez Mac OS X, vous devez également accepter le contrat de licence Xcode pour utiliser git:

sudo xcodebuild -license

Étape 1 - Installation du rigger

Pour installer Rigger, utilisez d’abord + git + pour le télécharger:

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

Accédez au répertoire créé:

cd rigger

Ensuite, exécutez la commande suivante:

./rigger

Lors de sa première utilisation, vous verrez ce qui suit:

OutputDownloading rerun from GitHub...

À la fin de la sortie, vous verrez une liste des commandes disponibles:

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"

Étape 2 - Configuration du déploiement Deis

Pour configurer le déploiement Deis de manière à utiliser DigitalOcean en tant que fournisseur et une version spécifique de Deis, il suffit d’appeler:

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

Rigger vous posera ensuite quelques questions. Cela ressemblera à ceci:

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"

Vous avez terminé avec la partie la plus difficile!

Étape 3 - Bénéfice!

Ou plus précisément: lancez + rigger + pour provisionner l’infrastructure sur DigitalOcean puis déployez Deis!

Tout ce que nous avons à faire est d’exécuter:

./rigger provision

Le processus de provisionnement Deis avec Rigger sur DigitalOcean prend environ 15 minutes et se déroule comme suit:

  1. https://terraform.io [Terraform] est automatiquement téléchargé et installé dans + $ {HOME} /. rigger + pour utilisation par Rigger

  2. Les clients Deis (+ deis + et + deisctl +) sont téléchargés dans + $ {HOME} /. Rigger // bins +

  3. https://terraform.io [Terraform] est utilisé pour approvisionner 3 droplets CoreOS dans DigitalOcean

  4. + DEISCTL_TUNNEL + est déterminé en recherchant l’une des nouvelles gouttelettes DigitalOcean fournies

  5. http://xip.io [xip.io] est utilisé pour configurer un point d’entrée DNS simple vers le cluster.

  6. + deisctl install platform + est exécuté

  7. + deisctl start platform + est exécuté

Étape 4 - Playtime!

Après avoir créé votre cluster Deis à l’aide de Rigger, vous devez y déployer une application!

Tout d’abord, retrouvez de l’espace libre dans le répertoire:

cd ../

Ensuite, prenez un exemple d’application du projet Deis:

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

Accédez au répertoire nouvellement créé:

cd example-nodejs-express

Chargez toutes les variables d’environnement + rigger + dans ce shell:

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

Enregistrez ensuite un compte administratif sur ce cluster Deis:

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

Certaines informations vous seront demandées pour créer le compte:

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

Ajoutez votre clé publique au cluster Deis:

deis keys:add

Vous verrez ce qui suit:

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?

Vous devez choisir la clé publique qui accompagne la clé privée que vous avez choisie lors de l’étape + rigger configure +.

Ajoutez une télécommande git pour pointer sur le cluster Deis:

deis apps:create

Vous verrez ce qui suit:

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

Maintenant, poussez!

git push deis master

Cela pourrait prendre un moment. Vous devriez finalement voir ce qui suit à la fin de la sortie:

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

      http://

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

Allez-y et chargez cette URL dans votre navigateur! (l’application est assez simple, elle affiche simplement: «Powered by Deis»)

Étape 5 - Tout casser!

Une fois que vous avez un peu joué avec votre nouveau groupe fantaisiste Deis… ce serait probablement une bonne idée de tout détruire, hein? C’est simple.

Retournez dans le répertoire + rigger +:

cd ../rigger

Ensuite, détruisez-le:

./rigger destroy

Conclusion

Dans ce guide, vous avez pu voir la direction que prend l’équipe Deis pour faciliter la vie des développeurs, des opérateurs et des contributeurs open source. La mise en service d’un cluster http://deis.io [Deis] est désormais un jeu d’enfant avec Rigger, grâce à la combinaison gagnante de https://terraform.io [Terraform] et au fait que DigitalOcean est extrêmement rapide en tant que fournisseur d’infrastructure.

Related