文档显示如何将文件设置为秘密envvar http://readme.drone.io/0.5/secrets/
有没有方便的方法来做相反的事情?例如,在.ssh/id_rsa中使用此ssh密钥并具有所有正确的权限.
而且,通过"方便",我显然意味着无需打字mkdir,>或者chmod
如果要在构建过程中使用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
不
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |