Capistrano 자동화 배포 사용 방법: 시작

Capistrano 자동화 배포 사용 방법: 시작

2022-06-01 last update

7 minutes reading Miscellaneous CentOS Ruby

소개


웹 기반 응용 프로그램을 개발하는 관건적인 분야 중 하나는 배치이다. 이것도 많은 대기업들이 자랑하는 부분이다.더 정확히 말하면 어떻게 배치하는가.이 임무는 어떤 사람들은 당신의 프로젝트에 대해 직접적이거나 추가적인 가치가 거의 없는 잡무라고 확실히 생각한다.그러나 정성스럽게 설계된 [배치] 과정은 당연히 비용을 줄이는 데 도움이 된다. 예를 들어 시간을 낭비하여 제품을 출시하는 것이다.
매우 구체적이고 끊임없이 변화하는 수요와 절대적인 분야 중심의 수요가 있지 않으면, 응용 프로그램을 온라인으로 연결할 때, 각종 전용 도구, 자동화 방법 또는 스크립트를 이용하여 실제 개발 작업으로 더욱 빨리 돌아갈 수 있습니다!
이 Digital Ocean 글에서 우리는 Capistrano: 루비 기반의 원격 서버 자동화 도구로 일상적인 배치와 시스템 관리 임무를 자동화하는 데 쉽게 사용할 수 있음을 깊이 있게 이해할 것이다.Capistrano를 사용하면 일반적으로 제품을 사용하기 위한 모든 조작을 완전히 자동화할 수 있습니다.

카탈로그


