Aller au contenu

Confluence - Opérations#

Confluence#

Autorisation d'une adresse IP spécifique#

Warning

Il existe un référentiel des IPs courantes (les divers VPN Orange par exemple) : ipam.cue. Cette procédure n'est à suivre que pour des adresses uniques et spécifiques à un accès confluence.

Ajouter l'IP à autoriser dans le tableau #ConfluenceSTGIPs du fichier fe_confluence_stg.cue avec le ticket de demande et une description en commentaire.

nix-shell
cd context/pf
trackbone apply -z corp -c fe_confluence_stg

Warning

Il ne doit y avoir que deux modifications, correspondant à l'ouverture du port 80 et du port 443.

Planifier l'opération sur la production : tableau #ConfluenceIPs du fichier fe_confluence.cue avec le ticket de demande et une description en commentaire.

nix-shell
cd context/pf
trackbone apply -z corp -c fe_confluence

Récupération des secrets#

On récupère le compte admin local de Confluence via Vault :

export VAULT_ADDR='https://vault.corp.caascad.com'
vault token lookup || vault login -method oidc

export CONFLUENCE_LOGIN=$(vault kv get -field=username secret/applications/confluence/users/admin)
export CONFLUENCE_PASSWORD=$(vault kv get -field=password secret/applications/confluence/users/admin)

Connexion sur le serveur#

Récupérer la clé SSH corp depuis le vault infra :

export VAULT_ADDR="https://vault.infra-prd.caascad.com"
vault token lookup || vault login -method oidc

rm -vf ~/.ssh/corp.caascad.com.pem
vault read -field private_key_pem secret/zones/fe/corp/keypair | base64 -d > ~/.ssh/corp.caascad.com.pem
chmod -v 400 ~/.ssh/corp.caascad.com.pem

Se connecter sur le serveur Jira :

ssh -i ~/.ssh/corp.caascad.com.pem cloud@confluence-stg.corp.caascad.com
ssh -i ~/.ssh/corp.caascad.com.pem cloud@confluence.corp.caascad.com

(Re)démarrer le service#

Pour (re)démarrer le service confluence :

sudo systemctl restart confluence ; sleep 3s ; sudo systemctl status confluence

Le redémarrage du service confluence peut durer quelques minutes. Il est possible de suivre l'avancement de l'initailisation du service via le log :

sudo tail -f /opt/atlassian/confluence/logs/catalina.out

Logs applicatifs#

Les logs Confluence sont stockés dans :

# Logs Confluence
/opt/atlassian/confluence/logs/
/var/atlassian/confluence/logs/

Opérations via la GUI#

Sauvegarde complète#

Pour sauvegarder complètement tous les spaces Confluence, il faut :

  1. Avoir les droits d'administration
  2. Se positionner dans > Administration Confluence > Configuration générale > Sauvegarder et restaurer
  3. Dans la section Exporter, choisir
    • Inclure les pièces jointes
  4. Cliquer sur Exporter (Et avoir beaucoup de patience)

La durée de l'export dépendant du volume de données, à titre indicatif, pour un export de 1.7Go de données compressées, la sauvegarde dure ~15min.

La sauvegarde xmlexport-<AAAAMMJJ>-<hhmmss>-*.zip est temporairement stockée dans /var/atlassian/confluence/temp/.

Restauration complète#

Note

A rédiger.

Sauvegarder un space#

Pour sauvegarder / exporter complètement un space Confluence, il faut :

  1. Avoir les droits d'administration
  2. Se positionner sur le space à sauvegarder > Espaces > Répertoire des espaces
  3. Dans le menu en bas à gauche > Outils de l'espace > Gestion des contenus > Export
  4. Choisir xml comme format d'export
  5. Puis choisir Exportation complète et cliquer sur Exporter

La durée de l'export dépendant du volume de données, à titre indicatif, pour un export de 550Mo de données compressées, la sauvegarde dure ~4min.

L'export du space Confluence-space-export-<hhmmss>-*.xml.zip est temporairement stockée dans /var/atlassian/confluence/temp/.

A le fin de l'export, il est possible de télécharger cet export via la GUI.

Restaurer un space#

Space léger ≤ 25Mo#

