admin:services:phabricator
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
admin:services:phabricator [2015/06/07 10:30] – [Configuration du VHOST] vhost bertrand.bonnefoy-claudet | admin:services:phabricator [2016/08/07 00:37] – [Gestion des logs des démons] david.sinquin | ||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
===== Administration ===== | ===== Administration ===== | ||
+ | ==== Modification des Dashboards ==== | ||
+ | Pour modifier un dashboard, notamment le message " | ||
+ | - rechercher Dashboard dans la barre de recherche | ||
+ | - cliquer sur manage dashboard en bout de ligne (c'est l' | ||
+ | - éditer le message de bienvenue en cliquant sur le crayon | ||
+ | Note : il faut posséder les droits admins pour modifier ces paramètres | ||
+ | Note 2 : ajouter un lien vers un projet dans le message de bienvenue améliore grandement la convivialité. | ||
==== Redémarrage des démons ==== | ==== Redémarrage des démons ==== | ||
Ligne 24: | Ligne 31: | ||
Ensuite, pour le supprimer on lance : | Ensuite, pour le supprimer on lance : | ||
- | <code bash> | + | <code bash> |
Et on valide malgré le message. | Et on valide malgré le message. | ||
+ | |||
+ | |||
+ | Sinon autre possibilité de manière plus globale : utiliser conduit (l'api de phabricator). | ||
+ | https:// | ||
+ | |||
+ | On tape le nom (par example [" | ||
===== Mise à jour ===== | ===== Mise à jour ===== | ||
Ligne 31: | Ligne 44: | ||
Pour mettre à jour, on peut suivre la partie de la doc d' | Pour mettre à jour, on peut suivre la partie de la doc d' | ||
- | Cela revient à faire (en faisant par sécurité une coupure un peu plus longue) | + | On peut aussi laisser |
- | <code bash> | + | <file bash / |
+ | # | ||
+ | |||
+ | GIT_ROOT="/ | ||
+ | LOG_FILE="/ | ||
+ | |||
+ | # Redirection vers un fichier de log et affichage | ||
+ | exec > >(tee -a " | ||
+ | |||
+ | IFS=";" | ||
+ | |||
+ | echo " | ||
+ | |||
+ | if [ ! -d ${GIT_ROOT} ]; then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if [ ! -w ${GIT_ROOT} ]; then | ||
+ | echo " | ||
+ | exit 2 | ||
+ | fi | ||
+ | |||
+ | if [ ! -x ${GIT_ROOT}/ | ||
+ | echo " | ||
+ | exit 3 | ||
+ | fi | ||
+ | |||
+ | echo -n " | ||
a2dissite task.conf | a2dissite task.conf | ||
service apache2 reload | service apache2 reload | ||
- | cd / | + | echo " |
+ | |||
+ | echo -n " | ||
+ | cd ${GIT_ROOT}/ | ||
./bin/phd stop | ./bin/phd stop | ||
- | cd ../ | + | echo " |
- | cd ../ | + | |
- | cd ../ | + | echo "Mise à jour des dépôts git : " |
- | ./ | + | echo -n "- arcanist :" |
+ | cd ${GIT_ROOT}/arcanist/ | ||
+ | git pull | ||
+ | echo " | ||
+ | echo -n "- libphutil :" | ||
+ | cd ${GIT_ROOT}/libphutil/ | ||
+ | git pull | ||
+ | echo " | ||
+ | echo -n "- phabricator :" | ||
+ | cd ${GIT_ROOT}/ | ||
+ | git pull | ||
+ | echo " | ||
+ | |||
+ | echo -n "Mise à jour des schéma de la BdD :" | ||
+ | cd ${GIT_ROOT}/ | ||
+ | ./ | ||
+ | echo " | ||
+ | |||
+ | echo -n " | ||
./bin/phd start | ./bin/phd start | ||
+ | echo " | ||
+ | |||
+ | echo -n " | ||
a2ensite task.conf | a2ensite task.conf | ||
service apache2 reload | service apache2 reload | ||
- | </ | + | echo " |
+ | fin=$(date +' | ||
+ | echo "Fin de la mise à jour, temps total $((fin - debut))s." | ||
+ | </ | ||
+ | Il est appelé par le script suivant via la crontab : | ||
+ | <file bash / | ||
+ | #!/bin/bash | ||
+ | |||
+ | / | ||
+ | if [ $? -eq 0 ]; then | ||
+ | / | ||
+ | fi | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour gérer les logs, on crée un fichier de configuration pour logrotate comme suit : | ||
+ | <file yaml / | ||
+ | # Conf pour les màj de phabricator | ||
+ | |||
+ | / | ||
+ | / | ||
+ | weekly | ||
+ | missingok | ||
+ | rotate 4 | ||
+ | compress | ||
+ | notifempty | ||
+ | copytruncate | ||
+ | } | ||
+ | </ | ||
===== Installation ===== | ===== Installation ===== | ||
Ligne 77: | Ligne 170: | ||
git clone https:// | git clone https:// | ||
</ | </ | ||
+ | |||
==== Configuration de PHP ==== | ==== Configuration de PHP ==== | ||
Ligne 144: | Ligne 238: | ||
On crée un utilisateur en base de données (via le compte root) : | On crée un utilisateur en base de données (via le compte root) : | ||
<code mysql> | <code mysql> | ||
- | CREATE USER ' | + | CREATE USER ' |
- | GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, SHOW VIEW ON `phabricator\_%`.* TO ' | + | GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, SHOW VIEW ON `phabricator\_%`.* TO ' |
+ | CREATE USER ' | ||
+ | GRANT ALL PRIVILEGES ON `phabricator\_%`.* TO ' | ||
</ | </ | ||
Ligne 152: | Ligne 248: | ||
./ | ./ | ||
./ | ./ | ||
- | ./ | + | ./ |
+ | ./ | ||
</ | </ | ||
Ligne 177: | Ligne 274: | ||
Cependant, si l'on veut autoriser le stockage de fichiers sur disque (et non en base de données), on lancera : | Cependant, si l'on veut autoriser le stockage de fichiers sur disque (et non en base de données), on lancera : | ||
<code bash> | <code bash> | ||
- | mkdir / | + | mkdir -p / |
chown www-data: / | chown www-data: / | ||
./ | ./ | ||
Ligne 184: | Ligne 281: | ||
==== Lancement des démons ==== | ==== Lancement des démons ==== | ||
- | Il faut aussi lancer les démons de phabricator | + | Il faut aussi lancer les démons de phabricator. |
- | <code bash>./bin/phd start</ | + | |
+ | Pour qu'ils soient lancés en utilisant un utilisateur différent de root, on le crée et on le défini dans la configuration de pahbricator avant de lancer les démons : | ||
+ | <code bash> | ||
+ | useradd --system -d / | ||
+ | ./ | ||
+ | ./bin/phd start | ||
+ | </ | ||
+ | |||
+ | Pour qu'ils soient lancés automatiquement au démarrage, on ajoute à la crontab : | ||
+ | < | ||
+ | @reboot root / | ||
+ | </ | ||
+ | |||
+ | ==== Gestion des logs des démons ==== | ||
+ | |||
+ | On crée le fichier suivant, pour que logrotate gère les logs des démons qui sont dans un dossier inadapté : | ||
+ | <file yaml / | ||
+ | # Conf pour les logs de phabricator | ||
+ | |||
+ | / | ||
+ | daily | ||
+ | missingok | ||
+ | rotate 7 | ||
+ | compress | ||
+ | notifempty | ||
+ | create 740 phd phd | ||
+ | } | ||
+ | </ | ||
+ | ===== Configuration d' | ||
+ | |||
+ | Afin d' | ||
+ | L’installation est simple : cf [[https:// | ||
+ | |||
+ | Elasticsearch écoute de base sur '' | ||
+ | |||
+ | Après avoir activé le service au démarage (avec '' | ||
+ | |||
+ | Il suffit de changer les configurations de phabricator avec les commandes: | ||
+ | <code bash>/ | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Enfin on execute, pour créer les index : | ||
+ | <code bash>/ | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | A partir de là on peut optimiser elasticsearch, | ||
+ | Cela se fait via curl : | ||
+ | <code bash> | ||
+ | Avec dans notre cas, un fichier mapping.json suivant. | ||
+ | <code javascript> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ] | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ] | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ] | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Puis pour reindexer les objects : | ||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
===== Sauvegardes ===== | ===== Sauvegardes ===== | ||
Ligne 198: | Ligne 441: | ||
La restauration efface toutes les données et insère les anciennes. | La restauration efface toutes les données et insère les anciennes. | ||
- | Le script lancé via la crontab tous les jours à 3:00 est le suivant : | + | Le script lancé |
<file bash / | <file bash / | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 239: | Ligne 482: | ||
</ | </ | ||
+ | Pour gérer les logs on ajoute à la configuration de logrotate le fichier suivant : | ||
+ | <file yaml / | ||
+ | # Conf pour les backups de phabricator | ||
+ | |||
+ | / | ||
+ | weekly | ||
+ | missingok | ||
+ | rotate 4 | ||
+ | compress | ||
+ | notifempty | ||
+ | copytruncate | ||
+ | } | ||
+ | </ |
admin/services/phabricator.txt · Dernière modification : 2019/11/27 02:05 de david