1, 카피스트라노

  • 루비 프로그래밍 언어
  • Capistrano 레시피
  • 시스템/서버 관리
  • 애플리케이션 배포
  • 2. Capistrano 설치

  • 시스템 준비
  • Ruby 설치
  • Capistrano 설치
  • 3. Capistrano 시작

  • Capistrano Basic
  • 프로젝트 내에서 Capistrano 시작
  • Capistrano 배포를 사용하는 사용자 만들기
  • 카피스트라노


    우리가 소개에서 언급한 바와 같이 Capistrano는 루비 기반의 소스 서버 관리 도구이다.그것은 단지 많은 기존 자동화 솔루션의 다른 대체 방안일 수 있지만, 강력한 [고급] 기능 때문에 매우 좋은 사용 방법이다.
    다른 자동화 라이브러리와 유사하게 Capistrano를 사용하면 가상 서버에서 임의의 함수를 실행할 수 있으며 직접적인 간섭이 필요 없다. - Capistrano를 통해 스크립트(즉 설계도)를 실행할 수 있다.그러나 일반적으로 이 도구를 자신의 배치 조수로 간주할 수 있습니다. 이 도구는 거의 모든 일을 완성할 수 있도록 도와줍니다. 배치 기계에서 코드를 얻는 것부터 배치 과정을 안내하는 것까지, 동시에 여러 시스템에서 이 일을 완성할 수도 있고, 순환 방식으로 이 일을 완성할 수도 있습니다.
    인터넷의 많은 강좌를 보면 Capistrano가 RoR의 완벽한 프레임워크라고 생각할 수 있습니다.그러나 루비 중심의 프레임워크(또는 도구)임에도 불구하고 PHP 웹 응용 프로그램을 배치하는 등 다양한 유형의 배치 장면을 안전하게 처리할 수 있습니다.

    루비 프로그래밍 언어


    루비는 일반적인 동적 프로그래밍 언어로 루비 온 레일스 웹 응용 프로그램 개발 프레임워크가 발표되면서 유행하고 있다.
    루비를 사용하여 스크립트를 작성하는 간결하고 질서정연한 방식(언어의 디자인 방식 때문에)은 이 언어가 큰 동력을 얻는 데 도움을 주었다.게다가 RoR 프레임워크의 목표와 이념, 그리고 대상 프로그래밍(OOP) 언어로 제공된 기능(당시 경쟁사에 비해), 루비는 지난 10년 동안 가장 인기 있는 언어 중 하나가 되었다.
    Capistrano는 루비 기반의 도구로 사용자에게 루비 배치 설계도를 컴파일할 때 루비의 깨끗하고 뚜렷한 문법을 이용할 가능성을 제공한다.

    Capistrano 레시피


    Capistrano 줄말의 레시피는 배포(또는 관리) 응용 프로그램과 서버의 조작 설명을 포함하는 파일로 변환됩니다.이러한 방법을 수정하여 Ruby(또는 Rails)와 무관한 언어별 배포를 지원할 수 있습니다.이를 Capistrano에서 작업을 수행하는 데 사용되는 스크립트로 볼 수 있습니다.

    시스템 / 서버 관리


    만약 당신이 어떤 상황에서 Capistrano가 쓸모가 있는지 알고 싶다면, 아래에서 몇 가지 예를 찾을 수 있습니다.
    시스템 및 서버 관리 작업 (일반) 에는 다음과 관련된 거의 모든 내용이 포함됩니다.

  • 서버 구축

  • 응용 프로그램 설치

  • 이러한 애플리케이션을 실행하는 시스템 유지 관리

  • 모니터링
  • VPS를 사용하기 시작하면 완전히 성숙한 가상화 서버로 완전한 제어/액세스 권한을 가지게 됩니다.
    응용 프로그램이 점점 유행하기 시작하면서 일도 발전하기 시작했고 여러 개의 액체를 관리하고 모든 일을 반복할 필요가 없어졌다.응용 프로그램을 배치하고 유지 보수를 처리할 때, 특히 관리 비용과 시간 낭비에 직면하게 될 것입니다.
    Capistrano는 응용 프로그램 배치부터 대부분의 것을 완성하는 데 도움을 줄 수 있다.

    애플리케이션 배포


    웹 사이트, API 또는 서버를 막론하고 애플리케이션을 배포하는 것은 일반적으로 모든 컨텐츠 업데이트, 다운로드 의존 항목, 파일 구조 및 권한 설정, 최종 코드 라이브러리 업로드 또는 Git 등 소스 코드 관리자(SCM)를 사용하여 시스템을 설정하는 것을 의미합니다.
    개발 과정에서 모든 단계에서 실행해야 할 명령이 있을 수 있습니다. 예를 들어 배치 주기에 들어가기 전에.
    같은 절차를 끊임없이 반복하여 얼마나 많은 시간을 낭비했는지 깨달은 후에 논리적 조직 방식(가장 중요한 것은) 프로그래밍 가능한 방식으로 이 작업(로컬과 원격)을 작성하는 스크립트는 매우 귀중하다는 것을 증명합니다. 왜냐하면 이 과정에서 모든 일이 틀리기 쉽기 때문입니다.

    Capistrano 설치


    참고: 이 문서에서는 CentOS 6.5 운영 체제에서 실행되는 VPS에 Capistrano를 설치하는 데 중점을 두고 설명합니다.다른 정렬 (예: Ubuntu) 을 사용하는 경우 같은 논리가 적용되지만 설치를 위해 official Capistrano documentation here 를 확인하는 것이 좋습니다.
    참고: 이 섹션은 현재 사용할 수 있는 최신 Ruby 버전을 설정하는 곳입니다. 이 주제에 대한 전문 기사의 요약입니다 - How To Install Ruby 2.1.0 On CentOS 6.5.

    준비 시스템


    루비 (와Capistrano) 를 설치하기 위해서, 우리는 운송량이 가장 적은 CentOS droplet을 준비하여 다른 응용 프로그램과 도구를 설치하는 데 사용할 개발 도구를 갖추어야 한다. (예를 들어 원본 코드에서 루비의 컴파일러를 설치하는 것).
    시스템 업데이트부터 시작합시다.
    다음 명령을 실행하여 CentOS 기반 droplet의 기본 도구를 업데이트합니다.
    yum -y update
    
    다음 명령을 실행하여 개발 도구가 포함된 번들을 설치합니다.
    yum groupinstall -y 'development tools'
    

    루비 설치


    Ruby 버전 관리자 RVM을 사용하여 Rubies(RVM이 가리키는 Ruby 해석기)를 다운로드하고 설치합니다.
    다음 두 명령을 실행하여 RVM을 설치하고 Ruby를 위한 시스템 환경을 만듭니다.
    curl -L get.rvm.io | bash -s stable
    source /etc/profile.d/rvm.sh
    
    마지막으로 Ruby를 우리 시스템에서 완료하기 위해 RVM에서 Ruby 2.1.0 버전을 다운로드하여 설치합니다.
    rvm reload
    rvm install 2.1.0
    
    Ruby가 설치 및 설정되었는지 확인하려면 다음과 같이 하십시오.
    ruby --version 
    # ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
    

    Capistrano 설치


    일단 우리의 시스템이 준비가 다 되면, 루비 Gems를 빌려 Capistrano의 최신 버전을 얻는 것은 매우 쉽다.
    다음 내용을 사용하여 Capistrano 버전 3을 사용할 수 있습니다.
    gem install capistrano
    
    절대 최신 버전을 사용하려면 Github 저장소에 연결합니다.
    git clone https://github.com/capistrano/capistrano.git
    cd capistrano
    gem build *.gemspec
    gem install *.gem
    
    Ruby와 유사한 방법으로 Capistrano 설치를 검증할 수 있습니다.
    cap --version
    # Capistrano Version: 3.1.0 (Rake Version: 10.1.0)
    

    Capistrano 시작


    일단 모든 필요한 구성 요소를 설정하고 준비가 다 되면, 우리는 입문문의 마지막 부분에서 캐피스트라노의 기본 지식을 계속 배울 수 있다.

    Capistrano 기초 지식


    Capistrano를 사용하는 관건은 프로젝트를 외부 Git 저장소에 제출하는 것입니다. 배포 과정에서 이 저장소에서 다운로드할 수 있습니다.
    Github와 같은 공급자를 선택하여 이 작업을 수행할 수 있습니다.
    또는 방문here을 통해 Git에 있는 Digital Ocean의 커뮤니티 글을 보고 VPS에서 개인 Git 저장소를 호스팅하거나 Git를 사용하는 방법을 알 수 있습니다.
    참고 Capistrano의 권장 사항에 따라 데이터베이스 연결에 대한 보안 자격 증명과 같은 중요한 정보는 저장소에 포함되지 않아야 합니다.

    프로젝트 내부에서 Capistrano 시작


    Capistrano 버전 3을 시작하는 것은 버전 2와 약간 다르며 다음 명령으로 구성됩니다.
    # Usage:
    # Enter the project directory: cd [project-name]
    # Initiate Capistrano:         cap install
    cd  myapp
    cap install
    

    Capistrano 배포를 사용하는 사용자 만들기


    Capistrano를 사용하여 배치할 때 레시피를 실행하는 좋은 방법은 기본 사용자 이외의 사용자root를 사용하는 것이다.우선, 우리는 deployers 그룹을 만들고 그들에게 계속 조작할 수 있는 권한을 부여할 것입니다.
    물방울에 새 그룹을 추가하려면 다음과 같이 하십시오.
    groupadd deployers
    
    현재 우리는 deployers 그룹에 권한이 있는 사용자를 계속 추가할 수 있습니다.
    deployer를 deployer로 추가합니다.
    # Usage: sudo usermod -a -G deployers [name]
    sudo usermod -a -G deployers deployer
    
    마지막으로 배포자 그룹에 권한을 부여하려면 다음 명령을 실행하고 /etc/sudoers 파일을 편집하십시오.
    nano /etc/sudoers
    
    그룹 뒤에 다음 행을 추가합니다.
    ..
    ## Allows people in group wheel to run all commands
    %deployers      ALL=(ALL) ALL
    
    ..
    

    진일보한 정보


    참고: SSH 및 sudo에 대한 자세한 내용은 Linux Basics 의 Digital Ocean 커뮤니티 글을 참조하십시오.
    이렇게!우리는 현재 이미 Capistrano를 사용하여 배치할 준비가 되어 있다.다음 Capistrano 글을 계속하여 각종 배치 장면에서 이 도구를 어떻게 사용하는지 알아보십시오.
    제출자:
    href=“https://twitter.com/ostezer”>O.S.Tezer