Déployer chaque version d'un serveur à l'aide de Gitlab CI
J'ai mis en place mon propre serveur Gitlab avec un projet et une Gitlab coureur configuré pour cela. Je suis nouveau serveur d'intégration continue et, par conséquent, ne savent pas comment atteindre les objectifs suivants.
Chaque fois que je m'engage à la branche principale de mon projet, je voudrais déployer le référentiel à un autre serveur et exécuter deux shell-commandes (npm install
et forever restartall
)
Comment puis-je faire? Ai-je besoin d'un coureur sur la machine sur laquelle le projet est déployé aussi bien?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser gitlab-ci et gitlab-coureur [coureurs.ssh] pour déployer un ou plusieurs serveurs.
le flux:
vous devez vous inscrire gitlab-coureur de gitlab-ci et définir la balise de delpoyServer sur gitlab web .
/etc/gitlab-runner/config.toml:
le coureur.ssh moyens, le coureur va se connecter en
${the_destionation_of_deployServer_IP1}
et${the_destionation_of_deployServer_IP2}
, puis cloner le projet debuilds_dir
.écrire le fichier yml
par exemple:
.gitlab-ci.yml
définir le votre gitlab-coureur de
delpoyServer1
etdelpoyServer2
balises dans 'http://your.gitlab.server/ci/admin/runners'.gitlab-ci.yml
fichier dans votre projet, choisissez un coureur avec les tags:deployServer1
oudeployServer2
;gitlab-runner
avec le deployServer1 balise de connexion dans${the_destionation_of_deployServer_IP1}
et${the_destionation_of_deployServer_IP2}
avec ssh , cloner le projet debuilds_dir
, puis d'exécuter le script: npm install && jamais restartall.lien:
/home/change_me/.ssh/id_rsa
. Avant cela, vous devez ajouter la clé publique de contenu pour~/.ssh/authorized_keys
fichier dans le coureur du serveur. La clé ssh est entre coureur serveur et deloy serveurs :(private ssh key in runner server) --> (deploy servers with ssh public key)
identity_file = "/home/user_name/.ssh/id_rsa"
. Quand j'ai mis la ligne précédente, le coureur ne fonctionne pas et afficher le même message d'erreur, dans mon/etc/ssh/sshd_config
fichier j'ai misAuthorizedKeysFile /home/user_name/.ssh/authorized_keys
etHostKey /home/user_name/.shh/id_rsa
. Pourquoi le coureur ne fonctionne pas avec le identity_file? im faire quelque chose de mal?failed to remove node_modules/...
. Avez-vous une idée de ma situation?Vous devriez être en mesure d'utiliser gitlab-ci.yml documentation pour ajouter un distinct
build
étape dans votre.gitlab-ci.yml
fichier.Vous aurez besoin d'une sorte de déployer le service (comme
capistrano
ou similaire), ou un webhook qui va initier un déploiement.I. e. quelque chose comme:
Gitlab CI va itérer sur chaque étape, il trouve, en les exécutant séquentiellement. Si une étape passe, puis il se déplace vers le prochain.
Malheureusement Gitlab CI ne peut pas faire de déploiement directement (bien que vous puissiez installer le
chef de projet
Ruby Gem et l'appeler dans votre.gitlab-ci.yml
fichier comme ceci:par exemple)
$HEROKU_STAGING_API_KEY
puis dans Settings -> CI/CD-rom de votre projet, ajoutez un environnement protégé variable.