Comment installer et configurer AppScale sur Ubuntu 12.04

introduction

AppScale est une plate-forme informatique open source conçue pour déployer des applications Google App Engine sur des clouds publics, privés et des clusters sur site. AppScale est entièrement compatible avec les API de Google App Engine et prend en charge Python, Go, PHP et Java. Avec AppScale, vous pouvez migrer des applications existantes vers n’importe quelle plateforme de calcul en nuage, y compris DigitalOcean. Vous trouverez ci-dessous une liste des composants Open Source utilisés pour servir une API donnée.

Conditions préalables

Pour ce tutoriel, vous aurez besoin de:

  • 4 Go + Droplet avec Ubuntu 12.04.5

AppScale nécessite au moins 2 Go de RAM pour compiler les composants requis en plus des 2 Go de RAM utilisés par AppScale au repos. Un minimum de 4 Go de RAM est * fortement recommandé * pour les déploiements d’applications standard. Il peut être possible d’utiliser un droplet de 2 Go avec un fichier d’échange. Cependant, cela sort du cadre de ce tutoriel.

Au moment de la rédaction de ce document, AppScale ne dispose que d’un support officiel pour Ubuntu 12.04. Si vous modifiez le script de construction, il sera peut-être possible d’installer sur Ubuntu 14.04. Cependant, cela sort également du cadre de ce tutoriel et pourrait ne pas être pris en charge par la communauté.

Les deux premières étapes, à savoir l’installation d’AppScale et des outils AppScale, doivent être exécutées en tant qu’utilisateur root. Les étapes restantes peuvent être exécutées en tant qu’utilisateur non root.

Étape 1 - Installez AppScale

Pour les deux premières sections, nous voudrons exécuter toutes les commandes en tant qu’utilisateur root. Si vous êtes connecté au serveur en tant qu’utilisateur sudo, entrez le shell root avec:

sudo su

Commencez par mettre à jour votre index de paquet apt-get:

apt-get update

Nous sommes maintenant prêts à installer AppScale. Nous compilerons AppScale à partir des sources. Veuillez noter que la compilation du code source peut prendre beaucoup de temps. Attendez-vous à ce que le processus prenne plus de 15 minutes ou plus.

Assurez-vous de vous trouver dans le répertoire + / root +:

cd /root

Installez Git pour pouvoir télécharger le code source AppScale:

apt-get install -y git-core

Clonez le code source AppScale à partir de GitHub:

git clone git://github.com/AppScale/appscale.git

Accédez au répertoire + appscale / debian + et exécutez le script de construction.

cd appscale/debian
bash appscale_build.sh

Étape 2 - Installer les outils AppScale

Les outils AppScale sont utilisés pour gérer les clusters AppScale et déployer des applications. Ces outils peuvent être installés sur une machine locale ou sur votre serveur. Pour plus de simplicité, nous allons installer les outils sur notre serveur. Le processus d’installation sur Mac OS X et Windows est très similaire. Vous devez utiliser Cygwin sous Windows. Voir la page GitHub pour plus d’informations.

Revenez dans le répertoire + / root:

cd /root

Clonez le code source d’AppScale Tools à partir de GitHub:

git clone git://github.com/AppScale/appscale-tools.git

Accédez au répertoire + appscale-tools / debian + et exécutez le script de construction.

cd appscale-tools/debian
bash appscale_build.sh

Une fois le script de construction terminé, ce serait une bonne idée de redémarrer.

reboot

Étape 3 - Configurez votre déploiement AppScale

Pour la partie restante de ce didacticiel, vous pouvez exécuter les outils AppScale en tant qu’utilisateur. Cela n’a pas besoin d’être un utilisateur sudo. Cependant, vous devrez connaître le mot de passe de l’utilisateur root lors du premier démarrage d’AppScale. AppScale créera automatiquement des certificats d’authentification et le mot de passe root ne sera plus nécessaire lorsque vous utiliserez les outils AppScale à l’avenir.

