ドキュメントは、ファイルを秘密の環境変数http://readme.drone.io/0.5/secrets/に設定する方法を示しています
逆に便利な方法はありますか?たとえば、この ssh キーを .ssh/id_rsa で使用できるようにし、すべての適切な権限を付与します。
そして、「便利な」とは、明らかに入力する必要がないことを意味しますmkdir
、>
またはchmod
ドキュメントは、ファイルを秘密の環境変数http://readme.drone.io/0.5/secrets/に設定する方法を示しています
逆に便利な方法はありますか?たとえば、この ssh キーを .ssh/id_rsa で使用できるようにし、すべての適切な権限を付与します。
そして、「便利な」とは、明らかに入力する必要がないことを意味しますmkdir
、>
またはchmod
ビルドの一部として ssh キーを使用する場合は、次のコマンドを使用して ssh キーをシークレット ストアに追加できます。
drone secrets add --image=<image> <repo> SSH_KEY @/path/to/.ssh/id_rsa
@
表記は curl と同様であることに注意してください。この機能が存在する理由は、cat
(または他の種類のパイプ) を使用してシークレットを作成すると、不正な形式のファイルがアップロードされるように見えるためです。
ファイルが追加されたら、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
SSH_KEY
新しい行を保持するために、引用符内でcat することが重要であることに注意してください。
known_hosts
ホスト キーの問題を防ぐために、ホストを追加する必要がある場合もあります。bitbucket.org
以下でプル元のホストに変更し、それをに追加しますcommands
(上記のコマンドの後/root/.ssh
に、ディレクトリが存在することを確認します):
ssh-keyscan -H bitbucket.org >> /root/.ssh/known_hosts
(ビルドイメージでまだ利用できない場合は、openssh-client または同等のものもインストールする必要があります。)
そして、「便利」とは、mkdir、>、またはchmodを入力する必要がないことを意味します
いいえ
ドローンで 0.8+
まず、バイナリの場合は base64 でエンコードする必要があります。
base64 -i yourfile.bin -o base64file.bin
次に、シークレットをドローンに追加します。
drone secret add --repository <repo> --name yourname_keys --value @base64file.bin
パイプラインに入ると、次のようになります。
command:
- echo "$YOURNAME_KEYS" > some/path/afilebase64
- base64 -D -i some/path/afilebase64 -o some/path/afilebinary