2017-09-29 30 views
0

복잡한 리포지토리를 소규모 저장소의 구성으로 구축하고 싶습니다.역할 당 git submodules를 사용하여 배포 가능한 구성을 구성하는 업계 표준 방법이 있습니까?

예를 들어, 서버를 구성하고 jdk를 설치하고 weblogic을 설치하고 기본 도메인을 설정하는 역할로 빌드하고자하는 Oracle UIM 설치로 자원 명세 관리 서버를 배치하고 싶을 수 있습니다 그 스택에 UIM을 드롭하십시오.

jdk를 설치하고, weblogic 바이너리를 설치하고, 표준화 된 도메인 구성을 설치하는 등 표준 구성을 수행하는 역할을 만들 수 있지만, 특정 작업에는 항상 조정과 추상화가 필요합니다.

{{install_user}} 또는 {{DB_URL}}과 같이 공통 변수를 설정하는 표준이 있습니까?

그렇지 않다면 누구든지 프로젝트 관리자가 없을 때 디자인을 계속 유지할 수있는 좋은 제안이 있습니까?

답변

1

나는 약 10 microservices 정말 복잡한 설정을 가지고 그들은 일반적인 변수의 톤을 사용하고있는 내가 이름 common_vars과 별도의 역할이 작성되어 있으며 defaults 모두 포함 defaultstasks 내부에 두 개의 폴더가 있습니다 공통 변수 인 tasks에는 main.yml이 비어 있으며이 역할을 다른 모든 서비스 배포 역할에 대한 메타 종속성으로 가져 와서 공용 변수를 공유합니다.

-- common_vars 
| |-- defaults 
| | `-- main.yml 
| `-- tasks 
|  `-- main.yml 

(정말 크다 현실에서 최소한의 예)이 같은 내 defaults/main.yml 모양 내 다른 역할 meta/main.yml에서

--- 
ENVIRONMENT: "dev" 

COMMON_BASE_DIR: "/mydir" 
COMMON_WEB_DIR: "{{ COMMON_BASE_DIR }}/www" 

COMMON_LOG_DIR: "/var/log" 

COMMON_WEB_USER: "www-data" 
COMMON_WEB_GROUP: "www-data" 


common_ubuntu_packages: 
    - git 
    - vim 
    - screen 

이 같은 종속성으로 추가 :

--- 
dependencies: 
    - common_vars 
+0

그것을 않습니다. 좀 편하게 책을 꾸밀 수 있도록 공개 비평과 입력을 위해 제 자신의 대답을 제공 할 수 있습니다. –

+0

다른 역할이이 값에 액세스 할 수있게합니까? –

+1

네 대답은 'dependency'로'meta/main.yml'에 추가하면된다. –