Déploiement CMS
De BlaxWiki
Révision datée du 6 mai 2013 à 17:11 par 217.174.199.129 (discussion)
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[modifier]
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:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match group sftpweb
ChrootDirectory /home/webusers/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
- copier les templates des CMS dans /opt/data
- copier le fichier template.conf dans /etc/httpd/conf
- creer le groupe sftpweb
- mkdir /home/backup/
Info des packs créés[modifier]
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[modifier]
#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[modifier]
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[modifier]
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[modifier]
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[modifier]
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[modifier]
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[modifier]
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[modifier]
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