ssh - 在 Terragrunt before_hook 中激活 ssh sock5 代理
问题描述
我正在尝试在应用 RDS Terraform 堆栈之前激活 ssh sock5 代理。
为此,我将 ssh 命令配置为 Terragrunt before_hook 块,示例如下:
before_hook "ssh_tunnel_start" {
commands = ["init", "plan", "apply"]
execute = ["ssh", "-D", "3306", "-M", "-S", "/tmp/ssh-control-socket", "-fnNTC", "<bastion_host>"]
}
如果我在终端中手动执行 ssh 命令,它会按预期工作,ssh 绑定本地端口然后分离,但从 Terragrunt 挂钩执行,代理已启动,但 ssh 命令不分离并且 Terragrunt 进程无法继续并卡在钩子命令上。
解决方案
我通过使用屏幕找到了一个可行的解决方案,也许有更好的解决方案。
before_hook "ssh_tunnel_start" {
commands = ["init", "plan", "apply"]
execute = ["screen", "-d", "-m", "ssh", "-D", "3306", "-M", "-S", "/tmp/ssh-control-socket", "-fnNTC", "<bastion_host>"
}
推荐阅读
- ios - iOS 13 方向被强制改变
- xml - XSD 元素与不同命名空间中的类型声明?
- html - 如何显示一个虚拟 url 而不是 ip?
- swift - 如何使用 CALayer 在 NSCollectionViewItem 中绘制图像
- ios - iOS 13 UserDefaults:在某些设备上启动时应用程序崩溃
- windows - 有时工作流实例会被自动删除而没有完全执行
- java - Vert.X SLF4J 日志记录
- javascript - 如何在javascript中创建电梯程序
- java - 设置@WebInitParam 动态值
- loops - 使用 Symfony 4 用树枝循环