Gitlab CI comment déployer une application via SSH
Je suis Hébergé à l'aide de Gitlab pour héberger mes dépôts Git, et plus récemment, j'ai été en utilisant pour construire/déployer, PHP, Java et les applications de serveurs.
Ce que je voudrais faire est de une fois une construction est terminée, le déploiement de l'application à l'aide de SSH. Parfois, cela peut être juste le téléchargement du contenu de la version finale (fichiers PHP) à un serveur via SSH, ou d'autres fois, il peut être télécharger un compilé .fichier jar et l'exécution d'une commande sur le serveur distant pour redémarrer un service.
J'ai créer mon propre conteneur Docker comme un environnement de construction, cela inclut des choses telles que Java, PHP, Compositeur, et Maven tous que j'ai besoin pour les versions à compléter. J'utilise cette image pour exécuter des builds.
Ce que je voudrais savoir, comment puis-je faire un SSH sur un serveur externe dans d'autres pour effectuer les commandes de déploiement que je peux préciser dans mon gitlab-ci.fichier yaml?
OriginalL'auteur SheppardDigital | 2017-03-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez stocker votre clé SSH comme un secret variable à l'intérieur d'
gitlab-ci.yaml
et de l'utiliser pendant le processus de construction d'exécuter des commandes SSH, pour plus de détails, veuillez vous reporter à notre documentation ici.Une fois que vous avez un accès SSH, vous pouvez alors utiliser des commandes comme
rsync
etscp
pour copier des fichiers sur votre serveur. J'ai trouvé un exemple de cela dans un autre post ici que vous pouvez utiliser comme référence.S'il vous plaît laissez-moi savoir comment vous allez.
Merci,
Adam
Ingénieur De Service @ Gitlab
OriginalL'auteur Adam Mulvany
Juste comme exemple, permet de supposer que vous avez un serveur avec des exigences déjà installé et que vous souhaitez déployer sur le serveur à l'aide de ssh.
Tout d'abord, dans cet exemple, nous utilisons ubuntu image. Notez également que nous sommes à l'aide de certains gitlab secret variables. $QA_URL, $PRIVATE_KEY, $DB_CONNECTION, $QA_SERVER.
Les plus importants sont $PRIVATE_KEY et QA_SERVER. La clé privée est l'un vous devez vous authentifier avec le QA_SERVER (si vous êtes à l'aide de la clé privée). Et, évidemment, QA_SERVER est l'adresse que vous souhaitez déployer votre code.
Dans before_script ce que nous faisons est la création et l'ajout de clés ssh, nous sommes également la désactivation de la ligne de commande pour demander un mot de passe.
'StrictHostKeyChecking no'
Ajouter la clé ssh pour l'agent.
Pas nécessaire: cette ligne utilise le protocole ssh pour la suppression d'un fichier dans /var/www/html
scp -P22 -r . ubuntu@"$QA_SERVER": "/var/www/html
Enfin, les fichiers sont copiés dans le répertoire courant dans le répertoire /var/www/html
C'est exact, nous devons d'abord suivre la normale des clés ssh génération, place publique sur le serveur de la copie privée dans gitlab variable. Dans cette vidéo de mon tutoriel, je vais parler CI à l'aide seulement de shh Gitlab CI/CD Tutoriel, la Douleur SSH (Pour cette question après la minute 7). Concernant Gitlab parce que les clés SSH génération est comme d'habitude.
OriginalL'auteur Johan Durán
Traiter avec ssh sur gitlab.com n'est pas simple.
C'est pourquoi j'ai écrit un SSH aide pour .gitlab-ci.yml.
Vous pouvez le vérifier ici https://gitlab.com/x4v13r/gitlab-ci
Juste comprennent: à votre .gitlab-ci.yml et alors vous pouvez aller avec:
OriginalL'auteur Xavier D