Infos pour les sysadmins : Différence entre versions

De wiki.gentilsvirus.org
Aller à : Navigation, rechercher
(sur un serveur d'accueil des backups)
(restorer un backup)
Ligne 263 : Ligne 263 :
  
 
== restorer un backup ==
 
== restorer un backup ==
par exemple sur la restaurer le backup de la prod sur la [[Plateforme de test]] :
+
par exemple restaurer le backup de la prod sur la [[Plateforme de test]] :
 
<pre>
 
<pre>
 
cd /backup
 
cd /backup

Version du 5 octobre 2014 à 16:04

informations facebook :

la création de ce mediawiki : https://www.facebook.com/groups/120403474764049/permalink/130151823789214/
discussion pour les devs : https://www.facebook.com/groups/120403474764049/permalink/133132120157851/

Sommaire

1 prospective

prospective : hebergements
Informations et etudes prospectives sur mediawiki


2 la Plateforme de test

voir Plateforme de test


3 la plateforme de "production"

3.1 le mediawiki

  • backup de la db de ce mediawiki ( "production" ) :
database = gv
backup mysql : nice -n 19 mysqldump -u $USER --password=$PASSWORD gv -c | nice -n 19 gzip -9 > /backup/wiki-gv-$(date '+%Y%m%d').sql.gz
  • backup de /var/www =

cd /var/www ; nice -n 19 tar czf /backup2/www-$(date '+%Y%m%d').tgz .


4 gestion des sauvegardes mysql et fichiers

Discussion : https://www.facebook.com/groups/120403474764049/permalink/333769803427414/

4.1 debat au sujet des backups sur dev.gouv.fr

http://dev.ggouv.fr/brainstorm/view/627/Acces-aux-sources-et-%C3%A0-la-configuration-%3F

Quand la personne aura le backup, elle pourra extraire toutes les données qu'elle veut. Pas les mots de passe par contre qui sont codés dans la base de donnée et donc impossible à extraire.
La personne pourra voir qui a voté sur quoi par exemple. Bon en soit je ne sais pas si ça craint ou pas...

4.2 sur le serveur de "prod"

4.2.1 Script de backup mysql sur le serveur de prod

sauvegarde de 30j d'une base mysql (wiki de prod) : /root/bin/bd_backup.sh

VOIR https://github.com/remy40/gvadmin/blob/master/bd_backup.sh

note : script éxécuté 1 fois par jour via la crontab, exemple :

root@projetgentilsvirus:/backup# crontab -l | grep mysql
10 4 * * *  /bin/sh /root/bin/mysqlbackup.sh /root/bin/wikibackupparamsfile.sh

4.2.2 Script de backup des fichiers du wiki

root@projetgentilsvirus:~/bin# crontab -l |grep files
4 3 * * 1,4 /bin/sh /root/bin/wikifiles_backup.sh

/root/bin/wikifiles_backup.sh :

#!/bin/bash
#set -x

TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S`
BACKUP_PATH=/backup2

test -w ${BACKUP_PATH} || mkdir -p ${BACKUP_PATH}

cd /var/www

FILELIST=`ls  |grep -v test0 |grep -v wordpress0 |grep -v mediawiki-1.18.4b | grep -v elgg-data |grep -v elgg-gv |grep -v elgg-gv-data |grep -v elgg-plugins |grep -v phpbb`

nice -n 19  tar czf /backup2/www-${TIMESTAMP}.tgz $FILELIST

if [ $? -ne 0 ];
then
	logger "[data_backup] error"
	SUBJECT="[DATAB_BACKUP_ERROR]"
	echo $SUBJECT | mailx -s ${SUBJECT}  <monemail@ici>
	exit 1
fi

# BEGIN : keep only ${NB_BACKUPS}
cd $BACKUP_PATH

CONTINUE=1

# BEGIN : LOOP
while test $CONTINUE -eq 1
do

NBFILES=`ls  | wc -l`

echo "NBFILES="$NBFILES

if test $NBFILES -gt 9
then
echo "removing & continuing"
rm  `ls -t | tail -1`
else
CONTINUE=0
echo "exiting"
fi

done 
# END : LOOP
# END : keep only ${NB_BACKUPS}


echo "Data backuped !"

4.2.3 Script de backup mysql Obsolete (voir github ci-dessus)

obsolete : /root/bin/mysqlbackup.sh :

#/bin/sh

PARAMSFILE=$1
. $PARAMSFILE
# PARAMSFILE MUST DEFINE THE FOLLOWING VARIABLES :
# 1. BACKUPDIR :   exple : BACKUPDIR=/backup
# 2. MYSQLUSER :   exple : MYSQLUSER=<user>
# 3. MYSQLPASSWD : exple : MYSQLPASSWD=<passwd>
# 4. MYSQLDB :     exple : MYSQLDB=<db>
#




BACKUPFILE=$BACKUPDIR/${MYSQLDB}-$(date '+%Y%m%d').sql.gz

nice -n 19 mysqldump -u $MYSQLUSER --password=$MYSQLPASSWD $MYSQLDB -c | nice -n 19 gzip -9 > $BACKUPFILE 

if test `stat -c %s $BACKUPFILE` -lt 999999
then
echo "error : backup too small!!!"
mv $BACKUPFILE $BACKUPDIR/ERROR
exit 1
fi

cd $BACKUPDIR

CONTINUE=1

while test $CONTINUE -eq 1
do

NBFILES=`ls $BACKUPDIR | wc -l`

echo "NBFILES="$NBFILES

if test $NBFILES -gt 30
then
echo "removing & continuing"
rm  `ls -t $BACKUPDIR | tail -1`
else
CONTINUE=0
echo "exiting"
fi

done 

4.3 sur un serveur d'accueil des backups

Note : Authentification SSH automatique par clé pour que le ssh/scp marche sans authentification :

http://www.clubnix.fr/node/290

4.3.1 recuperer 30j de sauvegarde d'une base mysql (wiki de prod) sur un serveur d'accueil de backups :

# cat /root/bin/transferwikibackup.sh
#/bin/sh

BACKUPDIR=/backup


BACKUPFILE=`ssh root@projetgentilsvirus.ouvaton.org "ls -rt $BACKUPDIR | tail -1"`
echo "BACKUPFILE="$BACKUPFILE


cd $BACKUPDIR

scp root@projetgentilsvirus.ouvaton.org:${BACKUPDIR}/$BACKUPFILE .

if test `stat -c %s $BACKUPFILE` -lt 999999
then
echo "error : backup too small!!!"
mv $BACKUPFILE ERROR
exit 1
fi

CONTINUE=1

while test $CONTINUE -eq 1
do

NBFILES=`ls $BACKUPDIR | wc -l`

echo "NBFILES="$NBFILES

if test $NBFILES -gt 30
then
echo "removing & continuing"
rm  `ls -t $BACKUPDIR | tail -1`
else
CONTINUE=0
echo "exiting"
fi

done

note1 : script à executer 1 fois par jour (crontab)


4.3.2 recuperer les fichiers du wiki backupés sur le serveur de prod sur un serveur d'accueil de backups :

root@pierro78:/backup2# crontab -l |grep files
4 7 * * 1,4 /root/bin/transferwikifilesbackup.sh
root@pierro78:/backup2# cat  /root/bin/transferwikifilesbackup.sh
#/bin/sh
#set -x
BACKUPDIR=/backup2



BACKUPFILE=`ssh root@projetgentilsvirus.ouvaton.org "ls -rt $BACKUPDIR | tail -1"`
echo "BACKUPFILE="$BACKUPFILE


cd $BACKUPDIR

scp root@projetgentilsvirus.ouvaton.org:${BACKUPDIR}/$BACKUPFILE .

if test `stat -c %s $BACKUPFILE` -lt 999999
then
echo "error : backup too small!!!"
mv $BACKUPFILE ERROR
exit 1
fi

CONTINUE=1

while test $CONTINUE -eq 1
do

NBFILES=`ls $BACKUPDIR | wc -l`

echo "NBFILES="$NBFILES

if test $NBFILES -gt 9
then
echo "removing & continuing"
rm  `ls -t $BACKUPDIR | tail -1`
else
CONTINUE=0
echo "exiting"
fi

done

4.4 restorer un backup

par exemple restaurer le backup de la prod sur la Plateforme de test :

cd /backup
zcat 2014-10-05_04-10-01_gv.sql.gz | mysql -u root  -p gv # le mdp de la base "gv" est ds le fichier LocalSettings.php

5 gestion des sources

( https://www.facebook.com/groups/120403474764049/permalink/154001578070905/ )

depot git pour le réseau social : https://github.com/remy40/gvrs

depot git pour les outils d'admin : https://github.com/remy40/gvadmin

6 roles/outils et droits administrateurs/sysadmins

Discussion : https://www.facebook.com/groups/120403474764049/doc/224198024384593/

Utilisateur Roles/Outils Droits
Mediawiki Prod
Droits
Mediawiki Test
Droits
serveur prod et test (vps)
(et mysql)
Utilisateur:Remy40 elgg, github ... oui oui
Utilisateur:Porc oui oui
Utilisateur:Pierro78 mediawiki, abonnement du vps de prod, redmine oui oui oui (test et prod)
Utilisateur:Champagne mediawiki, phpbb oui utilisateur créé pour acces aux backups/sources
Utilisateur:Catherine_vergnaud mediawiki, abonnement du vps de test oui oui (test et prod)
Utilisateur:Grumeau serveur, phpbb oui (test et prod)
Utilisateur:Fchapeau phpbb, serveur oui (test et prod)
Utilisateur:Nicos08 (Nicolas Camille Pierrot) serveur test
Ataraxia GentilVirus serveur test via sudo
Utilisateur:Swergas (Quentin Grimaud) LiquidFeedback, mumble serveur prod et test via sudo
Léo Xqua helios serveur test via sudo
Utilisateur:Hydronium https://www.facebook.com/msouchon domaine gentilsvirus.org serveur test et prod via sudo
Utilisateur:PierreYves domaine democraticseeds.org oui oui serveur prod via sudo


6.1 creer un utilisateur avec les droits "sudo su"

root@projetgentilsvirus2:/# USER=nicolas ; useradd ${USER} -G sudo ; mkdir /home/${USER} ; chown ${USER} /home/${USER} ; passwd ${USER}

6.1.1 donner le droit "sudo su" à un user déja existant

usermod -a -G sudo quentin

=> cela "met" le user "quentin" dans le group sudo

6.1.2 voir si un user est dans le group "sudo"

root@projetgentilsvirus2:~# groups quentin
quentin : quentin sudo

6.1.3 lister les groups de tous les users

root@projetgentilsvirus2:~# groups `cat /etc/passwd | cut -d":" -f1`

7 l'hebergement du serveur par un hebergeur

7.1 Maintenance du serveur par l hebergeur

voir MAINTENANCE

7.2 information sur le vps

le vps est "hosté" sur le noeud "chicago vps49"

des infos sur l'hébergement (chicagovps) sur hebergements

8 Gestion du domaine / des URLs

Discussion : annonce facebook et reseau social

9 outils divers

9.1 phpmyadmin : http://projetgentilsvirus.ouvaton.org/phpmyadmin

http://projetgentilsvirus.ouvaton.org/phpmyadmin

/!\ Outil suspendu (ligne commentée « Alias /phpmyadmin /usr/share/phpmyadmin » dans /etc/apache2/conf.d/phpmyadmin.conf) pour se prémunir du risque de bruteforce.

9.2 interface graphique pour acceder au serveur de test : nomachine nx client

10 Optimisations mediawiki

http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast

crontab : voir scripts /root/bin/smwrefreshdata.sh

10.1 Cache

Lire http://www.mediawiki.org/wiki/Manual:File_cache et http://www.mediawiki.org/wiki/Manual:$wgCacheEpoch pour invalider le cache

crontab : voir scripts

  • /root/bin/mwRefreshFileCache.sh (pour rebuildFileCache.php)
  • /root/bin/smwrefreshdata.sh (pour rebuildFileCache.php --overwrite => inutile à cause du touch LocalSettings.php !)


11 Upgrades mediawiki

11.1 de 1.20.2 en 1.23.5

discussion : https://www.facebook.com/groups/235514003246557/permalink/562336380564316/

11.2 de 1.19.1 vers 1.20.2

fait, apparemment pas de pb

discussion : https://www.facebook.com/groups/235514003246557/permalink/272661759531781/

12 communication pour les sysadmins

13 journal sur le fonctionnement du serveur, les changements effectués, etc ...

(commencer vos remarques en mettant "4 ~ :" "~~~~ :" pour les signer ...)

Hydronium (discussion) 8 juillet 2014 à 06:47 (CEST) : désactivation de phpmyadmin, transfert du ndd gentilsvirus.org chez OVH, création des sous-domaines plateforme-tests.gentilsvirus.org, wiki.plateforme-tests.gentilsvirus.org et ateliersconstituants.gentilsvirus.org (cette dernière adresse concerne ce projet)

Pierro78 (discussion) 16 juin 2014 à 22:26 (CEST) : suite a une fausse manip j ai reboote le serveur hier ;)

Pierro78 (discussion) 18 mai 2014 à 12:53 (CEST) : Ajout des licences pour l upload des fichiers : MediaWiki:Licenses (infos sur Discussion_MediaWiki:Licenses )

Hydronium (discussion) 8 mars 2014 à 15:17 (CET) : Ajout de Rutube dans l'extension EmbedVideo, dans les modèles Video et ShowFicheVideo ainsi que dans les modèles A_V, AF_V etc. (cf. cette note). Modification de l'attribut Service.

Pierro78 (discussion) 28 juillet 2013 à 14:39 (CEST) : upgrade avec https://semantic-mediawiki-bundle.googlecode.com/files/SemanticBundle-20130226.tgz ( Semantic MediaWiki Version 1.8.0.4 )

ne pas oublier d upgrader de "$smwgDefaultStore = 'SMWSQLStore2';" en SMWSQLStore3 : https://semantic-mediawiki.org/wiki/Help:Installation#Upgrading_existing_installations

Pierro78 (discussion) 23 juin 2013 à 13:46 (CEST) : Extension SecureHTML ajoutée

AIDE et infos : Thread:Discussion:CarteDesGVsEtGroupesGV/ajouter du html dans du texte via SecureHTML

Pierro78 (discussion) 10 février 2013 à 13:49 (CET) : Upgrade du mediawki de 1.19.1 en 1.20.2

discussion sur https://www.facebook.com/groups/235514003246557/permalink/272661759531781/

Pierro78 (discussion) 25 janvier 2013 à 13:04 (CET) : crontab : ajout d un script smwrefreshdata.sh s executant ttes les nuits à 4h40

... certaines données semantiques ne semblaient pas à jour, plus d'infos sur : http://semantic-mediawiki.org/wiki/Help:Repairing_SMW%27s_data

Pierro78 (discussion) 13 janvier 2013 à 14:28 (CET) : ajout statcounter dans le LocalSettings.php

discussion : Thread:Discussion:Accueil/dernières_visites_sur_ce_site

Pierro78 (discussion) 12 janvier 2013 à 18:10 (CET) : installation APC cache et $wgUseFileCache = true;

optimisations sur http://www.mediawiki.org/wiki/User:Aaron_Schulz/How_to_make_MediaWiki_fast

Pierro78 (discussion) 24 novembre 2012 à 00:34 (CET) : Ajout extension

http://www.mediawiki.org/wiki/Extension:DynamicPageList_%28third-party%29 pour afficher les pages liées à une autre page, exemple : Liberté_politique_et_individuelle

Pierro78 (discussion) 26 novembre 2012 à 18:29 (CET) : ds LocalSettings.php

$wgDefaultUserOptions['numberheadings'] = 1;
=> les "titres de sections" des pages sont automatiquement numérotées

Pierro78 (discussion) 8 novembre 2012 à 23:52 (CET) : qd on saisissait http://projetgentilsvirus.ouvaton.org/index.php/Autre_probl%C3%A8me_essentiel_:_La_monnaieP apache faisait un core dump ... apres un "ulimit -s 88888 ; /etc/init.d/apache2 restart" cela marche ... (le "ulimit -s" valait 10240 auparavant)

Pierro78 (discussion) 8 octobre 2012 à 16:39 (CEST) : Activation de l'antibot (antispam) QuestyCaptcha de l'extension ConfirmEdit : https://www.mediawiki.org/wiki/Extension:ConfirmEdit#QuestyCaptcha

Pierro78 (discussion) 2 septembre 2012 à 23:37 (CEST) : FS plein. plein de sendmail (user smmsp) qui tournent => je les ai tous tués et le FS s est vidé

il reste des gros fichiers ds /var/spool/mqueue-client (cf http://linuxfr.org/forums/linuxredhat/posts/pb-de-disque-qui-se-remplit)
je les consulte : en fait c est mon script de backup ( /root/bin/wikibackup.sh ) qui ne trouvait pas les fichiers à supprimer et donc envoi de (pleins de) mails bidon ... script corrigé ...

Pierro78 (discussion) 8 juillet 2012 à 14:53 (CEST) : Installation drupal de test : http://projetgentilsvirus.ouvaton.org/drupal-7.14/

Pierro78 (discussion) 6 juillet 2012 à 14:52 (CEST) : installation mw 1.18.4 avec l'extension WYSIWYG : http://projetgentilsvirus.ouvaton.org/mediawiki-1.18.4/

Pierro78 (discussion) 2 juillet 2012 à 23:55 (CEST) : installation https://www.mediawiki.org/wiki/Extension:LiquidThreads

Pierro78 (discussion) 2 juillet 2012 à 20:34 (MSK) : désactivation du "wiki-forum" (awc) suite à vote : https://www.facebook.com/groups/gentilsvirus/permalink/453984507959448/

Pierro78 (discussion) 2 juillet 2012 à 18:07 (MSK) : chicagovps m'a répondu en disant que cela devrait etre OK maintenant, et effectivement cela a l'air d'etre le cas ...

Pierro78 (discussion) 2 juillet 2012 à 13:29 (MSK) : Ce matin vers 11h le serveur a été inaccessible ou trés lent pendant qqs minutes (10-15 je pense) - j'ai fait un ticket à chicagovps ...

Outils personnels
Espaces de noms

Variantes
Navigation
Lister ou Créer des vidéos / documents / sites web / initiatives / demandes d'aide
Communauté : Réseau social, Mumble, Radio, IRC, Evénements, ...
Groupes ou Pages facebook non locaux - twitter - google+ - Bookmarks sociaux
Groupes locaux - cartes
Boîte à outils
Articles en chantier
Cette plateforme web