capistrano+wercker로 여러 환경에 자동 배포

2764 단어 워커RailsCapistrano
capistrano 자체는 capistrano-ext 사용하면 production이라든지 staging이라든지 복수 환경에의 배치가 가능하게 되지만, 그것을 wercker 사용해 복수 환경에 자동 배치할 수 있도록(듯이) 했다.

이곳을 미리 보면 좋을지도 모릅니다.
Rails+postgresql+capistrano 환경의 wercker 설정

wercker.yml 파일


$WERCKER_DEPLOYTARGET_NAME라는 환경 변수를 deploy 목적지의 이름으로 사용할 수 있으므로 (후술하는 관리 화면에서 지정하는 사람)이므로 아래와 같이 yml 파일을 작성한다.

wercker.yml
deploy:
    steps:
        - bundle-install
        - script:
            name: make .ssh directory
            code: mkdir -p "$HOME/.ssh"
        - create-file:
            name: write ssh key
            filename: $HOME/.ssh/id_rsa
            overwrite: true
            hide-from-log: true
            content: $WERCKER_SSH_KEY_PRIVATE
        - script:
            name: set permissions for ssh key
            code: chmod 0400 $HOME/.ssh/id_rsa
        - cap:
            stage: $WERCKER_DEPLOYTARGET_NAME
            tasks: deploy

wercker 관리 화면에서 Deploy targets 설정



아래 썸네일의 예는 master 브랜치에 merge되면 production 환경에 배포하고 싶은 경우. staging 브랜치에 merge되는 경우에 staging 환경에 배치하고 싶은 경우에, 둘 다 staging로 쓰면 좋다.



일부 환경이 있으면 그만큼 관리 화면에서 만들면 그만큼 자동 배포됩니다.

좋은 웹페이지 즐겨찾기