Koozali.org: home of the SME Server

SME 8.1 commande virtualenv

Offline aquick

  • *
  • 9
  • +0/-0
SME 8.1 commande virtualenv
« on: March 10, 2014, 11:05:08 AM »
bonjour,

comme l'indique le titre, je suis sous SME 8.1 et j'ai besoin d'avoir une virtualisation.
j'ai donc suivi la procédure qui est destinée à centos 6 en l'adaptant un peu et quand je dois entrer la commande :
Code: [Select]
virtualenv --distribute --no-site-packages /var/www/UE-environmentil me retourne le message suivant :
Code: [Select]
-bash: virtualenv: command not found
est ce que quelqu'un aurait eu le même problème et pourrait me faire part d'une éventuelle solution ?

en vous remerciant par avance de vos réponse

Offline stephdl

  • *
  • 1,523
  • +0/-0
    • Linux et Geekeries
Re: SME 8.1 commande virtualenv
« Reply #1 on: March 10, 2014, 03:42:02 PM »
ola

Il manque le lien que vous suiviez pour que nous puissions comprendre de quoi il en retourne :)

sinon moi je partirai vers smeserver-phpvirtualbox
« Last Edit: March 10, 2014, 03:44:30 PM by stephdl »
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #2 on: March 10, 2014, 05:07:33 PM »
@aquick
comme l'indique le titre, je suis sous SME 8.1 et j'ai besoin d'avoir une virtualisation.
j'ai donc suivi la procédure qui est destinée à centos 6 en l'adaptant un peu et quand je dois entrer la commande :
Hum, je crois savoir que la SME 8.1, c'est encore du Centos 5  :lol:

Code: [Select]
virtualenv --distribute --no-site-packages /var/www/UE-environmentil me retourne le message suivant :
Code: [Select]
-bash: virtualenv: command not found
Fais tu la différence entre virtualisation et environnement virtuel pour Python ? Si tu ne sais pas faire la différence il faut t'arrêter tout de suite et ouvrir un bon manuel sur Python ( exemple : chez ENI éditions - Python Les fondamentaux du langage de Sébastien Chazallet - page 762)

est ce que quelqu'un aurait eu le même problème et pourrait me faire part d'une éventuelle solution ?
Oui, mais si tu nous en dis pas plus on ne va pas pouvoir t'aider ! Que veux tu faire?

En attendant plus d'information, je te donne la ligne de commande pour installer le paquet :
Code: [Select]
yum --enablerepo=epel install python26-virtualenv
/!\ Attention tout de même à de ne pas trop jouer avec Python 2.4 dans ta SME 8.1, ça pourrait avoir des conséquences étonnantes!

A+
« Last Edit: March 10, 2014, 05:32:05 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #3 on: March 11, 2014, 07:46:34 AM »
effectivement la sme 8.1 et encore du centos 5 et le howto que j'exploite est fait pour du centos 6.

je voudrais mettre en place updateEngine sur mon serveur afin de pouvoir faire les mises à jours de mon parc sans avoir à le faire poste par poste ; j'ai déjà essayé de mettre en place GLPI et OCS mais le paramétrage est très compliqué (du moins pour moi).

je comprend maintenant la bourde que j'ai faite en parlant de virtualisation, effectivement je ne connais rien de python, mais ma priorité pour le moment est de mettre en place updateEngine, et je me plongerais plus tard dans un bouquin sur les fondamentaux de ce langage sauf si j'en ai vraiment besoin pour l'installation.

pourrais je savoir quelles conséquences pourrait avoir python sur ma sme? 


Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #4 on: March 11, 2014, 10:35:06 AM »
@aquick
Je vais te répondre en commençant pas la fin de ton dernier message.

pourrais je savoir quelles conséquences pourrait avoir python sur ma sme? 
Python tu en as à dans tous les étages dans ta SME, en commençant par YUM qui te permet justement d'installer et de mettre à jour ta distribution donc il vaut mieux ne pas trop mélanger les versions de Python. Pour simplifier, les environnements virtuels te permettent justement de faire cohabiter plusieurs versions de Python pour développer ou tester une application sans perturber le système.

Par exemple, si tu googlelise un peu tu vas avoir plein de résultats avec Centos et Python ou Centos, yum et python
Code: [Select]
lynx "https://www.google.com/search?q=centos+python"
links "https://www.google.com/search?q=centos+yum+python"
Il ya donc quelques risques mais si tu sais ce que tu fais tout va bien se passer avec ton serveur en production  ;-)

je comprend maintenant la bourde que j'ai faite en parlant de virtualisation, effectivement je ne connais rien de python, mais ma priorité pour le moment est de mettre en place updateEngine, et je me plongerais plus tard dans un bouquin sur les fondamentaux de ce langage sauf si j'en ai vraiment besoin pour l'installation.
Par déformation professionnelle (mon coté enseignant), je crois vraiment qu'il te faut un peu te pencher dessus avant de te lancer dans une installation d'une application codée en Python.

je voudrais mettre en place updateEngine sur mon serveur afin de pouvoir faire les mises à jours de mon parc sans avoir à le faire poste par poste ; j'ai déjà essayé de mettre en place GLPI et OCS mais le paramétrage est très compliqué (du moins pour moi).
Est-ce que c'est de ce projet dont tu parles : http://code.google.com/p/update-engine/? Parce que si c'est le cas je n'y ai pas trouvé de trace de Python dedans.

Je connais un peu la solution OCS+GLPI et franchement ça vaut le coup de s'accrocher un peu pour la mettre en oeuvre surtout si tu as un parc important de machine à gérer d'autant plus qu'il existe une contribution. Je n'ai pas personnellement testée cette contrib, je préfère faire les choses de manière plus "académique" plutôt que de dépendre des choix d'un packager SME un peu trop obtus mais tu devrais peut-être essayer cette contrib:
et bien sûr le HowTo de Remi Collet et les références de base

--/--
« Last Edit: March 12, 2014, 12:14:16 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #5 on: March 11, 2014, 11:13:06 AM »
mon parc informatique n'est pas très important j'ai 2x18 machines sur deux sites géographiques.

j'ai passé 6 mois sur glpi et ocs car cela correspond exactement à mes besoins : inventaires du matériel et possibilité de faire mise a jour et déploiement de logiciels.
Ceci dit en testant Glpi j'ai trouvé les temps de traitements extrêmement long et comme je le disais le paramétrage est très complet et vraiment compliqué à mon niveau. 
j'ai pourtant écumé les tutos et howto sur ce sujet mais pour un néophyte certains aspects restent obscur.

c'est pourquoi j'ai décidé d'essayer autre chose et que je suis passé au projet UpdateEngine http://www.updatengine.com
qui en plus me semblait plus intuitif au niveau de l'utilisation.

je veux bien réessayer de passer du temps sur glpi et ocs, mais ma patiente risque d'être mise à rude épreuve (et pourtant j'en ai).

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #6 on: March 11, 2014, 11:36:17 AM »
c'est pourquoi j'ai décidé d'essayer autre chose et que je suis passé au projet UpdateEngine http://www.updatengine.com
Ce projet est codé en Python et surtout Django est utilisé comme framework. Je ne connaissais pas ce projet mais ça m'intéresse beaucoup je vais donc m'y pencher sérieusement  :-P

Peux tu nous poster le lien vers le tuto pour Centos6?

“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #7 on: March 11, 2014, 12:29:10 PM »
en fait j'ai pris contact avec l'une des personnes ayant développé ce projet qui m'a envoyer par mail ce fichier pdf que j'ai mis sur ce ftp http://aurelien.vincent05.free.fr/uecentos.pdf

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #8 on: March 11, 2014, 02:50:15 PM »
content que ce post serve à quelque chose..  :-)

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #9 on: March 11, 2014, 03:06:14 PM »
Je bosse dessus, je devrais avoir fini en fin d'aprem  :-)
Il y a quelques difficultés à surmonter dues aux versions de Python disponible en RPMs et des dépendances requises par UpdateEngine.

