Mi piacerebbe cambiare ansible_default_ipv4 in modo che punti a eth1 anziché eth0. Posso farlo nel playbook o tramite l'opzione --extra-vars?Come si modifica ansible_default_ipv4?
risposta
ansible uses commandip -4 route get 8.8.8.8
per ottenere l'interfaccia IPv4 predefinita. Puoi fare change your ip/routing tables per rendere eth1
il percorso predefinito e lo restituirà.
Oppure è possibile utilizzare uncustom fact.
PS: usando set_fact
-esclusione il ansible_default_ipv4
fatto, ma ha le sue insidie a causa di caching, scope, ...
Un'altra opzione è sempre riferimento l'interfaccia in modo esplicito. Diversi fornitori di cloud hanno diverse convenzioni meteo per mettere la rete di gestione privata (in genere 10.x.y.z) su eth0 o eth1.
Invece di riferimento
ansible_default_ipv4["address"]
È sempre possibile definire l'iface che si desidera (dire in group_vars/tutti)
iface: eth0
e farvi riferimento in compiti come
{{'ansible _' + iface ['ipv4'] ['indirizzo']}}
A si mple grep ti mostrerà tutti i riferimenti. Una ricerca e sostituzione globale sul tuo progetto ti consentirà di cambiarlo. grep -RH ansible_default_ipv4 .
Quindi, quando si desidera cambiare provider cloud, è sufficiente adattare l'iface secondo necessità.
Se preferite qualcosa di meno prolissa, e più esplicito definire
private_iface: eth0 #switch eth0,eth1 depending on your provider.
public_iface: eth1
private_host_ipv4: "{{ 'ansible_'+private_iface['ipv4']['address'] }}"
public_host_ipv4: "{{ 'ansible_'+public_iface['ipv4']['address'] }}"
e utilizzare solo
ansible_default_ipv4
quando si desidera fare riferimento a uno IP privato o pubblico che potrebbe essere utilizzato per arrivare a 8.8.8.8 (internet in generale).
BTW, ho provato il suggerimento di Eron Wright per route add -net 8.8.8.8 netmask 255.255.255.255 eth1. Non sembrava funzionare per me, e non ero in grado di eseguire il ping su google (anche se il ping su qualsiasi altro IP pubblico funzionava).
Questo non ha funzionato per me in quanto ha cercato di indicizzare nella stringa stessa. Secondo Ansible [FAQ] (http://docs.ansible.com/ansible/faq.html) è necessario specificare come {{hostvars [inventory_hostname] ['ansible_' + iface] ['ipv4'] ['indirizzo ']}} – Jeremy
ip -4 route get 8.8.8.8
non funzionava sul mio server.
Ho creato questo lavoro.
- name: find default ipv4... this is a bit of a hack. shell: ifconfig $(route | grep default | awk '{print $(NF)}') | grep 'inet' | awk '{ print $2}' register: ipv4_address
ora posso usare ipv4_address
ovunque sia necessario!
Né 'ifconfig' né' route' sono installati di default sui moderni sistemi Linux, a meno che alcune applicazioni legacy li richiedano, poiché sono obsoleti. Dovresti essere preparato per la loro assenza. –
- 1. Come si modifica la password di ActiveAdmin?
- 2. Come si modifica Javascript nel browser?
- 3. Come si modifica il database di SQLAlchemy?
- 4. Come si modifica la posizione del MessageBox?
- 5. Come si modifica l'animazione predefinita quando si cambia attività?
- 6. Come si modifica core.autocrlf quando si utilizza SmartGit?
- 7. UITextView, scorrere mentre si modifica?
- 8. Si verifica quando si modifica la formattazione della fonte?
- 9. Perché Android Studio sta rallentando quando si modifica un file xml o si modifica il progetto?
- 10. Cosa succede quando si modifica direttamente Gemfile.lock?
- 11. Quando si modifica $ _ può essere sbagliato?
- 12. Come si modifica sys.path in Google App Engine (Python)?
- 13. Come si modifica una procedura memorizzata in MySQL?
- 14. Come si calcola la distanza di modifica dell'albero?
- 15. Come si modifica il proprietario di un database in sql?
- 16. Come si modifica il cursore Vim in modalità Insert/Normal?
- 17. GlassFish 3: come si modifica il formato di registrazione (predefinito)?
- 18. Come si anima una modifica nel riempimento di una vista?
- 19. Come si esce da Modifica stile in Visual Studio 2012
- 20. Come impostare intestazioni http personalizzate quando si modifica iframe src?
- 21. Come si modifica il carattere predefinito utilizzato da Silverlight?
- 22. Come si modifica il testo "Fatto" in un CAB?
- 23. Come si modifica un'immagine trascinata e trascinata a metà trascinamento?
- 24. UITableView/UIScrollView come sapere automaticamente quando si modifica ContentSize?
- 25. Come si modifica il tipo predefinito per la deserializzazione numerica?
- 26. Come si modifica il cursore predefinito nelle mappe degli opuscoli?
- 27. Come si modifica lo schema Envelope SOAP in WCF?
- 28. In Oracle, come si modifica il database "predefinito"?
- 29. Come si modifica lo stile della cella in un JQuery.DataTable?
- 30. NEventStore: come si modifica la distribuzione degli eventi senza corrispondenza?
Ho eseguito un'attività che ha aggiunto un gateway predefinito a/etc/sysconfig/network e riavvia la rete, che ha funzionato. Grazie. – jd50
Nel caso in cui il percorso predefinito non sia negoziabile, è possibile ignorare il percorso su 8.8.8.8 in particolare: 'sudo route add -net 8.8.8.8 netmask 255.255.255.255 eth1' –