Voici comment mettre en place un déploiement automatique depuis Bitbucket vers votre hébergement mutualisé OVH, en toute sécurité via SSH, sans FTP, sans mot de passe.
Vous devez avoir un hébergement chez ovh qui vous permet d'accéder en SSH au serveur mutualisé bien sur et avec git installé dessus.
Génère une paire de clés SSH pour Bitbucket → OVH
Bitbucket a besoin d'une paire de clés SSH pour pouvoir se connecter sur votre hébergeur mutualisé OVH afin de pouvoir exécuter les commandes définies dans le pipeline de BitcBucket.
Sur votre ordinateur local, dans un terminal :
ssh-keygen -t rsa -b 4096 -C "bitbucket-pipeline" -f bitbucket_ovh_key
Cela crée deux fichiers :
bitbucket_ovh_key → clé privée (à copier dans Bitbucket)
bitbucket_ovh_key.pub → clé publique (à mettre sur OVH)
Ajoute la clé publique sur OVH
Connectez-vous à votre hébergement OVH :
ssh xxx@ssh.clusterxxx.hosting.ovh.net
Puis ajoute la clé publique :
nano ~/.ssh/authorized_keys
Colle le contenu de bitbucket_ovh_key.pub (une seule ligne).
Ajoute la clé privée dans Bitbucket Pipelines
Dans votre repo Bitbucket :
- Va dans Repository settings → Pipelines > SSH Keys
- Clique sur Add SSH key
- Colle le contenu de bitbucket_ovh_key (la clé privée) dans Private Key
- Colle le contenu de bitbucket_ovh_key/pub (la clé public) dans Public Key
- Très important : ajoute aussi le host OVH dans "Known hosts": ssh.clusterxxx.hosting.ovh.net
- Clique sur le boutton Fetch et ensuite add know host
Permets à OVH d’accéder à Bitbucket (git pull)
Maintenant que la communication entre le pipeline bitbucket et ovh est prêt, il reste aussi à permettre notre hébergement OVH de récupérer les changements depuis notre repository remote sur bitbucket.
Sur OVH, génère une deuxième paire de clés pour que le serveur puisse faire git pull :
ssh-keygen -t rsa -b 4096 -C "ovh-to-bitbucket" -f ~/.ssh/id_rsa_bitbucket
Ajoute cette config SSH :
nano ~/.ssh/config
Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa_bitbucket
IdentitiesOnly yes
Ensuite, va sur Bitbucket → Account Settings > SSH Keys (https://bitbucket.org/account/settings/ssh-keys/)
- Clique sur Add Key
- Colle le contenu de ~/.ssh/id_rsa_bitbucket.pub de votre host OVH
- Teste :
Vous devez voir :ssh -T git@bitbucket.orglogged in as xxxxx - Vous pouvez aussi faire un
git pull origin master
Crée le fichier bitbucket-pipelines.yml
Maintenant que la configuration est en place entre bitbucket et votre hébergeur web, on peut mettre en place la configuration du pipeline qui sera lancé automatiquement à chaque fois qu'on réalise un push sur le remote repository.
À la racine de votre repo Bitbucket, crée ce fichier :
# bitbucket-pipelines.yml
image: atlassian/default-image:3
pipelines:
branches:
master:
- step:
name: Déploiement sur OVH
script:
- echo "Ajout du serveur OVH au known_hosts"
- ssh-keyscan -p 22 ssh.clusterxxx.hosting.ovh.net >> ~/.ssh/known_hosts
- echo "Connexion SSH et pull Git"
- ssh xxxx@ssh.clusterxxx.hosting.ovh.net -p 22 'cd /home/xxxx/www/ && git pull origin master'
Ce script se connectera à OVH et exécute git pull origin master pour mettre à jour votre site automatiquement.