azure - 在 DevOps 管道中打开 Azure Bastion 隧道

标签 azure azure-pipelines azure-bastion

是否可以在 DevOps Pipeline 中打开 Azure Bastion 隧道? 我已使用 native 客户端在本地成功完成此操作,但使用隧道命令 az network bastiontunnel 但这会导致窗口锁定,直到发送 Ctrl-C 为止。

是否可以以某种方式将其集成到 DevOps 管道中,以便 ssh/scp 到专用网络上的虚拟机?

谢谢。

最佳答案

az网络堡垒rdpaz网络堡垒rdp命令(2)打开隧道,与 native SSH或RDP客户端连接,最后当客户端断开连接时隧道正在被拆卸并且 az 进程退出。对于SCP你可能需要咨询https://serverfault.com/questions/522258/file-copying-over-an-already-established-ssh-connection并检查现有的 SSH 连接是否可以重新用于 SCP。

<小时/>

替代解决方案:使用后台进程打开隧道。例如

nohup az network bastion tunnel > /dev/null 2>&1 & echo $! > run.pid
scp something
scp something
scp something else
kill -p $(cat run.pid)

免责声明:没有测试,但这种流程管理应该可以工作。如果tunnel命令需要pty那么它会更复杂并且需要运行tmux或其他终端多路复用器。

<小时/>

如果您只需要在 VM 上运行命令 az vm run-command(1) 也可能是一个不错的选择。

<小时/>

(1) https://learn.microsoft.com/en-us/cli/azure/vm/run-command?view=azure-cli-latest

(2) https://learn.microsoft.com/en-us/cli/azure/network/bastion?view=azure-cli-latest#az-network-bastion-ssh

关于azure - 在 DevOps 管道中打开 Azure Bastion 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73623454/

相关文章:

c# - 使用 blob 触发的隔离 Azure 函数时如何将 blob 作为流获取?

Azure DevOps管道ssh连接问题

azure - (如何)通过一个转发端口运行多个 ssh session (端口重定向、隧道)

Azure堡垒服务: is Jump box still required?

azure - 如何将 Azure 成本和使用数据发送到日志分析工作区或直接发送到 azure 指标?

python - 如何获取在 Azure Linux Web 应用程序上运行的 Flask 中的客户端 IP 地址?

powershell - 如何将环境变量传递给解决方案构建步骤(Build vNext)

azure 堡垒 : Alt Gr key is mistaken for Alt key

Azure 容器/Kubernetes 服务 - 网络接口(interface)和 IP 未删除

azure - 在 Azure Pipeline 中删除 Azure Key Vault secret 失败