2016-10-05 1 views
5

Voici le flux de travail que je veux atteindre:Bitbucket Pipeline comment configurer l'agent ssh pour déployer sur un serveur distant

  1. engager Code
  2. bitbucket test de fonctionnement du pipeline sur mon image publique docker
  3. pipeline bitbucket exécute le script ansible à déployer sur mon image publique docker

les 2 premières étapes fonctionne bien, mais voici le problème: Comment/Où devrais-je conserver ma clé privée s pour permettre à sible à ssh à mon serveur distant via l'agent SSH?

Je suis un peu réticent à stocker la clé privée à l'intérieur des paramètres env Pipeline, puisque tout le monde a un accès administrateur à la prise en pension peut le voir.

Il y a une question similaire posée here mais la réponse suggère d'installer les clés sur docker et d'utiliser le repo privé, ce qui est un peu différent du mien.

Répondre

0

J'ai mis en place un processus similaire et utilisé Pipelines variables d'environnement, il y a une case à cocher pour obtenir la valeur de sorte que vous n'avez pas à vous soucier d'autres le visionnement.

La mise en place est assez facile:

  • base64 encode une clé privée et le stocker dans une variable d'environnement dans Bitbucket
  • Commit un fichier « my_known_hosts » à votre base de code qui comprend SSH publique clé de l'hôte distant.

ensuite dans votre fichier bitbucket-pipelines.yml mis en place les known_hosts et la clé:

- mkdir -p ~/.ssh 
- cat my_known_hosts >> ~/.ssh/known_hosts 
- (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa) 

Une documentation complète est disponible ici https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html

2

Vous pouvez maintenant les clés SSH de configuration sous Paramètres de pipeline de telle sorte que vous n'avez pas besoin d'utiliser des variables d'environnement et de les copier dans certains emplacements du conteneur. La clé privée n'est pas affichée du tout.

Sous

Settings -> Pipelines -> SSH keys

Vous auriez besoin d'obtenir la clé publique au dossier des conteneurs de production.