【问题标题】:Ansible 使用清单项分配主机名
【发布时间】:2022-01-23 00:35:42
【问题描述】:

我正在尝试将主机名分配给一些主机,并从清单中收集它。

我的库存是:

[masters]
master.domain.tld

[workers]
worker1.domain.tld
worker2.domain.tld

[all:vars]
ansible_user=root
ansible_ssh_private_key_file=~/.ssh/id_rsa

我使用的代码是:

- name: Set hostname
  shell: hostnamectl set-hostname {{ item }}
  with_items: "{{ groups['all'] }}"

不幸的是,代码迭代了所有项目(IP 和主机名)并将最后一个项目分配给所有 3 个主机...

任何帮助将不胜感激。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    不要loop:这是通过每个目标上的所有主机。仅使用自然库存循环和inventory_hostname 特殊变量。

    另外,当有dedicated module时不要使用shell

    - name: Assign hostname
      hosts: all
      gather_facts: false
    
      tasks:
        - name: Set hostname for target
          hostname:
            name: "{{ inventory_hostname }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多