首页 文章

在Ansible中相当于“自我”

提问于
浏览
0

我在Ansible中有一个用于多路复用的主机文件

[masters]
master ansible_host=10.10.1.1 ansible_ssh_user=root ansible_ssh_pass=froyo 

[workers]
worker1 ansible_host=10.10.1.2 ansible_ssh_user=root ansible_ssh_pass=froyo
worker2 ansible_host=10.10.1.3 ansible_ssh_user=root ansible_ssh_pass=froyo

我想要一个shell命令来设置节点名称

- hosts: workers
  become: yes
  tasks:
    - name: join cluster
      shell: "{{ hostvars['master'].join_command }} --node-name {{self.name}} >> node_joined.txt"
      args:
        chdir: $HOME
        creates: node_joined.txt

How to get the host name of the current machine as defined in the Ansible hosts file?中的Q / A被识别为包含 inventory_hostname ,但是这对我不起作用..我可以改变 Worker 的主机名,这是我想要避免的 .

从上面的播放中我希望通过 hosts 文件中存在的名称 worker1worker2 在主服务器中识别两个节点 .

我无法设置任何内容: inventory_hostname 或其他包括 ansible_hostnameansible_nodename . 有没有办法从主机访问名称 worker1worker2 ?它似乎没有设置 ansible -i hosts worker1 -m setup 的变量...请帮我识别我错过的东西,在此先感谢

1 回答

  • -2

    您需要将playbook限制为worker1

    尝试:

    ansible-playbook -i hosts --limit worker1 -m setup

相关问题