5

ドキュメントは、ファイルを秘密の環境変数http://readme.drone.io/0.5/secrets/に設定する方法を示しています

逆に便利な方法はありますか?たとえば、この ssh キーを .ssh/id_rsa で使用できるようにし、すべての適切な権限を付与します。

そして、「便利な」とは、明らかに入力する必要がないことを意味しますmkdir>またはchmod

4

3 に答える 3

7

ビルドの一部として 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を入力する必要がないことを意味します

いいえ

于 2016-12-26T15:36:10.383 に答える
0

ドローンで 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
于 2018-10-15T08:26:30.680 に答える