2015-10-26 14 views
7

Ho console di installazione su una singola istanza. Il web-ui funziona perfettamente ma l'ACL non è abilitato. In precedenza non avevo alcun file di configurazione, ma ora ho creato un file config.json in /etc/consul.d/bootstrap/ con il seguente contenuto.ACL non abilitato in console

{ 
    "bootstrap": true, 
    "server": true, 
    "datacenter": "dc1", 
    "acl_datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "encrypt": "consul keygen output", 
    "ca_file": "/etc/consul.d/ssl/ca.cert", 
    "cert_file": "/etc/consul.d/ssl/consul.cert", 
    "key_file": "/etc/consul.d/ssl/consul.key", 
    "verify_incoming": true, 
    "verify_outgoing": true, 
    "log_level": "INFO", 
    "enable_syslog": true 
} 

Than Ho eseguito il seguente comando

agente console -server -bootstrap -data-dir/tmp/console -ui-dir /home/ubuntu/dist/-client = XXXX

dove X.X.X.X è l'IP privato del mio esempio

Ma l'ACL non sono sempre abilitati.

/etc/consul.d/server/config.json

{ 
    "bootstrap": false, 
    "server": false, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "ui_dir": "/home/ubuntu/dist", 
    "acl_datacenter": "dc1" 
    "encrypt": "SECRET" 
} 

/etc/consul.d/server/config.json

{ 
    "bootstrap": false, 
    "server": true, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "acl_datacenter": "dc1", 
    "acl_default_policy": "allow", 
    "encrypt": "SECRET" 
} 

Working config file

{ 
    "bootstrap": true, 
    "server": true, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "addresses" : { 
     "http": "X.X.X.X" 
    }, 
    "bind_addr": "X.X.X.X", 
    "node_name": "X.X.X.X", 
    "data_dir": "/tmp/consul", 
    "ui_dir": "~/dist", 
    "acl_datacenter": "dc1", 
    "acl_master_token": "secret", 
    "encrypt": "secret" 
} 

Ora eseguire il seguente comando

consul agent -config-dir ~/server -ui-dir ~/dist -bootstrap true -client=X.X.X.X 
+0

Poiché si esegue solo l'istanza singola, si prega di postare la configurazione del proprio file 'config.json' nelle directory'/etc/consul.d/server' e '/ etc/consul.d/client'. –

+0

@AnkitKulkarni Aggiunto il contenuto del file "config.json" richiesto –

risposta

4

Ti manca il token maestro nella configurazione. Se aggiungete questo,

"acl_master_token": "secret" e utilizzate lo stesso token nell'interfaccia utente, dovreste essere in grado di utilizzare l'ACL.

Nota: se si utilizza un'istanza a nodo singolo, non impostare la proprietà acl_token come il token master. Ciò significherebbe che chiunque abbia accesso all'interfaccia utente avrebbe accesso allo master token, ignorando essenzialmente tutte le regole ACL. Questa proprietà deve essere impostata solo sui nodi del server.

Dopo averlo eseguito correttamente, ho creato uno screencast per dimostrare come configurare consul su un singolo server. Here is the link

+0

Non ho ottenuto il tuo punto, "non impostare la proprietà acl_token come il tuo token principale" –

+0

"acl_master_token' è come il token previsto, per modificare gli ACL. E 'acl_token' è il token inviato da quel client/server. Solo i server dovrebbero avere 'acl_token' come' acl_master_token'. Impostarli sullo stesso client disabiliterà il tuo ACL. – cskksc

+0

Ho aggiunto acl_master_token nella configurazione di avvio e nel file di configurazione del server. Inoltre, ho aggiunto lo stesso token alla sezione web-ui sotto l'impostazione. E ha iniziato console dal comando 'console agente -server -bootstrap -data-dir/tmp/console -ui-dir/home/ubuntu/dist/-client = X.X.X.X' ancora mostra ACL sono disabilitati. –