Ansible主机名作为ansible_user

时间:2019-01-26 20:38:25

标签: ansible

需要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。

2 个答案:

答案 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}}”