Une fois le redémarrage du serveur terminé et votre connexion SSH établie, vous devez configurer votre déploiement AppScale. Les outils AppScale nécessitent un fichier de configuration à chaque fois que vous exécutez le jeu d’outils. Dans cette étape, nous allons créer le fichier de configuration nommé + AppScalefile +, démarrer AppScale et configurer le compte administrateur.

Assurez-vous d’être dans le répertoire personnel de votre utilisateur:

cd ~

Créez le fichier de configuration initial + AppScalefile +:

appscale init cluster

Nous allons maintenant ajouter l’adresse IP du serveur dans le fichier + AppScalefile +.

Ouvrez le fichier avec nano:

nano AppScalefile

En haut du fichier, vous verrez la section suivante:

AppScalefile

# The deployment strategy (roles -> machines) that should be used in this
# AppScale deployment.
# The following is a sample layout for running everything on one machine:
ips_layout :
 master :
 appengine :
 database :
 zookeeper :

Remplacez l’adresse IP par défaut par l’adresse IP de votre serveur. Lorsque vous avez terminé de modifier le fichier, appuyez sur * CTRL-X *, puis sur * Y * pour enregistrer, puis sur * ENTER * pour remplacer le nom du fichier existant.

Maintenant, nous pouvons lancer AppScale à partir du même répertoire que le + AppScalefile + qui vient d’être créé:

appscale up

AppScale vous demandera de vérifier l’empreinte digitale de l’hôte et le mot de passe root.

The authenticity of host '111.111.111.111 (111.111.111.111)' can't be established.
ECDSA key fingerprint is ab:3a:f0:87:c8:4e:8c:ba:59:0e:06:64:1b:f6:fe:e8.
Are you sure you want to continue connecting (yes/no)?

Tapez + yes +, et appuyez sur * ENTER *. Vous verrez alors ce qui suit:

[email protected]'s password:

Entrez le mot de passe de l’utilisateur root et appuyez sur * ENTER *.

Après avoir entré le mot de passe root correct, vous verrez ce qui suit:

Generated a new SSH key for this deployment at /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40
Starting AppScale 2.3.1 over a virtualized cluster.
Log in to your head node: ssh -i /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40.key [email protected]
Head node successfully initialized at 111.111.111.111. It is now starting up cassandra.
Copying over deployment credentials
Starting AppController at 111.111.111.111
Please wait for the AppController to finish pre-processing tasks.

Please wait for AppScale to prepare your machines for use.
AppController just started

Lors du démarrage d’AppScale, il peut sembler qu’il est bloqué à + ​​AppController vient de démarrer +. C’est normal. L’initialisation de tous les composants AppScale peut prendre un certain temps.

Finalement, vous verrez ce qui suit:

UserAppServer is at 111.111.111.111
Enter your desired admin e-mail address:

Créez un compte utilisateur admin. Entrez l’adresse électronique de l’utilisateur et entrez un mot de passe. Rappelez-vous ces détails. Vous en aurez besoin pour accéder au panneau d’administration AppScale.

Une fois que vous avez créé le compte utilisateur admin, vous verrez:

Creating new user account [email protected]
Creating new user account [email protected]
Your XMPP username is [email protected]
Granting admin privileges to [email protected]
AppScale successfully started!
View status information about your AppScale deployment at http://111.111.111.111:1080/status

AppScale vous fournira un lien vers le panneau d’administration. Habituellement dans le format suivant. En règle générale, l’adresse http sera automatiquement redirigée vers l’adresse sécurisée https.

http://:1080/status
https://:1443/status

Étape 4 - Le panneau d’administration AppScale

Ouvrez le panneau d’administration AppScale dans votre navigateur. Le lien aurait dû vous être fourni après le démarrage d’AppScale:

http://:1080/status

Vous serez peut-être invité à accepter le certificat auto-signé.

