셸 스크립트와 Rsync로 제작된 소형 배포기

밖에 그렇게 많은 물건이 있는데, 호은아?용기, 지속적 통합, Git 배치, 파이프 등등. 사실상 그것들은 매우 좋다.
그러나 때때로 우리 수중에 남겨진 프로젝트가 하나 있는데, 일부 낡은 물건이나 거대한 인프라 시설 전체가 있는데, 이것은 재구성에 있어서 매우 위험하다.
이런 프로젝트에서 배치 전략을 시작하는 것은 진정한 악몽이 될 수도 있다.나는 사람들이 처음부터 환경을 설정한 다음에 FTP 클라이언트를 FileZilla로 사용하거나 rsync와 scp 등 터미널 명령을 반복해서 사용해서 프로젝트의 최신 상태를 유지하는 것을 자주 본다.
이러한 구조를 고려하여, 나는 셸 스크립트와 rsync를 사용하여 매우 간단한 소형 배치기를 만들었다.물론, 이곳의 주요 기능은 로컬 프로젝트와 서버 사이에서 파일을 동기화하는 것이다.여러 개의 호스트를 추가할 수 있고 어느 정도 자동화할 수 있지만, 이것은 오늘날 우리가 가지고 있는 어떤 진정한 배치 기술과도 비교할 수 없습니다. (물론입니다.)사실 이곳의'배치자'라는 이름이 더 중요하다
그것이 진정으로 만든 것이 아니라 그것을 보완하려고 시도하는 것이 설명적이다.
Blabla Blabla가 더 이상 없습니다.
필요한 사항:
rsync 및 git가 설치된 *Unix 로컬 시스템입니다.
Rsync 및 SSH 연결이 활성화된 *Unix 서버입니다.
이러한 요구 사항 중 대부분은 *Unix 시스템의 기본 구성에 불과합니다.이제 다음 절차를 따르십시오.
  • github에서 항목 복제 또는 다운로드:
    https://github.com/felippe-regazio/sh-simple-deployer
  • 파일과 deploy.sh 폴더를 프로젝트 루트 디렉터리로 복사합니다.
  • 파일을 열면 2개의 그룹에 허위 정보가 있는 것을 볼 수 있습니다.모든 진열은 rsync가 동기화할 때 어떤 연결과 경로를 사용해야 하는지 알려주는 효과적인 배치 프로그램 호스트입니다.예를 들어 여러 목표에 배치하기 위해 필요에 따라 수량을 추가할 수 있다.다른 배열을 삭제하고 기본값만 유지합니다.다음과 같이 구성됩니다.
  • declare -a default=(
        [email protected]
        /path/to/project/root/on/server
        https://yourprojecturl.com
    )
    
    deploy가 있는 deploy/_hosts.sh에서 모드1st line에 따라 ssh 연결을 추가할 수 있습니다.다른 포트를 통과해야 한다면, 이렇게 사용할 수 있습니다 [email protected].user@host에서 user@host:port를 프로젝트2nd line에 추가해야 합니다.프로젝트의 절대 경로를 발견하려면 ssh로 서버에 접근하여 프로젝트 루트 폴더로 이동하고 absolute path를 입력하십시오.루트 경로 찾기에 대한 참조로 filezilla 또는 GUI 클라이언트를 사용하지 마십시오.ON THE SERVER에서 프로젝트 IP 또는 URL을 추가해야 합니다.배치원은 그것을 사용하지 않지만, 기능을 확장하거나 프로젝트의 위치를 알려 주어야 할 수도 있습니다.
  • 파일을 열고 업로드할 경로나 파일을 추가합니다. 프로젝트 루트 디렉터리와 연결되어 빈 줄로 구분되어야 합니다.동기화할 기본 디렉토리는 ""입니다.또는: 전체 루트 폴더입니다.
  • 가 열리고 디렉토리와 같은 방식으로 경로나 파일을 추가합니다.txt.rsync는 이 경로, 규칙, 파일을 무시합니다.
  • 지금 pwd를 열고 메시지를 추가합니다.이 메시지는 스크립트를 실행할 때마다 표시됩니다.이 단계는 선택 사항입니다.
  • 이제 출발할 준비 다 됐어.3th line 파일에 대한 실행 권한을 줍니다.프로젝트 루트 디렉토리에서 터미널을 열고 실행하려면 다음과 같이 하십시오.
    ./deploy.sh
    
    deploy/directories.txt를 사용하여 실행할 수 있지만 설명에 명시된 대로

    From a systems perspective you don't need to launch a new shell by using sh. Instead ./scriptname.sh whilst in the same directory will work too. And if you have to be root sudo su - will work just as well.


    처음 실행할 때 rsync는 로컬 프로젝트와 서버 프로젝트를 동기화합니다.현재 프로젝트의 일부 내용을 수정할 때 deDeployer를 실행하면 설정에 따라 수정된 파일만 동기화됩니다.에 로그 저장/배포/기록.
    호스트에 새 항목을 추가할 수 있습니다.sh를 매개 변수로 호출합니다.예를 들어, 호스트에 다른 스토리지를 구성한 경우, 우리는 그것을 이렇게 사용할 수 있다.
    ./deploy.sh another
    
    마지막으로 그것은 좋은 것과 낡은 것deploy/ignore.txt일 뿐이다.그러나 이 스크립트는 기존 시스템의 배치 과정에 자동화와 표준화를 가져왔다.
    자술하다.md는github에서 더 많은 정보를 얻거나 언제든지 저에게 메시지를 보냅니다.다시 한 번 말하지만, 이것은 이상적인 현대 해결 방안이 아니다. 이것은 인프라 시설, 낡은 프로젝트, 나쁜 호스트 등의 문제를 해결하는 각본이다. 나는 너의 상황을 모르겠지만, 이것은 너에게 유용할 수 있다. 이것이 바로 중점이다.당신들의 관심에 감사 드립니다. 이것이 바로 모든 사람입니다.

    좋은 웹페이지 즐겨찾기