Sto imparando a parlare di burattino e sto provando a sperimentarlo su una VM a casa. Non sto ancora usando un server fantoccio, semplicemente eseguendo le cose localmente. Funziona bene, ma ogni volta che corro puppet apply ...
, ottengo un ritardo di alcuni secondi, dopo di che si visualizza il messaggioPuppet/Facter "Impossibile recuperare fact fqdn": come risolvere o aggirare?
warning: Could not retrieve fact fqdn
Suppongo che il messaggio è legata al ritardo, e voglio sbarazzarsi di esso (il ritardo - posso vivere con il messaggio). Googling per una soluzione sembra indicare che è in qualche modo correlato alle ricerche DNS, ma non riesco davvero a trovare nient'altro al riguardo, il che sembra sorprendente. Tutto quello che voglio è essere in grado di applicare i manifesti nel mio VM velocemente, così da poter sperimentare. Come posso accelerare le cose?
Aggiornamento: non vedo alcuna info extra nell'output di debug, ma sembra che questo:
$ puppet apply -dv puppet-1.pp
warning: Could not retrieve fact fqdn
debug: Failed to load library 'rubygems' for feature 'rubygems'
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows is missing
...
Aggiornamento: Ho aggiunto il tag "ruby", perché fantoccio ha così pochi seguaci. Se questo non appartiene al rubino, o se conosci un tag migliore, fammelo sapere.
Aggiornamento ancora: Dopo aver imparato un po 'di più su di marionette, ho capito che questo messaggio proviene dalla componente chiamato "facter" che fiuta "fatti" circa il sistema che delle marionette è in esecuzione. Ho trovato alcune opzioni di configurazione e ho giocato con "certname", "node_name" e "node_name_value", ma non ho potuto ottenere il ritardo di andare via. Qualcuno sa specificamente come dire a Facter di ignorare il file fqdn o come rendere Facter in grado di trovare fqdn su un Ubuntu 11.10 vm?
Progress:
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
Questo è il mio router, che è in esecuzione Dnsmasq tramite pomodoro.
$ dig -x 192.168.1.129 192.168.1.1
; <<>> DiG 9.7.3 <<>> -x 192.168.1.129 192.168.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21838
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;129.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
129.1.168.192.in-addr.arpa. 0 IN PTR desk-vm-ubuntu-beta.
;; Query time: 14 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Oct 16 17:47:47 2011
;; MSG SIZE rcvd: 77
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27462
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.1.1. IN A
;; ANSWER SECTION:
192.168.1.1. 0 IN A 192.168.1.1
;; Query time: 11 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sun Oct 16 17:47:47 2011
;; MSG SIZE rcvd: 45
strace
mi ha portato a ARP, che è stato bloccando per 5 secondi e chiamato due volte per ogni facter
:
$ time arp -a
? (10.0.2.2) at 52:54:00:12:35:02 [ether] on eth0
real 0m5.127s
user 0m0.004s
sys 0m0.016s
ho cambiato il VM dal NAT di rete a ponte, in modo che ora ha un IP sulla rete e arp
restituisce immediatamente ora. (Non sono un guru del networking, quindi non ho idea del perché abbia funzionato, ma sembrava una cosa ragionevole da provare.) Ma il facter
richiede ancora circa 4-5 secondi per essere eseguito e continua a riportare "Impossibile recuperare fqdn". facter -d
mostra diverse occorrenze di "valore per dominio è ancora nullo", fino alla fine. Sto pensando che qualcosa non è ancora giusto.
Ah! 'strace' ha trovato qualcosa:'/usr/lib/ruby / 1.8/facter/arp.rb' stava chiamando 'arp -a' che stava bloccando per 5 secondi. Ho aggiunto il resolv.conf, l'output di scavo e l'output arp alla mia risposta. È più veloce ora, ma non è ancora veloce. 4-5 secondi suonano correttamente per un VM su un core del desktop? –
Sta facendo davvero fatica a trovare un nome di dominio e fallendo in ogni modo. Dagli un dominio e ci riuscirai più velocemente. Aggiungerò qualcosa alla risposta tra un momento. – freiheit
Poiché vm è una distribuzione desktop, ho impostato un dominio nel mio router e riavviato il gestore di rete, e ha aggiunto il dominio a resolv.conf stesso. Questo si è preso cura del dominio e di fqdn. Non ho mai trovato la necessità di avere un nome di dominio configurato prima. Ora è a circa 4 secondi al massimo - molto meglio di quanto fosse, e non sono sicuro che andrà molto meglio. Grazie per l'aiuto! –