image: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/self-signed-cert.png [Acceptez le certificat auto-signé]

Dans le panneau d’administration AppScale, les utilisateurs peuvent créer leurs propres comptes en cliquant sur * Créer un compte *. Cependant, vous devrez modifier leurs autorisations à l’aide du compte administrateur avant de pouvoir télécharger et supprimer leurs propres applications.

Cliquez sur le bouton * Connexion * en haut à droite. Le bouton * Login * peut sembler différent sur les écrans plus petits, mais il sera toujours vert.

image: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-login.png [Connectez-vous à AppScale]

Connectez-vous avec l’adresse e-mail et le mot de passe administrateur définis à l’étape précédente. Une page d’application AppScale s’affichera.

image: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-status-page.png [Page d’état d’AppScale]

Le panneau d’administration vous donne accès aux statistiques du serveur et des statistiques des applications. Vous pouvez également déployer et supprimer des applications. Il est assez simple de déployer une application à partir du panneau d’administration. Dans le cadre de ce didacticiel, nous allons apprendre à déployer une application à partir de la ligne de commande. Lorsque vous avez terminé d’explorer le panneau d’administration, passez à l’étape suivante.

Étape 5 - Déploiement de votre première application

AppScale fournit une collection d’exemples d’applications prêtes à être déployées. Ces applications constituent un bon moyen de tester votre cluster AppScale. Ils vous familiarisent également avec le processus de déploiement de l’application.

Vous devriez utiliser le même compte d’utilisateur et votre répertoire actuel devrait contenir le + AppScaleFile +. Ce fichier contient toutes les configurations requises par AppScale pour gérer votre déploiement.

Assurez-vous de revenir dans le répertoire de base de votre utilisateur:

cd ~

Depuis GitHub, clonez l’exemple de code source de l’application pour créer l’application Guestbook:

git clone https://github.com/AppScale/sample-apps.git

Vous verrez ce qui suit comme téléchargements du code source:

Cloning into 'sample-apps'...
remote: Counting objects: 15742, done.
remote: Total 15742 (delta 0), reused 0 (delta 0), pack-reused 15742
Receiving objects: 100% (15742/15742), 318.96 MiB | 23.52 MiB/s, done.
Resolving deltas: 100% (4944/4944), done.

L’application Guestbook est un excellent moyen de tester le datastore et les API d’authentification.

Déployer l’application:

appscale deploy sample-apps/go/go-guestbook/

Vous serez invité à attribuer une adresse électronique à votre application. Entrez l’adresse e-mail et appuyez sur * Entrée *.

Enter your desired e-mail address:

Cela peut être n’importe quelle adresse email. Si l’utilisateur n’existe pas déjà dans la base de données, vous serez invité à définir un mot de passe. Pour les besoins de ce tutoriel, nous avons décidé d’utiliser le compte administrateur.

Ensuite, vous verrez ce qui suit:

Uploading initial version of app guestbookgo
We have reserved guestbookgo for your app
Tarring application
Copying over application
Please wait for your app to start serving.
Waiting 1 second(s) to check on application...
Waiting 2 second(s) to check on application...
Waiting 4 second(s) to check on application...
Waiting 8 second(s) to check on application...
Waiting 16 second(s) to check on application...
Your app can be reached at the following URL: http://111.111.111.111:8080

Ouvrez l’URL fournie dans votre navigateur et vous serez servi par l’application Guestbook. Si vous êtes toujours connecté à AppScale, l’application Guestbook utilisera votre adresse e-mail. Si vous revenez au panneau d’administration AppScale et que vous vous déconnectez, le livre d’or sera signé en tant qu’utilisateur anonyme.

image: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/guestbook-app.png [Application livre d’or]

Pour mettre à jour une application, utilisez simplement à nouveau la commande + appscale deploy +. AppScale détectera et mettra automatiquement à jour l’application existante. Vous devez utiliser la même adresse électronique que celle qui possède déjà l’application. Si vous souhaitez changer de propriétaire, vous pouvez supprimer et redéployer l’application.

Si vous souhaitez exécuter plusieurs versions de la même application côte à côte, vous devez modifier le nom de l’application dans le fichier + app.yaml +. Il s’agit du fichier de configuration principal de l’application, situé dans le répertoire racine de l’application.

Pour supprimer une application, vous pouvez utiliser la commande suivante (remplacez + guestbookgo + par l’ID AppScale attribué à votre application pendant le processus de déploiement):

appscale remove

Vous pouvez également supprimer et déployer vos applications à partir du panneau d’administration AppScale.

Dépannage

AppScale est une plate-forme très compliquée et les choses peuvent mal se passer. Nous allons couvrir quelques étapes que vous pouvez suivre pour vous aider à résoudre certaines des erreurs les plus courantes. Il est recommandé de lire la page officielle de dépannage https://github.com/AppScale/appscale/wiki/Troubleshooting&AppScale] pour plus de détails.

Si vous ne trouvez pas de solution à votre problème, AppScale dispose d’une liste de diffusion très active. Lorsque vous soumettez un sujet à la liste de diffusion, veillez à inclure autant de détails que possible et une copie de vos fichiers journaux. Vous aurez plus de chances de recevoir une solution rapide à votre problème.

Nettoyage forcé de l’état AppScale

La commande + appscale clean + est utilisée pour forcer vos machines virtuelles à un état de nettoyage, supprimant ainsi tout problème de configuration.

appscale clean

Ce script va également tuer de force tous les processus liés à AppScale. Si vous rencontrez des problèmes avec un déploiement initial, essayez-le toujours avant de contacter la liste de diffusion. Cette commande résoudra généralement les problèmes de configuration. Vous pouvez ensuite exécuter à nouveau + appscale up + pour redéployer AppScale.

appscale up

Fichiers journaux AppScale

La commande + appscale logs + rassemblera les fichiers journaux de tous les nœuds d’un déploiement AppScale et les copiera dans le répertoire spécifié.

appscale logs

Les fichiers journaux sont directement accessibles dans le répertoire + / var / log / appscale +.

cd /var/log/appscale

Si, pour certaines raisons, la commande + appscale logs + échoue, vous souhaiterez accéder aux journaux de cette manière. Toutefois, dans le cas d’un déploiement multi-nœuds, vous devrez le faire sur chaque serveur. C’est pourquoi il est recommandé d’utiliser les outils AppScale pour collecter les fichiers journaux.

La commande + appscale tail + fournira une lecture en temps réel des journaux AppScale dans un déploiement. Ceci est utile pour surveiller les problèmes d’application et de connexion en temps réel.

appscale tail

Débogage des déploiements AppScale

Nous devrions être intéressés par trois journaux principaux lors du débogage d’un déploiement AppScale.

  • + controller-17443.log + - Ce journal est la sortie d’AppController, le démon d’approvisionnement d’AppScale. Étant donné que ce démon est chargé de démarrer tous les services requis d’AppScale, c’est le meilleur endroit pour commencer en cas de problèmes avec un déploiement AppScale.

  • + app _ app_id - *. log + - Chaque application déployée aura son propre fichier journal. Si vous rencontrez des problèmes pour déployer une application ou si celle-ci ne se comporte pas comme prévu, vous voudrez commencer par là.

  • + datastore_server-400 * .log + - Il s’agit du fichier journal du magasin de données AppScale.

Conclusion

Nous avons installé et configuré AppScale pour un déploiement sur un seul serveur. Nous avons appris à déployer et à supprimer des applications. Nous mettons également notre déploiement à l’épreuve en signant l’application Guestbook. La signature de l’application Guestbook a prouvé qu’un certain nombre d’API fonctionnaient correctement. Nous pouvons maintenant utiliser cette installation AppScale pour déployer des applications personnalisées basées sur Google App Engine.