J'ai utilisé le cloud d'OpenShift pour déployer un site web faits en Grails. Cet article va présenter un résumé des étapes nécessaires ainsi que quelques conseils et retours d'expériences.
Quel est la meilleur méthode pour déployer son site Grails sur OpenShift ?
La meilleur méthode que j'ai trouvé pour déployer son site Grails est de construire un war puis de le copier sur le cloud.
Par défaut, Grails a une option pour générer un war : grails war
Pour plus de détails : http://grails.org/doc/2.2.1/ref/Command%20Line/war.html
Remarque :
- Vous pouvez utiliser le plugin Tomcat de Grails Tomcat plugin pour faire de Tomcat le servlet container utilisé par défaut lors du développement.
- Vous pouvez effacer les fichiers non nécessaire dans votre war en ajoutant des configurations dans le fichier Config.groovy :
1: grails.war.resources = { 2: stagingDir -> delete(dir: "$stagingDir/selenium") 3: }
Installation et configuration du client ssh
Il vous faut tout d'abord créer un compte sur OpenShift. Ensuite, vous pourrez configurer votre accès ssh. Il suffit simplement d'installer le package rubygems et git. Par exemple sur Gentoo, il suffit de faire ;
emerge dev-ruby/rubygems
emerge git
Si vous n'avez pas Gentoo, vous pouvez aller voir sur le site d'OpenShift : https://www.openshift.com/get-started#cli
gem install rhc
su - user
rhc-setup
Voici un exemple de output de la commande rhc-setup :
#rhc setup
OpenShift Client Tools (RHC) Setup Wizard
This wizard will help you upload your SSH keys, set your application namespace, and check that other programs like Git are properly installed.
Using XXXX to login to openshift.redhat.com
Password: ******
OpenShift can create and store a token on disk which allows to you to access the server without using your password. The key is stored in your home directory and should be kept secret. You can delete the key at any time by running 'rhc
logout'.
Generate a token now? (yes|no) yes
Generating an authorization token for this client ... lasts about 1 month
Saving configuration to /home/USER/.openshift/express.conf ... done
Checking for git ... found git version 1.8.5.5
Checking common problems .. done
Checking for a domain ... MYDOMAIN
Checking for applications ... found 1
opendoowap http://opendoowap-totalprog.rhcloud.com/
You are using 1 of 3 total gears
The following gear sizes are available to you: small
Your client tools are now configured.
Déployer votre application sur le cloud
Une fois l'accès ssh configuré et que vous avez builder le war, il vous suffit de le copier sur le cloud. OpenShift utilise Git pour déployer automatiquement les applications.Si vous voulez que cela fonctionne avec un war, il y a une petite astuce : http://totalprog.blogspot.fr/2013/12/probleme-avec-le-deploiement-de-rootwar.htmlAccès à votre application
Comment se connecter avec ssh ?
- Logguer vous sur le site d'OpenShift.
- Clic sur l'onglet Application.
- Clic sur votre application.
- A droite de l'écran, clic sur le lien : "Want to log in your application
- Copie la ligne sur votre console.
Par exemple :
#ssh 529e2274e0b???b@myapp.rhcloud.com
Commandes utiles :
helptail_all
ctl_app stop
ctl_app start
Voici quelques liens utiles pour plus de détails :
- https://www.openshift.com/developers/remote-access#keys
- https://www.openshift.com/get-started#cli
Visitez votre site web
Le lien pour accéder à votre site web est dans la partie Application details sur le site d'OpenShift.Temps de réponse très long
J'ai rencontré un problème lors de l' accès au site. Le temps de chargement était vraiment très long. J'ai trouvé la solution à ce problème sur StackOverFlow :openshift : my local gears often timeout and go down which cause response time very long
If you do not access your application for 24 hours, it will get idled (if this is a free acount), and depending on how large your application is, it could take awhile to spin back up when you do access it again.
En fait, pour les comptes "gratuits", ils sont automatiquement mis à "idled" si il n'y a pas d'accès pendant 24 heures.