Heim  >  Fragen und Antworten  >  Hauptteil

Python – Problem mit Ansible beim Abrufen der IP

Hallo zusammen, Garnelen!

Mein Bruder ist auf ein Problem gestoßen, das heißt, er muss die ZK von etwa 100 Maschinen anpassen. Derzeit wurde eine neue ZK-IP auf der Ansible-Steuerungsmaschine geschrieben, und es ist geplant, die Datei dieser neuen ZK-IP an diese zu verteilen diese 100 Maschinen und fügen Sie dann ihre jeweiligen IPs und Hostnamen zu den Dateien dieser 100 Maschinen hinzu.

Also habe ich ein Ansible-Playbook geschrieben:

---

- hosts: all
  tasks:
        - name: 将原有的hosts文件备份
          shell: mv /etc/hosts /etc/hosts_bak

        - name: 将ansible端的hosts复制到各自机器上
          copy: src=/root/hosts dest=/etc/ owner=root group=root mode=0544

        - name: 在新的hosts文件后面追加各自机器内网ip和hostname
          lineinfile: dest=/etc/hosts line="{{ansible_all_ipv4_addresses}}  {{ansible_hostname}}"

Aber nach dem Schreiben und Ausführen ist der Effekt so:

Und was ich will, ist dieser Effekt:

Was soll ich tun?

仅有的幸福仅有的幸福2712 Tage vor644

Antworte allen(1)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-05-18 10:58:00

    问题解决了,用IP: "{{ ansible_eth0'ipv4' }}"   而不是{{ansible_all_ipv4_addresses}}

    修改了之后的playbook 如下:

    ---
    
    - hosts: all
      vars:
            IP: "{{ ansible_eth0['ipv4']['address'] }}"
      tasks:
            - name: 将原有的hosts文件备份
              shell: mv /etc/hosts /etc/hosts_bak
    
            - name: 将ansible端的hosts复制到各自机器上
              copy: src=/root/hosts dest=/etc/ owner=root group=root mode=0644
    
            - name: 在新的hosts文件后面追加各自机器内网ip和hostname
              lineinfile: dest=/etc/hosts line="{{IP}}  {{ansible_hostname}}"
    

    Antwort
    0
  • StornierenAntwort