提问人:Cruik 提问时间:11/16/2023 更新时间:11/21/2023 访问量:49
Azure Pipeline:通过 SSH 从项目复制在远程计算机上运行 shell 命令
Azure Pipeline Run shell commands on remote machine via SSH Copy from Artifacts
问:
我正在尝试通过 azure 管道在我的专用 ubuntu 服务器上复制我的工件。
当我使用“通过 SSH 复制文件”任务时,我总是收到错误
“无法连接到远程计算机。验证 SSH 服务连接详细信息。无法连接到远程计算机。验证 SSH 服务连接详细信息。错误:所有配置的身份验证方法都失败”
当我使用与“SSH - 在远程计算机上运行 shell 命令”任务相同的 SSH 连接时,连接有效,我可以连接到我的服务器并执行命令。
所以我的问题是,是否可以运行 ssh 命令并从管道工件复制到我的服务器?
我的代码来尝试复制任务:
echo 'i am connected'
echo '--------Start to copy --------'
sudo cp $(System.DefaultWorkingDirectory)/_Lobi.Web/drop /root/test -r
echo '--------Copy END--------'
导致错误
cp:无法统计“D:ar1a/_Lobi.Web/drop”:没有这样的文件或目录
答:
0赞
wenbo
11/21/2023
#1
创建服务连接 若要连接到 Ubuntu 服务器,请在 Azure DevOps 门户中将连接名称记录为 sshEndpoint。
对示例进行编码:
trigger: none steps: - task: PowerShell@2 displayName: Run Script --- write txt file inputs: targetType: inline script: | "Hello world" | out-file "test.txt" - task: PowerShell@2 displayName: Run Script --- check file in DefaultWorkingDirectory inputs: targetType: inline script: | Get-ChildItem -Path $(System.DefaultWorkingDirectory) -Include test.txt - task: CopyFilesOverSSH@0 inputs: sshEndpoint: myUbuntu sourceFolder: $(System.DefaultWorkingDirectory) contents: 'test.txt' # string. Required. Contents. Default: **. targetFolder: '/home/azureuser' readyTimeout: '20000' # string. Required. SSH handshake timeout. Default: 20000.
我的结果是,test.txt文件已经复制到远程:
注意文件夹的权限,可能会遇到“Permission denied Local”错误,请使用 chmod 命令解决此问题。
评论
0赞
Cruik
11/22/2023
我稍后会尝试,如果有效,请接受您的回答,谢谢!
0赞
Cruik
11/28/2023
啊,我完全看错了。我已经试过了,当我使用 copyFilesOverSSH - 任务时,我的问题中出现了错误消息 :/
评论