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.
- MongoDB 2.4.9
- Express 4.10.8
- Angular 1.2.28
- Node.js 0.10.25
Ce sont les mêmes que pour les épisodes précédents :
- un accès internet
- un shell Linux
- un compte Cloudwatt, avec une paire de clés existante
- les outils OpenStack CLI
- un clone local du dépôt git Cloudwatt applications
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.
Si vous n’aimez pas les lignes de commande, vous pouvez passer directement à la version « lancement par la console » en cliquant sur ce lien
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.
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.
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
[...]
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.
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.
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 :
- Allez sur le Github Cloudwatt dans le répertoire applications/bundle-trusty-mean
- Cliquez sur le fichier nommé bundle-trusty-mean.heat.yml
- Cliquez sur RAW, une page web apparait avec le détail du script
- Enregistrez-sous le contenu sur votre PC dans un fichier avec le nom proposé par votre navigateur (enlever le .txt à la fin)
- Rendez-vous à la section « Stacks » de la console.
- 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 »
- Donnez un nom à votre stack dans le champ « Nom de la stack »
- Entrez votre keypair dans le champ « keypair_name »
- 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 !
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.