2017-03-23 14 views
1

Consul과 Nomad가 리소스 풀에서 실행되도록 구성되었다고 가정합니다. 예를 들어 파일을 생성 할 목적으로 템플릿 파일을 어떻게 렌더링하셨습니까? Nginx 'default.conf'파일.유목민 작업 파일을 통해 nginx 설정 파일을 생성하려면 Hashicorp의 Nomad 'template stanza'를 어떻게 사용 하시겠습니까?

아래의 템플릿 스탠자 구성을 예로 사용하십시오. Nomad는 default.conf '파일'을 생성하지 못합니다. 대신 default.conf 'directory'가 생성됩니다.

template { 
    source  = "/path/to/tmp.ctmpl" 
    destination = "folder/default.conf" 
    change_mode = "restart" 
    change_signal = "SIGINT" 
} 

나는 트릭이 없거나 '템플릿 스탠자'의 기능을 오해하고 있습니다.

파일이 아닌 디렉터리를 생성하는 템플릿의 문제 중 하나는 구성 파일 경로에 디렉터리를 탑재 할 수 없다는 것입니다. 따라서 노매드 도커 드라이버를 '도커'볼륨 구성으로 사용하는 작업을 실행하면 오류가 발생합니다.

volumes = ["/path/to/job/folder/default.conf:/etc/nginx/conf.d/default.conf" ] 

또는 템플릿 스탠자가 구성 파일을 생성하는 것이 불가능합니까?

* P.s. Nomad 빌드 사용하기 0.5.5 **

답변

1

약간의 구성 오류가있을 수 있으므로이 작업을 보여주는 약간의 유목민 작업을 정리했습니다. 당신이 직접 일을 할 수있게하기 위해서 나는 그것을 gist here으로 만들었습니다. 같은 요점에서 나는 nginx가 가지고있는 nginx.conf를 가지고있다. nginx는 Nomad 작업 파일에있는 모든 포트를 수신 대기한다.

job "nginx" { 
    datacenters = ["dc1"] 
    type = "service" 
    group "cache" { 
    count = 1 
    task "redis" { 
     driver = "docker" 
     config { 
     image = "nginx:1.11.10" 
     volumes = ["new/default.conf:/etc/nginx/conf.d/default.conf" ] 
     network_mode = "host" 
     } 

     artifact { 
     source = "https://gist.githubusercontent.com/dadgar/2dcf68ab5c49f7a36dcfe74171ca7936/raw/c287c16dbc9ddc16b18fa5c65a37ff25d2e0e667/nginx.conf" 
     } 

     template { 
     source  = "local/nginx.conf" 
     destination = "new/default.conf" 
     change_mode = "restart" 
     } 

     resources { 
     network { 
      mbits = 10 
      port "nginx" { 
      static = 8080 
      } 
     } 
     } 
    } 
    } 
} 

내가 그 주소를 조회 할 수 있으며, 그 nginx를가함으로써 템플릿이 제대로 작동 장착되고, 해당 포트에 바인딩을 참조하십시오

다음은 유목민 일이다.

$ curl http://127.0.0.1:8080 
<!DOCTYPE html> 
<html> 
<head> 
<title>Welcome to nginx!</title> 
<style> 
    body { 
     width: 35em; 
     margin: 0 auto; 
     font-family: Tahoma, Verdana, Arial, sans-serif; 
    } 
</style> 
</head> 
<body> 
<h1>Welcome to nginx!</h1> 
<p>If you see this page, the nginx web server is successfully installed and 
working. Further configuration is required.</p> 

<p>For online documentation and support please refer to 
<a href="http://nginx.org/">nginx.org</a>.<br/> 
Commercial support is available at 
<a href="http://nginx.com/">nginx.com</a>.</p> 

<p><em>Thank you for using nginx.</em></p> 
</body> 
</html> 

요점을 살펴보면 렌더링되고 올바르게 마운트 된 파일을 보여줍니다.

희망이 도움이됩니다. 또한 도움을 청하는 경우 community page을 확인하십시오. 우리는 거터 룸과 우편 목록을 가지고 있습니다.

+0

예를 들어 주셔서 감사합니다, 그것은 예상대로 작동합니다. 또한, 좋은 지적, 나는 미래를 위해 거친 방을 조사 할 것이다. –