Il va falloir passer par  https://pypi.python.org pour récupérer quelques dépendances.
« Last Edit: March 11, 2014, 03:18:26 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #10 on: March 12, 2014, 03:02:07 PM »
alors des nouvelles du front ??

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #11 on: March 12, 2014, 03:57:44 PM »
Je suis encore dessus  :-P

En résumé : Testé sur SME 8.1 et SME 9 beta 3
pas de problème pour récupérer le code avec git, pas de problème pour créer la base, pas trop de difficultés pour les dépendances de l'application
mais je suis encore à paramétrer finement le mod_wsgi pour faire fonctionner correctement l'application dans son environnement virtuel

Je pense que je vais modifier le wsgi.py pour tester l'application sans environnement virtuel.

Je te tiens au jus mais peut-être pas avant demain matin  :lol:
“When the wise man points to the moon, the fool looks at the finger.”

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #12 on: March 12, 2014, 06:45:22 PM »
Avec une procédure quasi-identique pour installer UpdateEngine sur SME8 et SME9, sur SME 8.1 je n'arrive pas à résoudre l'erreur :
Code: [Select]
ImportError at /
/opt/UpdateEngine/lib/python2.6/site-packages/lxml/etree.so: undefined symbol: __xmlStructuredErrorContext
c'est une erreur due à la compilation de lxml, erreur que je ne rencontre pas sur SME 9 beta 3.

Dans SME 9 beta 3 , UpdateEngine fonctionne correctement, pour l'instant et finalement dans SME 8.1 aussi  8-)
--/--
« Last Edit: March 13, 2014, 01:00:43 AM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #13 on: March 13, 2014, 07:26:35 AM »
et du coup tes ressentis sur ce projet sont bon ?
vaut il mieux installer glpi et ocs ou Updatengine ?
et une petite question au passage comment se comporte la sme 9 b3 est elle opérationnelle ?
« Last Edit: March 13, 2014, 07:31:42 AM by aquick »

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #14 on: March 17, 2014, 04:01:24 PM »
bon ben en gros ça fonctionne mais pas chez moi.
je ne sais pas si j'aurais une info qui pourrait me débloquer ou pas.

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #15 on: March 28, 2014, 10:46:16 AM »
Le soft est fonctionnel mais il n'y a pas de RPMs pour faire une install en prod, je peux m'y coller dès que j'ai du temps mais là je suis en retard sur plusieurs projets. sinon c'est un  projet intéressant pour offrir une alternative "lègère" de gestion de mise à jour pour un parc de PC Micromou, je me le suis casé sur l'oreille pour y revenir dès qu'un de mes clients en aura le besoin ;-)

Si tu as vraiment envie de tester le soft il va quand même falloir un peu te former à Python et au virtualenv, rassures toi c'est pas du Perl des grands qui font des contribs !

Je vais te donner quelques pistes pour installer le soft mais avant de commencer, il faut tout de même faire attention au fait que les super DEV de la SME n'ont toujours pas su paramétrer correctement YUM pour leurs utilisateurs donc il faut penser à régler le "Multilib Policy"

/!\ ATTENTION CE QUI SUIT N'EST PAS UN TUTO, IL PEUT Y AVOIR DES ERREURS /!\
Références :

Pour un serveur SME 8.1 de développement(virtualisé) fraîchement installé:

1) Récupérer le code avec GIT
Code: [Select]
yum --enablerepo=epel install git perl-Git perl-TermReadKey
mkdir -p /opt/UpdatEngine
cd /opt/UpdatEngine
git clone https://github.com/updatengine/updatengine-server.git
cat updatengine-server/requirements/pip-packages.txt
chown -vR www:www /opt/UpdatEngine

2) Installer ce qu'il faut pour python 2.6
Code: [Select]
yum --enablerepo=epel install python26 python26-devel python26-distribute python26-virtualenv PyYAML python26-argparse python26-libs libyaml libffi python26-PyYAML libyaml-devel
yum install gcc cpp glibc-devel glibc-headers  kernel-headers libxslt-devel libxml2-devel libgcrypt-devel libgpg-error-devel pkgconfig zlib-devel
yum install --enablerepo=smedev openssl-devel mysql-devel keyutils-libs-devel krb5-devel libselinux-devel libsepol-devel e2fsprogs-devel

