Bonjour, bonsoir,
Depuis hier, je m'initie à Capistrano afin de déployer facilement un projet que je fait actuellement et qui a besoin de mises à jour régulières.
J'utilise un dépot privé (bitbucket.org) et mon serveur de production est sur OVH. Capistrano arrive à se connecter sur OVH, le problème c'est que le dépot est privé et je n'ai trouvé nullepart un moyen de récupérer les fichiers d'un dépot privé, ni en commentaire dans la config et ni sur le tuto de Grafikart. Capistrano fonctionne bien en revanche si le dépot est public.
Suis-je obliger de passer mon dépot en public ou une solution est possible ?
Si oui, comment faire ?
Capistrano va se connecter en ssh sur ton serveur.
Dans un second temps ton serveur ira faire un git clone de ton dépot =) (dans les commandes lancées par capistrano et donc par ton serveur)
C'est pour ca que ton serveur a besoin d'une clé ssh pour se connecter a ton dépot bitbucket =)
Ah aussi je vois que tu te connecte en https sur le dépot, il te demandera un iddentifiant et mot de passe du coup (pas possible avec le script)
Pour éviter ca tu utilise l'addresse ssh en ayant au préallable mis la clé de ton serveur dans ton compte bitbucket
J'espère avoir été assez clair, n'hésite pas a poser des questions si tu comprends pas =)
Fin du topic...
Capistrano c'est tellement trop de config et trop de problème pour qu'au final rien ne fonctionne...
J'ai finalement trouvé que des solutions de 2 ou 3 ans qui ne fonctionnent plus avec cet version de Capistrano.
Ca m'énerve d'un côté de ne pas avoir réussi à mettre en place cet outil car cela m'aurait vachement simplifié la vie. Je m'attendais à un outil puissant. A la place, c'est une usine à gaz --'. Trop de config à n'en rien comprendre parfois, les dossiers mélangés avec les dossiers du projet et une doc a moitié complète...
Je vais essayer Dploy à la place... J'espère que celui-ci au moins fonctionnera.
Merci Benares d'avoir passer beaucoup de temps pour m'aider ;)
Salut, tbm
De mon coté j'ai récemment utilisé envoy avec un dépot privé github. Pour que ca passe j'ai créé un compte de déploiement sur mon serveur ovh, j'ai crée une clé ssh pour ce compte et l'ai ajoutée sur github.
J'utilise ce compte pour déployer.
ca t'aidera peut 6être =)
Je viens malheureusement de voir que Envoy fonctionne uniquement sous Mac/Linux. Mon PC est trop lent du coup je reste sur Windows et puis je vais prochainement le changer.
Il n'existe vraiment pas de solutions sur Capistrano pour un répertoire privé ?
Tu peut aussi adapter Capistrano pour le dépôt privé je pense, avec la méthode que je t'ai dite au dessus
il faut que ton compte user sur le serveur ai une clef ssh liée au dépôt git (ou bitbucket) que tu veut utiliser =) sur bitbucket tu peux en ajouter dans ton compte =)
Je crois ne pas bien comprendre comment fonctionne Capistrano.
Qui va chercher les fichiers dans le dépot, Capistrano ou mon serveur de production ?
Peux-tu m'expliquer en détails si cela ne te dérange pas ^^
J'ai l'impression de ne plus trop comprendre comment ça fonctionne. Et je n'arrive pas à cerner comment fonctionne l'authentification avec SSH car mis à part une clé et entrer un mot de passe, c'est tout ce que j'ai fais.
Voici mon deploy.rb
lock '3.4.0'
set :application, 'MonAppli'
set :repo_url, 'https://MonCompte@bitbucket.org/MonCompte/nomdugit.git'
Et voici mon production.rb
server 'ftp.cluster011.ovh.net', user: 'nomcompteFTP', roles: %w{app web}, ssh_options: {
user: 'nomcompteFTP', # overrides user setting above
keys: %w(/homez.2028/nomcompteFTP/.ssh/id_rsa.pub),
forward_agent: false,
auth_methods: %w(publickey password),
# password: ''
}
Il faut rajouter la même clé sur Bitbucket ?
Ok, donc il faut que je mette le lien ssh:/ et que je copie colle la clé OVH pour l'ajouter chet Bitbucket ?
Merci pour l'explication, j'ai l'impression de mieux comprendre.
J'essaie.
Cela semble fonctionner.
Merci beaucoup ;)
J'ai un autre problème maintenant car OVH semble ne pas autoriser l'éxecution de fichier .sh :/
est ce que tu as fait un chmod u+x sur le .sh? =)
Sinon tu peut mettre le sujet en résolu ca aidera peut être d'autres personnes par la suite ;)
Déja en parcourant les répertoires, je ne trouve meme pas de dossier tmp alors qu'il dit qu'il l'a créer mais n'arrive pas à l'executer en fait.
En suivant la solution d'un autre sujet, j'ai crée un dossier tmp dans mon HOME (nommé home.5454 sur OVH) et ai ajouté un set :tmp_dir ''chemin vers le nouveau dossier tmpdir" et il n'est pas content. Il essaie toujours d'aller dans '/tmp/MONPROJET/git-ssh.sh
J'ai finalement trouvé la solution mais j'ai une fois de plus un autre problème.
OVH ne souhaite décidément pas se laisser faire avec Capistrano...
Oui je suis sur un serveur mutualisé. J'ai un hébergement pro chez OVH.
Maintenant le problème c'est qu'après 5minutes, il me m'engueule :
Connect to host bitbucket.org port 22 : Connection timed out fatal : The remote end hung up unexpectedly
Je crois définitivement que j'irai plus vite à déployer en utilisant FileZilla. C'est lourd mais moins lourd que de config tout ça pour avoir au final... rien.
Si jamais tu as une solution x)
Le truc c'est que ce genre de technos est fait pour être utilisé sur un dédié (du moins c'est ce qu'il me semble =/)
pour moi c'est parce que tu utilise un hébergement mutualisé, mais je me goure peut être.
Désolé mais je sèche aussi la =/
Bon ben après avoir contacté OVH, ils m'on dit que seul les connexions HTTPS étaient autorisés. Les connexions SSH vers l'éxtérieur non.
Du coup j'ai basculé sur l'URL HTTPS de bitbucket et j'ai basculé temporairement mon dépot en public et ça fonctionne ! Du moins, c'est ce que me dit Capistrano...
Après de longs messages me disant successful, j'ai bien des dossiers "shared", "releases" et "current" de créer. Mais quand je push une petite modif pour tester, que une fois push je fais "cap production deploy", un dossier dans "releases" se crée mais aucune modification ne s'est faite dans les dossiers du projet en ligne.... J'ai ajouté une méthode et il ne me l'a pas prise en compte.
J'ai un "failed" pour la commande :
-f /homez.2028/moncompte/www/current/REVISION
et aucune solution correspondant à la version actuel de Capistrano trouvé sur Internet...