在Ansible中,可以使用ansible_port
参数来指定非标准端口。以下是一个使用Ansible已知主机模块和非标准端口的示例。
---
- name: Configure known hosts with non-standard port
hosts: all
gather_facts: false
tasks:
- name: Add host to known_hosts file
known_hosts:
name: "{{ inventory_hostname }}"
key: "{{ hostvars[inventory_hostname]['ansible_host_key'] }}"
port: "{{ hostvars[inventory_hostname]['ansible_port'] }}"
在上面的示例中,我们使用了known_hosts
模块来将主机添加到已知主机文件中。我们使用了两个变量ansible_host_key
和ansible_port
来指定主机的密钥和端口。这些变量可以在主机的变量文件中定义,或者在命令行上使用-e
参数传递。
为了使用这个示例,你需要将主机的密钥和端口存储在相应的变量中。例如,你可以在host_vars
目录下创建一个以主机名命名的文件,并在文件中定义这些变量,如下所示:
---
ansible_host_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDm...
ansible_port: 2222
然后,你可以使用以下命令运行Playbook:
ansible-playbook -i inventory.ini playbook.yml
请确保将inventory.ini
替换为你的主机清单文件的路径,将playbook.yml
替换为包含上述示例代码的Playbook文件的路径。