2016-02-01 13 views
11

Come posso accedere all'interfaccia utente del console esternamente?Come accedere esternamente all'interfaccia utente del console

voglio accedere scrittura console UI

<ANY_MASTER_OR_SLAVE_NODE_IP>:8500

Ho provare a fare un tunnel SSH per accesso: ssh -N -f -L 8500: localhost: 8500 [email protected]

Quindi se accedo a http://localhost:8500 Funziona, ma non è quello che voglio. Ho bisogno di accedere esternamente, senza tunnel ssh.

Il mio file config.json è il prossimo:

{ 
"bind_addr":"172.16.8.216", 
"server": false, 
"datacenter": "nyc2", 
"data_dir": "/var/consul", 
"ui_dir": "/home/ikerlan/dist", 
"log_level": "INFO", 
"enable_syslog": true, 
"start_join": ["172.16.8.211","172.16.8.212","172.16.8.213"] 
} 

Qualsiasi aiuto? Grazie

risposta

22

Aggiungi

{ 
    "client_addr": "0.0.0.0" 
} 

alla configurazione o aggiungere l'opzione -client 0.0.0.0 alla riga di comando di console per rendere accessibile l'interfaccia utente Web dall'esterno (see the docs for more information).

Si prega di notare che questo renderà anche l'API di Console REST accessibile dall'esterno. A seconda del tuo ambiente potresti voler attivare ACL di Consul per limitare l'accesso.

+1

Se aggiungo "client_addr": "0.0.0.0" alla mia configurazione il client esce dal cluster e quando eseguo i membri del console sul client: "Errore durante la connessione all'agente Consul: componi tcp 127.0.0.1:8400: connessione rifiutato". Se eseguo -client 0.0.0.0 sulla mia riga di comando: "-client: comando non trovato" Quale potrebbe essere il problema? @ ahus1 –

+1

@Asier Ho aggiornato la descrizione. Se il tuo cliente esce dal cluster, dai un'occhiata al file di log del console. Forse c'è un errore di sintassi nella tua configurazione. l'opzione '-client' deve essere parte della riga di comando dell'eseguibile del tuo console. Si prega di dare un'occhiata alla documentazione del console di riferimento. Ho anche aggiornato la risposta per renderla più esplicita. – ahus1

+0

Prendo la riga "client_addr": "0.0.0.0" nel mio file config.json, e se ho questa configurazione il nodo non può connettersi con gli altri, ho un errore quando eseguo i membri del console. Certo che la configurazione unica che devo fare è modificare config.json e inserire questa linea? Grazie @ ahus1 –

0

Non c'è modo di ottenere l'interfaccia utente se ther senza interfaccia utente) Classic UI sua qualche pila di Desktop Environment (x-termine ....), quindi prima di ottenere, è necessario installarlo sul nodo

+0

ho installare l'utente Inteface, posso acces con un tunnel SSH , ma voglio accedere senza ssh tunnel, scrivendo http://172.16.8.194:8500 –

0

non ho esperienza hands-on con il Console ancora, ma qui ci sono alcuni suggerimenti:

  • Run sudo netstat -peanut | grep :8500 e verificare se il console è destinata a 0.0.0.0 o un IP esplicito. Dovrebbe controllare i documenti se questo è configurabile.
  • In ogni nodo installare Squid, Nginx o qualsiasi altro software che può agire come un proxy HTTP
+0

Se eseguo "sudo netstat -peanut | grep: 8500" posso vedere: tcp 0 0 127.0.0.1:8500 0.0.0.0: * ASCOLTA, non è comunque necessario fare a meno di installare Nginx o altri pacchetti? Grazie a @NikoNyrh –

+0

ahus1 sembra conoscere meglio i documenti, dovresti farlo configurare che non è associato a '127.0.0.1' perché non accetterà connessioni esterne. – NikoNyrh

1

Finalmente trovo la soluzione. Aggiungi al file di configurazione con l'addr di bind che è l'IP della macchina e il client_addr che è l'host che ascolta. Quindi uso 0.0.0.0 per ascoltare tutti gli IP.

"bind_addr":"172.16.8.234", 
"client_addr":"0.0.0.0", 
2

In questo caso è possibile utilizzare socat.

socat -d -d TCP-L: 8500, bind = 172.16.93.128, TCP forcella: localhost: 8500 &

dove 172.16.93.12 è il mio IP.

0

corro come immagine uno scaricatore di porto, ho dato

docker pull consul 

docker run -p 8500:8500 consul 

e sono in grado di accedere all'interfaccia utente console a http://<hostname>:8500/ui

Problemi correlati