난 요리사로보고 EC2 같은 표준 젠토 호스팅 옵션뿐만 아니라 환경에 모두 - 젠토 배포를 자동화 할 수 있습니다. 나는 구글을 둘러 보았고 수많은 레시피를 보았지만 아무도 정식으로 나를 공격하지 않습니다. 더 나은 / 최고의 특정 요리사 스크립트가 있습니까? 또한 이전에 PHP를 사용하여 요리사 배포를 수행 한 경우 처음 시작할 때 알고 싶은 것이 무엇입니까?
난 요리사로보고 EC2 같은 표준 젠토 호스팅 옵션뿐만 아니라 환경에 모두 - 젠토 배포를 자동화 할 수 있습니다. 나는 구글을 둘러 보았고 수많은 레시피를 보았지만 아무도 정식으로 나를 공격하지 않습니다. 더 나은 / 최고의 특정 요리사 스크립트가 있습니까? 또한 이전에 PHP를 사용하여 요리사 배포를 수행 한 경우 처음 시작할 때 알고 싶은 것이 무엇입니까?
답변:
하나의 크기에 맞는 모든 루틴을 갖는 것은 거의 불가능합니다. 에서 chef-client
제공 한 호스트 목록에서 실행을 실행 하는 Bash 스크립트를 작성하는 데 성공했습니다 knife search
. 절차는 다음과 같습니다.
$branch
n98-magerun.phar
n98-magerun.phar
$revision
새 릴리스로 정의 된 것을 확인합니다출처 : https://gist.github.com/parhamr/6177160#file-2-deployment
이것이 sysadmin / devops 역할을 원하는 동안이 영역에 접근 한 방법입니다. 다음은 대부분 요리사가 아닌 일반적인 원칙입니다.
나는 그 당시에 더 많은 자원이 있다는 것을 알았 기 때문에 Puppet과 함께갔습니다.
나는 아파치, php5 등과 같은 것들에 사용할 수있는 다양한 사전 구축 모듈을 살펴 보았다. 그들 중 많은 것들이 내가 필요로하는 것보다 더 많은 것을하는 것처럼 보였고, 무슨 일이 있었는지 믿지 않는 플랫폼에 익숙하지 않은 것 같았다. 각 노드 유형에서 수행해야 할 작업을 식별하는 것이 더 간단해질 것이라고 결정했습니다.
팀의 로컬 개발 환경 (vargrant + virtual box)을 프로비저닝하여 프로세스를 시작했습니다. 각 서비스 / 구성 요소마다 php5, apache2, redis, mysql 등의 모듈을 만들었습니다.
개발 환경이 안정되고 작동하면 QA 환경을 구축하기 시작했습니다. 웹 서버, redis, varnish 등의 일반 노드 유형을 정의하여 dev와 동일한 모듈을 재사용했습니다. 이 작업이 완료되면 준비 및 프로덕션 필요 시작 및 실행에 최소한의 변경이 필요했습니다.
조리법 / 서식 파일을 작성하고 작성하면서 재사용 / 일반화 방법을 고려해야합니다. 배포판 / 프로젝트 / 환경간에 변경 될 수있는 경로 또는 사용자 / 그룹과 같은 것을 하드 코딩하지 마십시오. 일반화 된 접근 방식을보고 있기 때문에 큰 장애물이 * nix 배포판의 차이점을 처리 할 것입니다.
가장 중요한 것은 유지가 간단하다는 것입니다. 환경에서 가장 중요하고 시간 소모적 인 부분을 자동화 / 표준화합니다. 반복하고 진화하십시오.