Come ottenere gli indirizzi IP di tutte le unità di un servizio in un hook di fascino in un altro servizio?

4

Sono nuovo di Juju e sto cercando di scrivere un incantesimo. Ho bisogno di un indirizzo IP di tutte le unità distribuite in un servizio. Attualmente sto usando juju 1.25 e distribuendo servizi in openstack

Lo scenario è:

Ho 3 unità di wordpress (ha richiesto i file hook di relazione) con

juju deploy -n 3 cs:wordpress

Ho distribuito il mio fascino dal repository locale

juju deploy local:trusty/myCharm

Aggiungo una relazione tra i due

juju add-relation myCharm wordpress

Ora ho bisogno di un elenco di tutti e 3 gli indirizzi IP del servizio wordpress in uno degli hook di myCharm

Ho impostato le chiavi di relazione in wordpress e ho provato ad usare relation-ids - & gt; relation-list - & gt; strumenti di hook di relazione-get in myCharm. Ma mi dà solo un ip e non tutti e tre.

relation-ids {relationName}  --gives one id. 
relation-list -r {id} --gives just one unit(wordpress/18). 
relation-get -r {id} {relation-key} {unit} --gives corresponding ip.

Cosa devo fare per ottenere il risultato previsto?

    
posta mayuri 05.08.2016 - 21:40

1 risposta

1

Il relation-list -r {id} dovrebbe restituire tutte le unità nella relazione. Forse stai solo analizzando il primo (o ultimo) valore?

Questo è l'output del mio relation-* quando ho più unità di un'applicazione correlate a un'altra (in questo caso, sto guardando i dati di relazione monitors tra nagios e 3 unità di nrpe ; probabilmente vuoi sostituire quelli con myCharm e le tue 3 unità di wordpress ):

$ juju run --unit nagios/0 'relation-ids monitors'
monitors:1

$ juju run --unit nagios/0 'relation-list -r monitors:1'  
nrpe/0
nrpe/1
nrpe/2

$ juju run --unit nagios/0 'relation-get -r monitors:1 private-address nrpe/0'
172.31.13.216

Posso mettere tutto insieme in un ciclo che restituisce l'indirizzo privato per tutte le unità correlate a nagios come questo:

$ juju run --unit nagios/0 'for i in 'relation-ids monitors'; do for j in 'relation-list -r $i'; do relation-get -r $i private-address $j; done; done'
172.31.13.216
172.31.30.157
172.31.49.121
    
risposta data kwmonroe 09.08.2016 - 19:09

Leggi altre domande sui tag