Si vous souhaitez utiliser une clé ssh dans le cadre de votre construction, vous pouvez ajouter la clé ssh au magasin secret de l'aide la commande suivante:
drone secrets add --image=<image> <repo> SSH_KEY @/path/to/.ssh/id_rsa
Notez que la notation @
est similaire à friser. La raison de cette fonctionnalité est que la création du secret à l'aide de cat
(ou d'un autre type de canal) semble entraîner le téléchargement d'un fichier mal formé.
Une fois que le fichier est ajouté, vous pouvez faire référence dans votre YAML:
pipeline:
image: busybox
environment:
- SSH_KEY: ${SSH_KEY}
commands:
- mkdir /root/.ssh && echo "$SSH_KEY" > /root/.ssh/id_rsa && chmod 0600 /root/.ssh/id_rsa
Notez qu'il est important de chat SSH_KEY
entre guillemets afin de préserver de nouvelles lignes.
Vous devrez peut-être également ajouter l'hôte à known_hosts
afin d'éviter les problèmes de clé hôte; changer bitbucket.org
à tout hôte vous tirez de la suivante, et l'ajouter à commands
(après la commande ci-dessus, afin d'assurer que le répertoire /root/.ssh
existe):
ssh-keyscan -H bitbucket.org >> /root/.ssh/known_hosts
(Vous aurez également besoin installer openssh-client ou équivalent, si ce n'est pas déjà disponible dans votre image build.)
et par "convienient" Je veux dire évidemment sans avoir à taper mkdir,> ou chmod
Nope
yup, c'est exactement ce que je faisais. Puisque vous dites que cela ne peut être fait autrement, il est bon d'obtenir une confirmation. – fommil
Drone possède un script d'initialisation (en quelque sorte) qui effectue l'installation de l'environnement. Je vais certainement envisager de chercher 'SSH_KEY' et de créer automatiquement le répertoire' .ssh' et le fichier 'id_rsa' dans le futur. –
ohh, cela cite autour du SSH_KEY. Merci pour cette réponse! –