Pour importer un space Confluence ≤ 25Mo, il faut :

  1. Avoir les droits d'administration
  2. Se positionner dans > Administration Confluence > Configuration générale > Sauvegarder et restaurer
  3. Dans la section Charger un fichier d'exportation de site ou d'espace :
    • Cocher Générer l'index
    • Sélectionner votre export à restaurer
    • Cliquer sur Charger et importer (Et avoir beaucoup de patience)

Space lourd > 25Mo#

Pour importer un space Confluence > 25Mo, il faut :

  1. Copier via SCP le fichier d'export sur le serveur confluence (Penser à préfixer le nom de l'export lors de la copie) :
    export CONFLUENCE_SERVER='confluence-stg.corp.caascad.com'
    scp -i ~/.ssh/corp.caascad.com.pem Confluence-space-export-<hhmmss>-*.xml.zip cloud@${CONFLUENCE_SERVER}:FEM-space-export.xml.zip
    
    ssh -i ~/.ssh/corp.caascad.com.pem cloud@${CONFLUENCE_SERVER}
    sudo mv FEM-space-export.xml.zip /var/atlassian/confluence/restore/
    sudo chmod -v 664 /var/atlassian/confluence/restore/FEM-space-export.xml.zip
    
  2. Se positionner dans > Administration Confluence > Configuration générale > Sauvegarder et restaurer
  3. Dans la section Importer à partir du répertoire de base :
    • Cocher Générer l'index
    • Sélectionner votre export à restaurer
    • Cliquer sur Importer (Et avoir beaucoup de patience)

La durée de l'import dépendant du volume de données, à titre indicatif, pour un import de 990Mo de données compressées, la restauration dure ~2min30.

A la fin de l'import, penser à supprimer les données sur le serveur dans /var/atlassian/confluence/restore/

Base de données#

Connexion#

Pour se connecter à la base de données MySQL, il faut utiliser le compte système root :

sudo -i
mysql confluencedb

Problèmes connus#

Perte de privilèges sur les procédures stockées MySQL#

Description :

Le déploiement de Percona dans les scripts (Ansible) de déploiement Confluence n'est pas idempotent, ce qui se traduit par :

  • Suppression des privilèges associées aux procédures stockées MySQL
  • Création / édition de page Confluence impossible (Access Denied)
  • Présence d'erreurs dans les logs applicatifs Confluence du type :
    2023-12-14 00:48:28,360 WARN [http-nio-8080-exec-1] [confluence.impl.hibernate.ConfluenceHibernateTransactionManager] doCommit Commit failed. Rolling back. Error: Hibernate operation: could
    not execute statement; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: execute command denied to user 'confluence'@'localhost' for routine 'confluencedb.content_pro
    cedure_for_denormalised_permissions'
     -- referer: https://confluence.corp.caascad.com/pages/resumedraft.action?draftId=1234567&draftShareId=a1b2c3d4-0666-45d2-ba11-091f89bf24cd& | url: /rest/tinymce/1/drafts | traceId: 93fa22a
    86cf98ff1 | userName: george.abitbol@orange.com
    

Solution :

  1. Se connecter sur le serveur Confluence
  2. Se connecter avec un compte administrateur sur la base de données MySQL
  3. Vérifier / corriger les privilèges MySQL pour le compte confluence@localhost
    -- List all procedures from confluencedb
    SHOW PROCEDURE STATUS WHERE Db='confluencedb';
    
    -- List current privileges for confluence@localhost
    SHOW GRANTS for confluence@localhost;
    
    -- If necessary, fix these privileges
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON confluencedb.* TO confluence@localhost;
    GRANT EXECUTE,ALTER ROUTINE ON PROCEDURE confluencedb.content_permission_procedure_for_denormalised_permissions TO confluence@localhost;
    GRANT EXECUTE,ALTER ROUTINE ON PROCEDURE confluencedb.content_perm_set_procedure_for_denormalised_permissions TO confluence@localhost;
    GRANT EXECUTE,ALTER ROUTINE ON PROCEDURE confluencedb.content_procedure_for_denormalised_permissions TO confluence@localhost;
    GRANT EXECUTE,ALTER ROUTINE ON PROCEDURE confluencedb.space_permission_procedure_for_denormalised_permissions TO confluence@localhost;
    GRANT EXECUTE,ALTER ROUTINE ON PROCEDURE confluencedb.space_procedure_for_denormalised_permissions TO confluence@localhost;
    FLUSH PRIVILEGES;
    
  4. Valider la correction en essayant de modifier une page Confluence