繁体   English   中英

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

[英]Docker Playbook yml - ssh to a host with different port

我有一个 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: ...
  ....

所以首先我使用用户 USER 对 HOSTS 执行 SSH。 但是现在,我的主机具有不同的 ssh 端口(不是 22)。 我该如何设置?

我尝试使用端口,但没有用

- 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: ...
  ....

这是您应该在清单中为没有默认端口的主机设置的变量。 它的名字是ansible_port (而不是你尝试过的port )。

非常基本:

  • 创建一个host_vars文件夹(与您的剧本或库存文件处于同一级别)
  • 对于具有不同端口 22 的每台机器,在host_vars创建一个<name_of_host>.yml文件,内容如下(将 XX 替换为您的实际端口):
     --- ansible_port: XX

一些参考文档:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM