运行ansible playbook时获取主机名

运行ansible playbook时获取主机名,ansible,Ansible,学习与ansible合作- 我需要为集群部署准备服务器 在所有节点上安装相同的程序集,依此类推。 这部分没有问题,一切都顺利。 我是通过ansible剧本来做的。在每个节点上,都需要在文件中显示 /etc/sysconfig/network 写下 NETWORKING=yes HOSTNAME=nn1 其中网络=是 共同的 主机名部分中每台主机的主机名=nn1 我是这样做的 /etc/ansible/hosts [cluster1] nn1 dd1 dd2 dd3 dd4 这里是play

学习与ansible合作- 我需要为集群部署准备服务器

  • 在所有节点上安装相同的程序集,依此类推。 这部分没有问题,一切都顺利。 我是通过ansible剧本来做的。在每个节点上,都需要在文件中显示 /etc/sysconfig/network
写下

NETWORKING=yes
HOSTNAME=nn1
其中网络=是 共同的 主机名部分中每台主机的主机名=nn1

我是这样做的

/etc/ansible/hosts

[cluster1]
nn1
dd1
dd2
dd3
dd4
这里是playbook.yml的一部分,我在这里尝试进行所需的更改

- name: sysconfig -> network
  tags: wr_net_yes
  lineinfile:
    path: /etc/sysconfig/network
    line: "NETWORKING=yes"
    owner: root
    group: root
    mode: '0644'

- name: sysconfig -> network
  tags: wr_net_host
  lineinfile:
    path: /etc/sysconfig/network
    line: "HOSTNAME={{ network_wr }}"
    owner: root
    group: root
    mode: '0644'
这部分 标签:wr\u net\u是 成功

[cluster1]
nn1
dd1
dd2
dd3
dd4
这部分我做不到 标签:wr_net_主机


也许有一些建议、帮助?

您可以通过可转换变量实现这一点,如:

- name: sysconfig -> network
  tags: wr_net_host
  lineinfile:
    path: /etc/sysconfig/network
    line: "HOSTNAME={{ inventory_hostname }}"
    owner: root
    group: root
    mode: '0644'

我试图这样做,但它给出了一个错误,爬到了另一个方向…谢谢!成功了!