gpt4 book ai didi

ssh - 我怎么能用Ansible打开一个SSH外壳来远程控制?

转载 作者:行者123 更新时间:2023-12-02 14:30:44 24 4
gpt4 key购买 nike

我正在从Capistrano迁移到Ansible,以部署Web应用程序。我设法迁移了几乎所有的食谱,但我坚持使用。

为了快速访问我们曾经打过cap production ssh的远程服务器,该命令执行带有舞台配置的本地ssh命令。这样,团队中的任何人都可以快速访问远程服务器,而无需查找所需的用户名和主机名。

我试图用Ansible做同样的事情,但我不确定这是否有可能。到目前为止,我得到的只是这个错误:Pseudo-terminal will not be allocated because stdin is not a terminal.
这是我使用的Ansible任务。

- name: SSH to host
hosts: app
gather_facts: no
tasks:
- command: ssh {{ ansible_user }}@{{ inventory_hostname }}
delegate_to: localhost

有任何想法吗 ?

最佳答案

Ansible绝对不是这样做的。
我无法通过剧本打开交互式SSH连接。
一种可能的解决方案是使用 ansible-inventory 从 list 中提取SSH信息,如下所示:

eval $(ansible-inventory --inventory ${INVENTORY_FILE_PATH} --host ${INVENTORY_HOSTNAME} | jq -r '"ssh -p " + (.ansible_port|tostring) + " " + .ansible_user + "@" + .ansible_host')
我让您找到一种方法来处理以下情况:没有指定的端口(端口 22的后备)或存在 ansible_ssh_private_key_file-i选项一起使用的情况。

关于ssh - 我怎么能用Ansible打开一个SSH外壳来远程控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com