2017-11-08 7 views
0

Nomad 및 Consul 관리를 위해 Hashi-UI에 인증을 설정하는 방법에 대한 조언이 필요합니다. 나는 데비안 8 서버를 가지고 있고 거기에 Terraform을 설치했다. 나는 terraform 파일을 만들었다. 이 다운로드 및 실행 유목민과 영사. 그래도 작동하지만, Hash-UI에 액세스하면 로그인이 없으므로 모든 사람이 액세스 할 수 있습니다. 나는 유목민 일과 같은 hashi를 달리게한다. 그것은 Nginx에서 실행됩니다. 아파치에 대해 this과 같은 사용자 로그인을 설정하려면 어떻게해야합니까?Hashi-UI 및 Nomad 인증

내 유목민 파일 :

job "hashi-ui" { 
    region  = "global" 
    datacenters = ["dc1"] 
    type  = "service" 

    update { 
    stagger  = "30s" 
    max_parallel = 2 
    } 
group "server" { 
    count = 1 

    task "hashi-ui" { 
     driver = "docker" 

     config { 
     image  = "jippi/hashi-ui" 
     network_mode = "host" 
     } 

     service { 
     port = "http" 

     check { 
      type  = "http" 
      path  = "/" 
      interval = "10s" 
      timeout = "2s" 
     } 
     } 

     env { 
     NOMAD_ENABLE = 1 
     NOMAD_ADDR = "http://0.0.0.0:4646" 

     CONSUL_ENABLE = 1 
     CONSUL_ADDR = "http://0.0.0.0:8500" 
     } 

     resources { 
     cpu = 500 
     memory = 512 

     network { 
      mbits = 5 

      port "http" { 
      static = 3000 
      } 
     } 
     } 
    } 
    task "nginx" { 
      driver = "docker" 
      config { 
       image = "ygersie/nginx-ldap-lua:1.11.3" 
       network_mode = "host" 
       volumes = [ 
        "local/config/nginx.conf:/etc/nginx/nginx.conf" 
       ] 
      } 

      template { 
       data = <<EOF 
worker_processes 2; 

events { 
    worker_connections 1024; 
} 

env NS_IP; 
env NS_PORT; 

http { 
    access_log /dev/stdout; 
    error_log /dev/stderr; 

    auth_ldap_cache_enabled on; 
    auth_ldap_cache_expiration_time 300000; 
    auth_ldap_cache_size 10000; 

    ldap_server ldap_server1 { 
    url ldaps://ldap.example.com/ou=People,dc=example,dc=com?uid?sub?(objectClass=inetOrgPerson); 
    group_attribute_is_dn on; 
    group_attribute member; 
    satisfy any; 
    require group "cn=secure-group,ou=Group,dc=example,dc=com"; 
    } 

    map $http_upgrade $connection_upgrade { 
    default upgrade; 
    '' close; 
    } 

    server { 
    listen 15080; 

    location/{ 
     auth_ldap "Login"; 
     auth_ldap_servers ldap_server1; 

     set $target ''; 
     set $service "hashi-ui.service.consul"; 
     set_by_lua_block $ns_ip { return os.getenv("NS_IP") or "127.0.0.1" } 
     set_by_lua_block $ns_port { return os.getenv("NS_PORT") or 53 } 

     access_by_lua_file /etc/nginx/srv_router.lua; 

     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection $connection_upgrade; 

     proxy_read_timeout 31d; 

     proxy_pass http://$target; 
    } 
    } 
} 
EOF 
       destination = "local/config/nginx.conf" 
       change_mode = "noop" 
      } 

      service { 
       port = "http" 

       tags = [ 
        "urlprefix-hashi-ui.example.com/" 
       ] 

       check { 
        type = "tcp" 
        interval = "5s" 
        timeout = "2s" 
       } 
      } 

      resources { 
       cpu = 100 
       memory = 64 
       network { 
        mbits = 1 
        port "http" { 
         static = "15080" 
        } 
       } 
      } 
     } 
    } 
} 

어떤 조언을 주셔서 감사합니다.

+0

그것은 당신이 당신의 질문을 통해 오지 않았다 포함하도록 의도 "이"링크처럼 보인다. – programmerq

+0

죄송합니다. 이제 수정되었습니다. –

답변

1

Nginx를 사용하고 있으므로 Nginx에서 쉽게 인증을 사용할 수 있습니다. 다음은 몇 가지 유용한 링크 :

흥미롭게도,이 문제뿐만 아니라 HashiUI GitHub의의의 repo에서 설명합니다. 또한이 방법을 살펴보십시오 : https://github.com/jippi/hashi-ui/blob/master/docs/authentication_example.md

감사합니다, Arul

+0

감사합니다. –