2015-10-26 7 views
7

Ich habe Consul in einer einzigen Instanz eingerichtet. Die web-ui läuft einwandfrei, aber die ACL ist nicht aktiviert. Zuvor hatte ich keine Konfigurationsdatei, aber jetzt habe ich eine config.json Datei in /etc/consul.d/bootstrap/ mit dem folgenden Inhalt erstellt.ACL wird nicht in Konsul aktiviert

{ 
    "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 
} 

als ich lief den folgenden Befehl

Konsul Mittel -Server -bootstrap -Daten Verzeichnis/tmp/Konsul -ui-dir /home/ubuntu/dist/-client = XXXX

wo X.X.X.X ist die private IP meiner Instanz

Aber die ACL nicht aktiviert zu werden.

/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" 
} 

Arbeitskonfigurationsdatei

{ 
    "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" 
} 
01 Jetzt

den folgenden Befehl

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

Da Sie nur die einzelne Instanz ausführen, geben Sie bitte die Konfiguration Ihrer 'config.json' in den Verzeichnissen/etc/consul.d/server und/etc/consul.d/client ein. –

+0

@AnkitKulkarni Hinzugefügt den Inhalt der erforderlichen 'config.json' Datei –

Antwort

4

Sie sind die Master-Token in Ihrer Konfiguration fehlt. Wenn Sie dies hinzufügen,

"acl_master_token": "secret", und verwenden Sie das gleiche Token in Ihrer Benutzeroberfläche, sollten Sie in der Lage sein, die ACL zu verwenden.

Hinweis: Wenn Sie eine Instanz eines einzelnen Knotens verwenden, legen Sie die Eigenschaft acl_token nicht als Master-Token fest. Dies würde bedeuten, dass jeder mit Zugriff auf die Benutzeroberfläche Zugriff auf die master token haben würde, im Wesentlichen alle ACL-Regeln umgehen. Diese Eigenschaft sollte nur auf Serverknoten festgelegt werden.

Nachdem es gut lief, habe ich einen Screencast erstellt, um zu demonstrieren, wie man consul auf einem einzelnen Server einrichtet. Here is the link

+0

Ich habe Ihren Punkt nicht erhalten, "setzen Sie nicht acl_token Eigenschaft wie Ihr Master-Token" –

+0

'acl_master_token' ist wie das erwartete Token, um ACLs zu bearbeiten. Und 'acl_token' ist das von diesem Client/Server übermittelte Token. Nur Server sollten 'acl_token' haben wie' acl_master_token'. Wenn Sie sie auf einem Client gleich festlegen, wird Ihre ACL deaktiviert. – cskksc

+0

Ich habe den acl_master_token in Bootstrap-Konfiguration und Server-Konfigurationsdatei hinzugefügt. Außerdem wurde das gleiche Token zum Web-UI unter Einstellungsbereich hinzugefügt. Und Konsul durch den Befehl 'Consul-Agent-Server-Bootstrap -Datenverzeichnis/tmp/Consul-UI-Verzeichnis/home/Ubuntu/dist/-client = X.X.X.X' gestartet noch zeigt es ACL deaktiviert sind. –

Verwandte Themen