development

Berksfile의 Chef 'cookbook'과 metadata.rb의 'depends'

big-blog 2020. 12. 12. 12:07
반응형

Berksfile의 Chef 'cookbook'과 metadata.rb의 'depends'


'cookbook'을 사용하여 Berksfile에 요리 책을 추가하는 것과 'depends'를 사용하여 metadata.rb에 요리 책을 추가하는 것의 차이점은 무엇입니까? 예를 들어 metadata.rb에 추가하면

depends 'nginx'

Berksfile에 추가해야합니까?

cookbook 'nginx'

?


Berksfile은 Berkshelf에 따라 다르며 메타 데이터 파일은 Chef에 내장되어 있습니다.

메타 데이터 파일에 종속성을 추가하면 librarian-chef 또는 슈퍼마켓과 같은 다른 응용 프로그램에서도 종속성을 읽을 수 있습니다.

Berkshelf metadata는 Berksfile에 줄을 추가하는 한 메타 데이터에서도 종속성을 읽습니다 .

메타 데이터 파일에 모든 종속성을 지정하고 Berksfile을 사용하여 슈퍼마켓 (예 : Github 또는 로컬 경로)에서 사용할 수없는 특정 요리 책이 저장된 위치를 가리킬 것을 강력히 권장합니다.


Berksfile과 metadata.rb는 해결 목적이 다르며 요리 책 수명주기의 여러 단계에서 그림으로 나타납니다.

  1. Berksfile 쿡북의 종속성 관리를위한 것입니다. 내 요리 책이 요리사 슈퍼마켓 의 커뮤니티 요리 책을 사용하는 경우를 생각해보십시오. 이 경우 먼저 슈퍼마켓에서 커뮤니티 요리 책을 다운로드하고 내 요리 책과 함께 요리사 서버에 업로드해야합니다. Berksfile은이 워크 플로우를 단순화합니다. 단일 명령 (berks install)으로 모든 종속 쿡북 (및 종속 쿡북-전이 종속성)을 해당 소스 (git 저장소 또는 슈퍼마켓에서 가져올 수 있음)에서 다운로드합니다. 또 다른 단일 명령berks upload으로이 모든 요리 책을 요리사 서버에 업로드합니다. 을 사용하여 개별적으로 업로드 할 필요가 없습니다knife cookbook upload. 특히 요리 책 라이프 사이클에서 Berksfile의 역할은여기서 끝납니다.

  2. metadata.rb 는 실제로 노드를 수렴하는 동안 chef-client에 의해 참조됩니다. 이 파일을 사용하여 chef 서버에서 필요한 모든 쿡북을 (berkshelf또는을 사용하여 이제 chef 서버에서 사용할 수 있다고 가정knife) 노드로 다운로드하여 chef-client 실행을 성공적으로 완료합니다.

참고 URL : https://stackoverflow.com/questions/25342587/chef-cookbook-in-berksfile-vs-depends-in-metadata-rb

반응형