Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Playbook yml-ssh到具有不同端口的主机_Ssh_Ansible - Fatal编程技术网

Docker Playbook yml-ssh到具有不同端口的主机

Docker Playbook yml-ssh到具有不同端口的主机,ssh,ansible,Ssh,Ansible,我已经为Docker容器部署了脚本 - hosts: "{{ HOSTS|default('...') }}" remote_user: "{{ USER|default('root') }}" vars: deploy_port: "{{ DEPLOY_PORT|default(80) }}" git_branch: "{{ GIT_BRANCH|default('development') }}" python_settings: "{{ PYTHON_SET

我已经为Docker容器部署了脚本

- hosts: "{{ HOSTS|default('...') }}"
  remote_user: "{{ USER|default('root') }}"
  vars:
    deploy_port: "{{ DEPLOY_PORT|default(80) }}"
    git_branch: "{{ GIT_BRANCH|default('development') }}"
    python_settings: "{{ PYTHON_SETTINGS|default('development') }}"
  tasks:
  - name: Log into Docker registry
    docker_login:
      registry_url: ...
      username: ...
      password: ...
  ....
因此,首先,我使用用户对主机执行SSH。但现在,我有了具有不同ssh端口(而不是22)的主机。 我怎么设置这个

我尝试使用port,但没有成功

- hosts: "{{ HOSTS|default('...') }}"
  port: 23
  remote_user: "{{ USER|default('root') }}"
  vars:
    deploy_port: "{{ DEPLOY_PORT|default(80) }}"
    git_branch: "{{ GIT_BRANCH|default('development') }}"
    python_settings: "{{ PYTHON_SETTINGS|default('development') }}"
  tasks:
  - name: Log into Docker registry
    docker_login:
      registry_url: ...
      username: ...
      password: ...
  ....

这是您应该在清单中为没有默认端口的主机设置的var。它的名称是
ansible\u port
(而不是您尝试的
port

基本上:

  • 创建一个
    host\u vars
    文件夹(与playbook处于同一级别或与清单文件处于同一级别)
  • 对于具有不同端口22的每台机器,在
    host\u vars
    中创建一个具有以下内容的
    .yml
    文件(用实际端口替换XX):
一些参考文件:

---
ansible_port: XX