需要Ansible的帮助。在我们公司中,我们使用以下方法将ssh连接到服务器。 如果服务器的IP为172.16.1.8,则用户名将为“ empname〜id〜serverIP”,例如约翰〜1234〜172.16.1.8。因此,使用了以下ssh命令-
> ssh john~1234~172.16.1.8@172.16.1.8 -i key.pem
基本上,用户名具有主机名作为变量。
现在,我们的库存中只有带有组网的IP。
> cat inventory.txt
[web]
172.16.1.8
172.16.x.y
172.16.y.z
我的剧本yml的用户如下。
> cat uptime.yml
- hosts: web
vars:
ansible_ssh_port: xxxx
ansible_user: john~1234~{{inventory_hostname}}
tasks:
- name: Run uptime command
shell: uptime
但是,当我使用以下ansible-playbook命令时,如果用户名不正确,则会出现错误。
> ansible-playbook -v uptime.yml -i inventory.txt --private-key=key.pem
请帮助我在包含主机名作为变量的剧本中找到正确的ansible_user。
答案 0 :(得分:0)
您可以在 group_vars / web.yml
中定义ansible_user
group_vars / web.yml :
---
ansible_ssh_port: xxxx
ansible_user: "john~1234~{{ inventory_hostname }}"
答案 1 :(得分:0)
使用组var帮助-
ansible_ssh_port:xxxx ansible_user:“ john〜1234〜{{ventory_hostname}}”