3) Créer l'environnement virtuel :
Code: [Select]
virtualenv-2.6 --python=python26 --distribute --no-site-packages /opt/UpdatEngine
cd /opt/UpdatEngine
source bin/activate
/opt/UpdatEngine/bin/easy_install-2.6 -U distribute
/opt/UpdatEngine/bin/pip-2.6 install -r /opt/UpdatEngine/updatengine-server/requirements/pip-packages.txt
deactivate

4) Créer la base de donnée (faut adapter !)
Code: [Select]
/usr/bin/mysql <<EOF
   CREATE DATABASE updatenginedb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
   GRANT ALL PRIVILEGES ON updatenginedb.* TO updatengineuser@localhost IDENTIFIED BY 'updatenginepw';
   flush privileges;
EOF
à cet étape ça peut être sympas de générer un password de manière aléatoire, tu peux trouver un bout de code à la sauce Super Dev SME quelque part sur le web mais ma religion m'interdit de faire de la pub au "neuneu"  :lol:

5) Configurer UE
Code: [Select]
cp /opt/UpdatEngine/updatengine-server/updatengine/settings.py.model_mysql /opt/UpdatEngine/updatengine-server/updatengine/settings.py
nano /opt/UpdatEngine/updatengine-server/updatengine/settings.py

Tu y colles ce que tu veux pour l'IP et le port:
Code: [Select]
#PROJECT_URL = 'http://##updatengine_server_ip##:1979'
PROJECT_URL = 'https://xxx.xxx.xxx.xxx:1979'

pour les paramètres de connexion à la base
Code: [Select]
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME' : 'updatenginedb',
        'USER': 'updatengineuser',                      # Not used with sqlite3.
        'PASSWORD': 'updatenginepw',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

6) Mettre en place le mod WSGI (oulala ça va se compliquer)
Code: [Select]
yum install --enablerepo=epel python26-mod_wsgi
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
nano /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/20LoadModule80mod_wsgi
y coller :
Code: [Select]
LoadModule wsgi_module modules/python26-mod_wsgi.so
Permettre à Apache d'utiliser des scripts wsgi/py
Code: [Select]
nano /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/80AddHandler15
y coller (faut adapter en fonction des extensions utilisées .py / .wsgi)
Code: [Select]
# To use WSGI scripts:
AddHandler wsgi-script .py
WSGISocketPrefix /var/run/wsgi
puis
Code: [Select]
mkdir /var/run/wsgi
chown www:www /var/run/wsgi
expand-template /etc/httpd/conf/httpd.conf
/usr/sbin/apachectl configtest
sv h /service/httpd-e-smith

Vérifier que le module est bien chargé par Apache, on peut aussi jeter un coup d'oeil au log
Code: [Select]
apachectl -t -D DUMP_MODULES

7) Créer le virtualhost pour UE en s'inspirant de ce qui est fourni par les dev et en adaptant aux spécificités un  peu "con-con" de la SME notamment pour le SSL :
Code: [Select]
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
cat /opt/UpdatEngine/updatengine-server/requirements/apache-updatengine
nano /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/99UpdatEngine
Il faut adapter ce qui suit en lisant bien tout ce qu'il faut sur les sites :

Code: [Select]
# ------------------------------------------------
# UpdatEngine
# ------------------------------------------------
Listen 1979
NameVirtualHost *:1979

<VirtualHost *:1979>
       WSGIDaemonProcess updatengine display-name=updatengine user=www processes=2 threads=15 \
                python-path=/opt/UpdatEngine/updatengine-server/updatengine:/opt/UpdatEngine/lib/python2.6/site-packages
        WSGIProcessGroup updatengine
        WSGIScriptAlias / /opt/UpdatEngine/updatengine-server/updatengine/wsgi.py
        Alias /static/ /opt/UpdatEngine/updatengine-server/updatengine/static/
        Alias /media/ /opt/UpdatEngine/updatengine-server/updatengine/media/

