Déploiement CMS

De BlaxWiki
Aller à la navigationAller à la recherche

Nous allons utiliser ici plusieurs script qui ont pour but de déployer sur différents serveurs divers CMS, base mysql et configuration apache (drupal, spip, jooma, http simple) en exécutant les scripts à partir d'un serveur unique (hv1.ods-lamp.cnrs). Les diverses commandes des scripts sont lancés sur les différentes VM grâce à une clé ssh publique partagée. Ce script est bien sur à ajuster mais il donne une ip du fonctionnement.

Tous les scripts se trouvent ici

Modification à faire sur les serveurs

Voilà les ajouts et modification à faire si l'on veut rajouter des serveurs où déployer des packs

- copie des clés publiques ssh de hv1 & hv2
- rajout dans /etc/ssh/sshd_config:
Match group sftpweb
         ChrootDirectory /home/webusers/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
- copier les templates dans /opt/data
- copier le fichier template.conf dans /etc/httpd/conf
- creer le groupe sftpweb
- mkdir /home/backup/

Info des packs créés

Les informations relatives au pack :
  - login / nom du labo / type de pack : se trouvent dans "/opt/data/packs_list.txt"
  - login / serveur name : se trouvent dans "/opt/data/vhost_list.txt"

Les informations relatives au user et mot de passe mysql , et au mot de passe du compte sftp ne sont stockés nul part, elles apparaissent juste lors de la création

/etc/httpd/conf/template.conf

#NameVirtualHost #IP#
<Directory  /home/webusers/#LOGIN#/#LOGIN#/#SERVERNAME#/www>
        AllowOverride Options AuthConfig FileInfo Indexes Limit
        Options FollowSymLinks
        Order Allow,Deny
        Allow From All
</Directory>

<Directory /opt/data/apache_log_vhost/#SERVERNAME#>
        Options Indexes FollowSymLinks
        Order Deny,Allow
        Deny From All
</Directory>


<VirtualHost *>
        DocumentRoot /home/webusers/#LOGIN#/#LOGIN#/#SERVERNAME#/www
        ServerName #SERVERNAME#
        ServerAlias #SERVERALIAS#
        ErrorLog '|logger -p local2.warn -t #SERVERNAME#'
        Alias /apache_log_vhost  /opt/data/apache_log_vhost/#SERVERNAME#
        php_admin_value open_basedir "/home/webusers/#LOGIN#/#LOGIN#/#SERVERNAME#"
        php_admin_value upload_tmp_dir "/home/webusers/#LOGIN#/#LOGIN#/#SERVERNAME#/tmp"
        php_admin_flag register_globals off
        php_admin_flag allow_url_fopen off
        php_admin_flag allow_url_include off
        php_admin_flag display_errors off
</VirtualHost>

Create pack

create_pack.sh : va créer un compte SFTP, et les bases mysql (1 base pour un pack de taille 1 (pack standard), 5 bases pour un pack de taille 2 ( pack évolution), 5 pour taille 3 (pack premium),avec autant de login). Cela met a jour le fichier /opt/data/pack_list.txt avec les infos fournis. Affiche en sorti les informations SFTP/MYSQL

Voici le détail des pack: - pack de taille 1 (pack standard): ce pack correspond à un espace disque de 2 gigas, un espace dédié au SGBD à 100 Méga et une base de donnée. - pack de taille 2(pack évolution): ce pack correspond à un espace disque de 2 gigas, un espace dédié au SGBD à 100 Méga et 5 bases de données. - pack de taille 3(pack PREMIUM): ce pack correspond à un espace disque de 25 gigas, un espace dédié au SGBD à 500 Méga et 100 bases de données.

./create_pack.sh "Nom du laboratoire" Email [type de pack : free|joomla|spip|drupal|preprod1-free|preprod1-joomla|preprod1-spip|preprod1-drupal] [taille du pack : 1|2|3]

/!\ Le pack ainsi créé est vierge de tout vhost, il faut donc aussi jouer le "create vhost".

