recherche

Maison  >  Questions et réponses  >  le corps du texte

python - problème avec Ansible pour obtenir l'adresse IP

Bonjour à tous les crevettes !

Mon frère a rencontré un problème, c'est-à-dire qu'il doit ajuster le zk d'environ 100 machines. Actuellement, une nouvelle ip zk a été écrite sur la machine de contrôle ansible, et le plan est de distribuer le fichier de cette nouvelle ip zk à. ces 100 machines, puis ajoutez leurs adresses IP et noms d'hôte respectifs aux fichiers de ces 100 machines.

J'ai donc écrit un playbook ansible :

---

- 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}}"

Mais après l'avoir écrit et exécuté, l'effet est le suivant :

Et ce que je veux, c'est cet effet :

Que dois-je faire ?

仅有的幸福仅有的幸福2751 Il y a quelques jours679

répondre à tous(1)je répondrai

  • 漂亮男人

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

    Le problème est résolu, utilisez IP : "{{ ansible_eth0'ipv4' }}" plutôt que {{ansible_all_ipv4_addresses}}

    Le playbook modifié est le suivant :

    ---
    
    - 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}}"
    

    répondre
    0
  • Annulerrépondre