<Directory /opt/UpdatEngine/updatengine-server/updatengine>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

<Directory /opt/UpdatEngine/updatengine-server/updatengine/static>
Order deny,allow
Allow from all
</Directory>

<Directory /opt/UpdatEngine/updatengine-server/updatengine/media>
Order deny,allow
Allow from all
</Directory>

# Enable SSL on UpdatEngine
SSLEngine on
#SSLCertificateFile    /etc/ssl/certs/updatengine.crt
#SSLCertificateKeyFile /etc/ssl/private/updatengine.key
{
    my $crt = $modSSL{'crt'} ||
"/home/e-smith/ssl.crt/${SystemName}.${DomainName}.crt";

    my $key = $modSSL{'key'} ||
"/home/e-smith/ssl.key/${SystemName}.${DomainName}.key";

    $OUT .= <<SSL_END;
SSLCertificateFile $crt
SSLCertificateKeyFile $key
SSL_END

}
</VirtualHost>
pour ce virtualhost même moi j'ai galéré un peu ...un petit peu pendant 10 mn  :lol: il y avait une astuce à trouver pour l'accès au wsgi.py mais je te laisse chercher laquelle.

puis
Code: [Select]
expand-template /etc/httpd/conf/httpd.conf
/usr/sbin/apachectl configtest
sv h /service/httpd-e-smith
config set UpdatEngine service access private status enabled TCPPort 1979
signal-event remoteaccess-update

8 ) Vérification
Code: [Select]
ps aux | grep updatengine
lsof -n -i -P | grep 1979
links https://updatengine_server_ip:1979

9) Initialisation de la base de donnée de UE
Code: [Select]
/opt/UpdatEngine/bin/python26 /opt/UpdatEngine/updatengine-server/manage.py syncdb

Si c'est nécessaire
Code: [Select]
/opt/UpdatEngine/bin/python26 /opt/UpdatEngine/updatengine-server/manage.py migrate

10) Nettoyage du système
un petit "yum remove" de tous les fichiers inutiles sur ton système

--/--
Voilou !  c'était simple, non ? :lol:
Du boulot de 1ère année de DUT ou de BTS SIO mais pour faire un RPM il faut un peu plus adapter l'installation à la sauce Super Dev SME en faisant un RPM générique puis un machin smeserver.


P.S.: pour SME 9 beta 3 c'est encore plus simple mais là, va falloir essayer par soi-même  :P
« Last Edit: March 28, 2014, 11:48:06 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline Xavier.A

  • ****
  • 104
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #16 on: March 28, 2014, 11:01:21 AM »
Mon opinion sur la SM9 :
La SME9 beta se comporte comme une CentOS 6 avec les hack habituels des Super Dev SME, quelques améliorations et beaucoup de "je suis le plus fort au monde" pour réinventer la roue concernant des problèmes que les autres distributions ont réglé depuis longtemps (cf le pb de /tmp pour PHP). Bref encore et toujours un comportement autiste avec des œillères.

Donc comme dirait bip de Firewall bip, SME 9 beta n'est pas assez mature pour être mis en production! Si je n'ai pas le choix, je préfère utiliser directement une CentOS 6 avec un panel quelconque mais bon j'aime surtout la ligne de commande ;-)

C'est seulement mes 2 cents à moi mais tant que certains incompétents seront dans l'éco-systeme, que la gouvernance ne s'améliore pas et que certains sont dans plusieurs structures (plusieurs fondations) ça risque de ramer sérieux pendant longtemps !

Xavier
« Last Edit: March 28, 2014, 02:42:08 PM by kid_of_leognan »
“When the wise man points to the moon, the fool looks at the finger.”

Offline aquick

  • *
  • 9
  • +0/-0
Re: SME 8.1 commande virtualenv
« Reply #17 on: March 31, 2014, 07:56:28 AM »
ok merci pour tout. tout fonctionne.