Skip to content

Latest commit

 

History

History

bundle-trusty-mean

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

5 Minutes Stacks, épisode trois : MEAN

Episode trois : MEAN

Pour ce troisème volet, nous nous penchons sur la stack MEAN :

  • MongoDB : Le désormais célèbre moteur NoSQL orienté document
  • Express.js : Le framework web pour Node.js
  • Angular.js : Framework d'applications Front-web
  • Node.js : Le serveur d'application en Javascript

En suivant ce tutoriel, vous obtiendrez une instance Ubuntu Trusty Tahr, pré-configurée avec un serveur NGinx en frontal sur le port 80, forwardant vers un serveur Node.js, monitoré et maintenu en vie par Foreverjs, une instance MongoDB et un déploiement fonctionnel de l'application de démonstration de MeanJS. Pour des considérations de sécurité, MongoDB n'accepte de connexions que depuis le serveur lui-même.

Préparatifs

Les versions

  • MongoDB 2.4.9
  • Express 4.10.8
  • Angular 1.2.28
  • Node.js 0.10.25

Les pré-requis pour déployer cette stack

Ce sont les mêmes que pour les épisodes précédents :

Taille de l'instance

Par défaut, le script propose un déploiement sur une instance de type " Small " (s1.cw.small-1) en tarification à l'usage (les prix à l'heure et au mois sont disponibles sur la page Tarifs du site de Cloudwatt). Bien sur, vous pouvez ajuster les parametres de la stack et en particulier sa taille par défaut.

Au fait...

Si vous n’aimez pas les lignes de commande, vous pouvez passer directement à la version « lancement par la console » en cliquant sur ce lien

Tour du propriétaire

Une fois le repository cloné, vous trouvez, dans le répertoire bundle-trusty-mean/ :

  • bundle-trusty-mean.heat.yml : Template d'orchestration HEAT, qui va servir à déployer l'infrastructure nécessaire.
  • stack-start.sh : Script de lancement de la stack. C'est un micro-script pour vous économiser quelques copier-coller.
  • stack-get-url.sh : Script de récupération de l'IP d'entrée de votre stack.

Démarrage

Initialiser l'environnement

Munissez-vous de vos identifiants Cloudwatt, et cliquez ICI. Si vous n'êtes pas connecté, vous passerez par l'écran d'authentification, puis vous le téléchargement d'un script démarrera. C'est grâce à celui-ci que vous pourrez initialiser les accès shell aux API Cloudwatt.

Sourcez le fichier téléchargé dans votre shell. Votre mot de passe vous sera demandé.

$ source COMPUTE-[...]-openrc.sh
Please enter your OpenStack Password:

Une fois ceci fait, les outils ligne de commande OpenStack peuvent interagir avec votre compte Cloudwatt.

Ajuster les paramètres

Dans le fichier bundle-trusty-mean.heat.yml vous trouverez en haut une section parameters. Le seul paramètre obligatoire à ajuster est celui nommé keypair_name dont la valeur default doit contenir le nom d'une paire de clés valide dans votre compte utilisateur. C'est dans ce même fichier que vous pouvez ajuster la taille de l'instance par le paramètre flavor.

heat_template_version: 2013-05-23


description: All-in-one MEAN stack


parameters:
  keypair_name:
    default: amaury-ext-compute         <-- Mettez ici le nom de votre paire de clés
    description: Keypair to inject in instances
    type: string

[...]

Démarrer la stack

Dans un shell, lancer le script stack-start.sh en passant en paramètre le nom que vous souhaitez lui attribuer :

$ ./stack-start.sh IM_MEAN
+--------------------------------------+------------+--------------------+----------------------+
| id                                   | stack_name | stack_status       | creation_time        |
+--------------------------------------+------------+--------------------+----------------------+
| ed4ac18a-4415-467e-928c-1bef193e4f38 | IM_MEAN    | CREATE_IN_PROGRESS | 2015-04-21T08:29:45Z |
+--------------------------------------+------------+--------------------+----------------------+

Enfin, attendez 5 minutes que le déploiement soit complet.

Enjoy

Une fois tout ceci fait, vous pouvez lancez le script stack-get-url.sh en passant en paramètre le nom de la stack.

./stack-get-url.sh IM_MEAN
IM_MEAN 82.40.34.249

qui va récupérer l'IP flottante attribuée à votre stack. Vous pouvez alors attaquer cette IP avec votre navigateur préféré et commencer à configurer votre instance Wordpress.

Dans les coulisses

Le script start-stack.sh s'occupe de lancer les appels nécessaires sur les API Cloudwatt pour :

  • démarrer une instance basée sur Ubuntu Trusty Tahr
  • l'exposer sur Internet via une IP flottante

Et bien si ! En utilisant la console, vous pouvez déployer un serveur MEAN :

  1. Allez sur le Github Cloudwatt dans le répertoire applications/bundle-trusty-mean
  2. Cliquez sur le fichier nommé bundle-trusty-mean.heat.yml
  3. Cliquez sur RAW, une page web apparait avec le détail du script
  4. Enregistrez-sous le contenu sur votre PC dans un fichier avec le nom proposé par votre navigateur (enlever le .txt à la fin)
  5. Rendez-vous à la section « Stacks » de la console.
  6. Cliquez sur « Lancer la stack », puis cliquez sur « fichier du modèle » et sélectionnez le fichier que vous venez de sauvegarder sur votre PC, puis cliquez sur « SUIVANT »
  7. Donnez un nom à votre stack dans le champ « Nom de la stack »
  8. Entrez votre keypair dans le champ « keypair_name »
  9. Choisissez la taille de votre instance parmi le menu déroulant « flavor_name » et cliquez sur « LANCER »

La stack va se créer automatiquement (vous pouvez en voir la progression cliquant sur son nom). Quand tous les modules deviendront « verts », la création sera terminée. Vous pourrez alors aller dans le menu « Instances » pour découvrir l’IP flottante qui a été générée automatiquement. Ne vous reste plus qu’à lancer votre IP dans votre navigateur.

C’est (déjà) FINI !

So watt ?

Ce tutoriel a pour but d'accélerer votre démarrage. A ce stade vous êtes maître(sse) à bord.

Vous avez un point d'entrée sur votre machine virtuelle en ssh via l'IP flottante exposée et votre clé privée (utilisateur cloud par défaut).

Les chemins intéressants sur votre machine :

  • /var/lib/www : Répertoire d'installation de l'application MeanJS. C'est le répertoire exposé par Node.js
  • /etc/nginx/sites-available/node_proxy : Fichier de configuration de Nginx dédié au proxying HTTP vers Node.js
  • /etc/init.d/nodejs : Script d'init du service Node.js via Foreverjs.

Quelques ressources qui pourraient vous intéresser :


Have fun. Hack in peace.