2014-03-05 5 views
37

현재의 요리사를 기반으로 한 구성 관리를 안전하게 할 수 있는지 조사 중입니다.비공개 팀에서 연극 편을 공유하는 모범 사례?

우리는 비슷한 의존성 (루비, 유니콘, nginx, monit, MySQL 등)을 가진 많은 레일 애플리케이션을 빌드합니다.

그래서 지금 우리는 도서관 사서와 개인 github repos를 사용하여 서로 다른 프로젝트간에 공통된 요리법을 공유하고 있습니다.

나는 무언가에 새로운, 나는 가장 가까운 것은 은하계이다. 그러나 그것은 "밖에서 열린"스타일의 것으로 보인다.

개인 환경에서이 작업을 수행하는 가장 일반적인 방법은 무엇입니까?

Git submodules 만 생각할 수있는 유일한 대답이지만, 요리사 세계에서 익숙한 것처럼 좀 더 자동적 인 것이 있으면 좋을 것입니다.

+9

위대한 질문 : upvoted! IMO를 폐쇄해서는 안됩니다. 나는 정확한 * 동일한 질문으로 여기에왔다. – devth

답변

41

두 가지 주요 솔루션 : roles_pathansible-galaxy.

Ansible 1.4에서

하고 나중에 역할을 검색 할 roles_path을 구성 할 수 있습니다 구성 ansible.cfgroles_path

roles_path

첫째. 이 기능을 사용하여 공통된 모든 역할을 한 곳에서 확인하고 여러 장의 플레이 북 프로젝트간에 쉽게 공유 할 수 있습니다. 이 설정 방법은 secured.cfg를 참조하십시오. 에서

roles_path = /opt/ansible/common_roles/:/opt/ansible/other_roles/ 

: http://docs.ansible.com/playbooks_roles.html#introduction

-ansible 은하

둘째, 당신은 ansible-galaxy 명령을 사용할 수 있습니다

그래서 당신은 예를 들어, 일부 폴더에 공유 역할을 넣어야 할 줄 :

ansible-galaxy install -r requirements.yml 

다음 요구 사항이 충족되어야합니다.yml :

# from github, overriding the name and specifying a specific tag 
- src: https://github.com/bennojoy/nginx 
    version: master 
    name: nginx_role 

# from a webserver, where the role is packaged in a tar.gz 
- src: https://some.webserver.example.com/files/master.tar.gz 
    name: http-role 

Zip 파일을 통해 공유 역할을 호스팅 할 수 있습니다.

출처 : http://docs.ansible.com/galaxy.html#the-ansible-galaxy-command-line-tool

+3

대답을 찾았습니다. anants-galaxy는 이제 표준 ssh 형식 git url을 허용합니다. –

+0

@MichaelJohnston이 방법을 공유 할 수 있습니까? – Tristan

+5

또한 은하에 관해서는 각 repo에 대해 하나의 역할을해야한다는 의미입니까? 우리가 거기에 모든 역할을 담은 단일 리포를 선택한다면 어떨까요? – Tristan

1

커뮤니티 지원과 관련하여 Chef, Puppet 및 기타 도구보다 초기 단계에 가능성이 있습니다.

그래서 저는 지금 당신이 운이 없다고 생각합니다. librarian-chef에 가장 가까운 것은 Ansible Galaxy이며 아직 진행중인 작업 (베타)입니다. 그리고 당신이 말했듯이 그것은 열려 있습니다. 말하자면, 그것은 Anabilities 플레이 북 팀 패키지와 같은 것이 나중에 Ansible 자체 또는 타사 개발자로부터 사용 가능하지 않음을 의미하지는 않습니다.

지금까지는 다른 디렉토리 또는 다른 역할로 플레이 북을 분리하는 일반 git 저장소 만 사용했습니다. 결국 git는 여러 개발자를 염두에두고 설계되었습니다. 개인 무버블 갤럭시와 같은 것을 달성하기 위해 여러 자식 하위 저장소를 사용할 수 있지만 git sub-repos를 관리하는 것은 작업의 직접적인 작업이 아닙니다. 특히 자식 서브 저장소가 많은 경우 특히 그렇습니다.