Dans cet exemple, nous nous basons sur une installation avec un Ubuntu Server 10.04 LTS sur un mC OVH<\/a>. Nous allons installer Tomcat 6.0<\/a>, Oracle XE<\/a> (10g Express Edition) et MySQL<\/a>. Ainsi nous aurons une jolie VM pour tester plein de sc\u00e9narios possibles : parfait pour mettre rapidement en ligne des d\u00e9veloppements ou faire des environnements de tests jetables : la facturation \u00e0 l’heure du mC nous offre bcp de souplesse.<\/p>\n
Pour se connecter \u00e0 un mC par ssh il faut utiliser une clef qui est g\u00e9n\u00e9r\u00e9e par l’interface d’administration. Nommons cette clef key.pem<\/em>. Pour pouvoir l’utiliser pour se connecter \u00e0 un mC, voici la proc\u00e9dure :<\/p>\n
%> chmod 600 key.pem<\/pre>\n3 utiliser ssh en fournissant le chemin de la clef :<\/h3>\n
%> ssh -i $HOME\/.ssh\/key.pem root@mc-178-...<\/pre>\nPour ne pas se compliquer la vie \u00e0 indiquer chaque fois le chemin vers la clef \u00e0 utiliser, il faut indiquer dans le fichier $HOME\/.ssh\/config<\/em> quelle clef utiliser pour quel host. Faire “man ssh_config<\/em>” pour plus d’informations. Voici comment proc\u00e9der :<\/p>\n
%> vi $HOME\/.ssh\/config<\/pre>\nHost mc-178-…
\nIdentityFile ~\/.ssh\/key.pem<\/p><\/blockquote>\nEn r\u00e9p\u00e9tant le bloc Host\/IdentityFile<\/em> autant de fois que vous avez de mC. Attention<\/strong> cependant, quand le mC est archiv\u00e9 puis red\u00e9marr\u00e9 depuis l’interface il change de nom, il faudra donc mettre \u00e0 jour ce fichier de configuration.<\/p>\n
Mettre \u00e0 jour la distribution<\/h2>\n
%> aptitude update\r\n%> aptitude upgrade<\/pre>\nInstaller rcconf<\/h2>\n
%> aptitude install rcconf<\/pre>\nD\u00e9-activer bind9<\/h2>\n
Lancer rcconf <\/em>et d\u00e9cocher bind9<\/em> dans la liste. mdadm<\/em> aussi, il n’y a pas de raid sur le cloud. La liste de ce qui est supprimable n’est pas exhaustive mais je n’ai pas cherch\u00e9 plus.<\/p>\n
Installer un JDK<\/h2>\n
Rien de plus simple, on passe par aptitude<\/em> :<\/p>\n
%> aptitude install openjdk-6-jdk<\/pre>\nEnsuite v\u00e9rifier si il est bien install\u00e9 :<\/p>\n
%> java -version<\/pre>\njava version “1.6.0_18”<\/p>\n
OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-4ubuntu3)<\/p>\n
OpenJDK Server VM (build 16.0-b13, mixed mode)<\/p><\/blockquote>\n
Installer Tomcat 6.0<\/h2>\n
%> aptitude install tomcat6 tomcat6-admin libtcnative-1<\/pre>\nL’installation de libtcnative-1<\/em> nous permet d’avoir Tomcat qui utilise APR<\/a>. Nous installons aussi tomcat6-admin<\/em> pour avoir les applications d’administration de Tomcat. Elles nous seront utiles pour d\u00e9ployer de nouveaux contextes. Il nous faut ensuite installer les API JavaMail <\/a>et JavaBeans Activation Framework<\/a> (JAF) :<\/p>\n
%> aptitude install libgnujaf-java libgnumail-java<\/pre>\nAjouter ces biblioth\u00e8ques dans celles charg\u00e9es par Tomcat.<\/p>\n
%> ln -s \/usr\/share\/java\/gnumail.jar \/usr\/share\/tomcat6\/lib\/\r\n%> ln -s \/usr\/share\/java\/activation.jar \/usr\/share\/tomcat6\/lib\/<\/pre>\nIl est possible de modifier les param\u00e8tres utilis\u00e9s par la jvm<\/em> qui lancera tomcat en \u00e9ditant le fichier \/etc\/default\/tomcat6<\/em>.\u00a0 Par exemple :<\/p>\n
JAVA_OPTS=”${JAVA_OPTS} -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Xms64m -Xmx256m -Dfile.encoding=UTF8 -XX:MaxPermSize=128m”<\/p><\/blockquote>\n
Installer Oracle XE<\/h2>\n
Ajouter la source oracle \u00e0 la liste des sources (inspir\u00e9 de la doc ubuntu-fr<\/a>) :<\/p>\n
%> vi \/etc\/apt\/sources.list<\/pre>\nAjouter la ligne :<\/p>\n
deb http:\/\/oss.oracle.com\/debian unstable main non-free<\/p><\/blockquote>\n
Puis faire les commandes :<\/p>\n
%> wget http:\/\/oss.oracle.com\/el4\/RPM-GPG-KEY-oracle\u00a0 -O- | sudo apt-key add -\r\n%> aptitude update\r\n%> aptitude install oracle-x<\/pre>\nLe soucis, c’est qu’Oracle XE a des besoins minimum en ressources et qu’il les v\u00e9rifie avant de s’installer. Sur un mc classique, on va tomber sur un message de ce genre :<\/p>\n
This system does not meet the minimum requirements for swap space.\u00a0 Based on
\nthe amount of physical memory available on the system, Oracle Database 10g
\nExpress Edition requires 1024 MB of swap space<\/strong>. This system has 0 MB
\nof swap space.\u00a0 Configure more swap space on the system and retry the installation.<\/p><\/blockquote>\nEn effet, les mc viennent avec aucun swap… Comme il n’est pas possible de faire une installation d’Oracle XE sans swap, on va essayer d’en cr\u00e9er un. Il veut un swap de 1024 Mo, alors on va lui en donner un en prenant sur l’espace disque :<\/p>\n
%> dd if=\/dev\/zero of=\/swapfile bs=1M count=1024\r\n%> mkswap \/swapfile\r\n%> swapon \/swapfile<\/pre>\nNous pouvons re-essayer d’installer XE :<\/p>\n
%> aptitude install oracle-xe<\/pre>\nEt configurer XE :<\/p>\n
%> \/etc\/init.d\/oracle-xe configure<\/pre>\nAttention <\/strong>\u00e0 ne pas laisser APEX sur le port 8080, nous avons en effet Tomcat qui l’utilise. Prenons le 9090 par exemple.<\/p>\n
Nous allons aussi param\u00e9trer bash <\/em>pour avoir les variables d’environnement pour lancer les commande imp <\/em>et exp<\/em> et sqlplus<\/em>.<\/p>\n
On ouvre le fichier .bashrc :<\/p>\n
%> vi $HOME\/.bashrc<\/pre>\nEt on ajoute :<\/p>\n
export PATH=$PATH:\/usr\/lib\/oracle\/xe\/app\/oracle\/product\/10.2.0\/server\/bin<\/p>\n
export ORACLE_HOME=\/usr\/lib\/oracle\/xe\/app\/oracle\/product\/10.2.0\/server<\/p>\n
export ORACLE_SID=XE<\/p><\/blockquote>\n
Charger ces modifications :<\/p>\n
%> source $HOME\/.bashrc<\/pre>\nNous aimerions bien pouvoir acc\u00e9der \u00e0 APEX depuis autre chose que localhost, alors on fait :<\/p>\n
%> sqlplus<\/pre>\nSe connecter avec l’utilisateur SYSTEM (le mot de passe a \u00e9t\u00e9 d\u00e9finie \u00e0 l’\u00e9tape de configuration d’XE). Et saisir :<\/p>\n
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);<\/p><\/blockquote>\n
L’acc\u00e8s est donc maintenant possible par : http:\/\/ip.du.mC:9090\/apex\/<\/p>\n
Utiliser le pilote JDBC d’Oracle<\/h3>\n
Pour pouvoir se connecter \u00e0 Oracle depuis Tomcat, nous allons avoir besoin d’ajouter le pilote JDBC aux\u00a0 biblioth\u00e8ques charg\u00e9es par Tomcat :<\/p>\n
%> ln -s ${ORACLE_HOME}\/jdbc\/lib\/ojdbc14.jar \/usr\/share\/tomcat6\/lib\/<\/pre>\nInstaller MySQL<\/h2>\n
%> aptitude install libmysql-java<\/pre>\nCREATE DATABASE nomDB DEFAULT CHARACTER SET utf8;<\/p>\n
GRANT ALL PRIVILEGES ON db_base.* TO db_user @’%’ IDENTIFIED BY ‘db_passwd’;<\/p>\n
Red\u00e9marrage apr\u00e8s archivage du mC<\/h2>\n
Suite \u00e0 un arr\u00eat prolong\u00e9 du mC, il peut changer de nom et d’ip (voir dans le manager ovh). Dans ce cas, Oracle ne sera plus accessible car il est assez sensible \u00e0 ce genre de param\u00e8tres. Il va donc falloir r\u00e9aliser plusieurs \u00e9tapes :<\/p>\n
\u00c9tape 1 : Renommer le host<\/h3>\n
Le nom publique de la machine est bas\u00e9 sur l’ip, par exemple mc-178-32-111-111.ovh.net. Si l’ip a chang\u00e9, son nom aussi, cependant la configuration de la VM n’en tient pas compte. Il faut donc \u00e9diter le fichier configuration correspondant :<\/p>\n
%> vi \/etc\/hostname<\/pre>\nEt adapter le nom du hostname avec le nom affich\u00e9 dans le manager OVH. Pour que la modification soit prise en compte :<\/p>\n
%> service hostname start<\/pre>\nOn peut v\u00e9rifier avec :<\/p>\n
%> hostname --fqd<\/pre>\n\u00c9tape 2<\/h3>\n
Il faut ensuite stopper Oracle XE – si il est actif :<\/p>\n
%> service oracle-xe stop<\/pre>\nPuis changer sa configuration :<\/p>\n
%> vi $ORACLE_HOME\/network\/admin\/listener.ora<\/pre>\nRechercher un bloc qui ressemble \u00e0 ceci :<\/p>\n
LISTENER =
\n(DESCRIPTION_LIST =
\n(DESCRIPTION =
\n(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
\n(ADDRESS = (PROTOCOL = TCP)(HOST = mc-178-32-xxx-xxx.ovh.net<\/strong>)(PORT = 1521))
\n))<\/p><\/blockquote>\nEt adapter le HOST=mc-178…<\/em> avec la valeur qui a \u00e9t\u00e9 utilis\u00e9e dans l’\u00e9tape 1.<\/p>\n
Ensuite on red\u00e9marre Oracle :<\/p>\n
%> service oracle-xe start\r\n<\/pre>\nNe pas s’emb\u00eater avec le changement d’IP<\/h2>\n
Il est aussi possible d’avoir une adresse fixe pour chaque mC. Pour cela, depuis l’interface d’administration du mC, il faut ouvrir le d\u00e9tail du projet courant en cliquant sur l’ic\u00f4ne “\u00c9diter ce projet<\/em>“. Dans le dialogue qui s’ouvre, rep\u00e9rer le champ “Zone (DNS)<\/span><\/em>“. Il faut r\u00e9cup\u00e9rer cette valeur et la concat\u00e9ner avec le nom du mC. Exemple :<\/p>\n
\n
- Nom du mc : mon-test<\/li>\n
- Zone DNS : abcde.project.ovh.net<\/li>\n
- R\u00e9sultat : mon-test.abcde.project.ovh.net<\/li>\n
- Je peux donc acc\u00e9der au Tomcat install\u00e9 sur le mC via : http:\/\/mon-test.abcde.project.ovh.net:8080<\/li>\n<\/ul>\n
Ce n’est pas tr\u00e8s intuitif \u00e0 m\u00e9moriser comme url, mais il est possible de faire une entr\u00e9e CNAME dans votre DNS. Et hop ! Le tour est jou\u00e9<\/p>\n
_statusDB = null;<\/div>\n","protected":false},"excerpt":{"rendered":"Pr\u00e9paration Dans cet exemple, nous nous basons sur une installation avec un Ubuntu Server 10.04 LTS sur un mC OVH. Nous allons installer Tomcat 6.0, Oracle XE (10g Express Edition) et MySQL. Ainsi nous aurons une jolie VM pour tester plein de sc\u00e9narios possibles : parfait pour mettre rapidement en ligne des d\u00e9veloppements ou faire … Continuer la lecture de Tomcat et Oracle sur un OVH mCloud<\/span>