capistrano-itamae라는 gem을 만들었습니다.

7203 단어 판 앞Capistrano

이 젬에 대하여



capistrano 에서 판 앞 을 실행하는 gem



동기 부여


  • capistrano와 itamae의 두 곳에서 호스트 정보를 관리하는 것이 어려워 capistrano에서 itamae를 부를 수있게했다
  • capistrano가 소유 한 호스트 정보를 기반으로 itamae ssh

  • 여러 서버에 ssh하여 명령을 발행 할 때 capistrano가 편리합니다.


    사용법



    초기 설정



    각각 추가

    Gemfile
    group :development do
      gem "capistrano-itamae", require: false
    end
    

    Capfile
    require "capistrano/itamae"
    


    기본 사용법


    on roles 안에 itamae_ssh
    desc "Run itamae"
    task :itamae do
      on roles(:all) do
        itamae_ssh "recipe.rb"
      end
    end
    

    실제로 실행되는 명령
    itamae ssh cookbooks/recipe.rb --host=HOST 〜
    

    ssh 관계의 파라미터 1 는 capistrano 로 설정된 것이 자동으로 itamae ssh

    여러 레시피를 실행하고 싶을 때



    배열로 전달
    desc "Run itamae"
    task :itamae do
      on roles(:all) do
        itamae_ssh ["recipe1.rb", "recipe2.rb"]
      end
    end
    

    실제로 실행되는 명령
    itamae ssh cookbooks/recipe1.rb cookbooks/recipe2.rb --host=HOST 〜
    

    옵션을 전달하고 싶을 때 (1)


    :itamae_ssh_default_options 로 설정하면 전체에 적용
    set :itamae_ssh_default_options, "--node-yaml=node.yml"
    
    desc "Run itamae"
    task :itamae do
      on roles(:all) do
        itamae_ssh "recipe.rb"
      end
    end
    

    실제로 실행되는 명령
    itamae ssh cookbooks/recipe.rb --node-yaml=node.yml --host=HOST 〜
    

    옵션을 전달하고 싶을 때 (2)


    itamae_ssh 의 제 2 인수에 건네주면 그 장소만 옵션이 유효하게 된다
    set :itamae_ssh_default_options, "--node-yaml=node.yml"
    
    desc "Run itamae"
    task :itamae do
      on roles(:all) do
        itamae_ssh "recipe.rb", "--dry-run"
      end
    end
    

    실제로 실행되는 명령
    itamae ssh cookbooks/recipe.rb --node-yaml=node.yml --dry-run --host=HOST 〜
    

    itamae-template과의 차이



  • itamae-template 하지만 itamae local 2 전제인데 비해, capistrano-itamae는 (현재) itamae ssh 3
  • itamae local 그럼.
  • 앱 실행에 불필요한 것은 최대 서버에 넣고 싶지 않은 파

  • itamae-template이라면 잡히게 젬을 넣고 잡하게 레시피 실행하기에는 조금 적합하지 않다
  • 메리데메는 있으므로 좋아하는 분을 사용하면 좋다고 생각합니다


  • 요약


  • capistrano와 itamae를 함께 사용하고 싶을 때 이용하십시오
  • 자세한 것은 README 참조



  • 덤: capistrano 플러그인의 통합 테스트



    이번 경우
  • capistrano를 적용한 더미 앱을 준비하고
  • Vagrant로 세운 VM에 itamae ssh
  • cap task 안에 cap deploy

  • Serverspec 실행

  • Wercker + DigitalOcean 에서 CI 실행


  • 디렉토리 구성


    spec/integration/
    ├── Capfile
    ├── Rakefile
    ├── Vagrantfile
    ├── config
    │   ├── deploy
    │   │   └── development.rb
    │   └── deploy.rb
    ├── cookbooks
    │   ├── memcached.rb
    │   ├── node.yml
    │   └── tmux.rb
    └── spec
        ├── memcached_spec.rb
        ├── spec_helper.rb
        └── tmux_spec.rb
    

    통합 테스트 만든 인상





    안심감

    참고 URL


  • Capistrano의 배포 작업을 Vagrant 기계에 적용 및 개발 - Qiita
  • ぃ tp // 이 m / 그 ts / ms / c3d60 A 155094b839 A 0f



  • itamae_ssh , --host , --user , --port

    서버로 들어가 itamae를 실행하십시오.

    ssh 태스크에 itamae를 실행합니다

    좋은 웹페이지 즐겨찾기