如何创建无人机秘密文件?

fom*_*mil 5 drone.io drone

文档显示如何将文件设置为秘密envvar http://readme.drone.io/0.5/secrets/

有没有方便的方法来做相反的事情?例如,在.ssh/id_rsa中使用此ssh密钥并具有所有正确的权限.

而且,通过"方便",我显然意味着无需打字mkdir,>或者chmod

Bra*_*ski 6

如果要在构建过程中使用ssh密钥,可以使用以下命令将ssh密钥添加到秘密存储区:

drone secrets add --image=<image> <repo> SSH_KEY @/path/to/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

请注意,@符号类似于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
Run Code Online (Sandbox Code Playgroud)

请注意,SSH_KEY为了保留新行,在引号内加入是很重要的.

您可能还需要添加主机known_hosts以防止主机密钥问题; 更改bitbucket.org为您在下面提取的任何主机,并将其添加到commands(上面显示的命令之后,以确保该/root/.ssh目录存在):

ssh-keyscan -H bitbucket.org >> /root/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)

(如果构建映像中尚未安装openssh-client或等效产品,则还需要安装.)

并且通过"方便"我显然意味着无需键入mkdir,>或chmod