exemple :
root@hv1.ods-lamp.cnrs tmp]# ./create_pack.sh "Mon laboratoire de physique" cht@agarik.com free 1
Creation d'un PACK free pour Mon laboratoire de physique
Acces SFTP
==========
Login    : lab0001
Password : o=gXCo06
Acces Mysql
===========
Base     : lab0001sql0db
Login    : lab0001sql0
Password : 6Rjwl1U>

Create vhost

reate_vhost.sh : va créer le dossier /home/webusers/<login>/<login>/<servername>/www avec le contenu de /opt/data/template.tgz (pour un free c’est juste un fichier html vide) et mettre a jour les droits pour l’utilisateur. Il va aussi créer un fichier de configuration apache qui sera inclus dans httpd.conf. Le fichier /opt/data/vhost_list.txt est mis a jour.

Usage : /opt/agarik/scripts/create_vhost.sh login ServerName [ServerAlias1,ServerAlias2]

exemple :
[root@hv1.ods-lamp.cnrs tmp]# ./create_vhost.sh lab0001 www.monpremiersite.com
Creation de l'arborescence web
free/
free/index.html
Creation de la configuration apache
Relance d'apache

Delete pack

delete_pack.sh : va archiver le contenu de /home/webusers/<login>/ si il n’y a aucun vhost associe (vu dans vhost_list.txt) puis supprimer l’arborescence. Le compte sftp est supprime. La ou les bases sont dumpes sur le sql dans /home/backup/<db>.<date>.gz puis la db est dropee et le ou les utilisateur supprimés

Usage : /opt/agarik/scripts/delete_pack.sh login

exemple:
[root@hv1.ods-lamp.cnrs tmp]# ./delete_pack.sh lab0001
Le compte possede encore des vhosts, supprimer les vhost avant de supprimer le pack
lab0001;www.monpremiersite.com
lab0001;www.monsecondsite.com

Delete vhost

delete_vhost.sh : va archiver le contenu du dossier /home/webusers/<login>/<login>/<servername> dans /home/backup/<login>.<servername>.<date>.tgz, supprimer le dossier ainsi que le fichier de configuration du site (ainsi que l’include correspondant dans httpd.conf). Le fichier /opt/data/vhost_list.txt est mis a jour

Usage : /opt/agarik/scripts/delete_vhost.sh login ServerName

exemple:
root@hv1.ods-lamp.cnrs tmp]# ./delete_vhost.sh lab0001 www.monsecondsite.com
Archivage de l'arborescence web
/home/webusers/lab0001/lab0001/www.monsecondsite.com/
/home/webusers/lab0001/lab0001/www.monsecondsite.com/www/
/home/webusers/lab0001/lab0001/www.monsecondsite.com/www/index.html
tar: Removing leading `/' from member names
Suppression de la configuration apache
Relance d'apache

Update vhost

update_vhost.sh : va archiver le contenu du dossier /home/webusers/<login>/<login>/<servername>/www dans /home/webusers/<login>/<login>/<servername>/www_<pack>_<DATE>.tgz, deployer le template associé en écrasant tous les fichiers par ceux contenus dans le tgz du template

Usage : /opt/agarik/scripts/update_vhost.sh vhost

exemple:
root@hv1.ods-lamp.cnrs /opt/agarik/scripts]# ./delete_vhost.sh www.monpremiersite.com
Backup du site
deploiement du site avec le template a jour
setting des droits

Quota

get_quota.sh : Le script de quota genere un fichier csv sur hv1 dans /opt/data/quota tout les 1er du mois 


/etc/hosts de hv1

172.27.125.13   spip
172.27.125.11   free
172.27.125.14   drupal
172.27.125.12   joomla
172.27.125.10   syslog1
172.27.125.15   mysql1
172.27.125.16   preprod1
172.27.125.16   preprod1-free
172.27.125.16   preprod1-joomla
172.27.125.16   preprod1-spip
172.27.125.16   preprod1-drupal
10.235.51.11    ip_free
10.235.51.12    ip_joomla
10.235.51.13    ip_spip
10.235.51.14    ip_drupal
10.235.51.15    ip_mysql1
10.235.51.16    ip_preprod1
10.235.51.16    ip_preprod1-free
10.235.51.16    ip_preprod1-joomla
10.235.51.16    ip_preprod1-spip
10.235.51.16    ip_preprod1-drupal
10.235.51.10    ip_syslog1