튜토리얼: 소스 제어로 환경 만들기#
기능 사용 가능 여부
- Enterprise 플랜에서 사용 가능
- 소스 컨트롤을 설정하고 Git과 데이터를 주고받으려면 n8n 인스턴스 소유자, 관리자, 또는 프로젝트 소유자여야 합니다.
이 튜토리얼은 환경을 처음부터 끝까지 설정하는 과정을 안내합니다. 두 개의 환경인 개발 및 프로덕션을 생성하게 됩니다. GitHub를 Git 제공자로 사용합니다. 다른 제공자에 대해서도 과정은 유사합니다.
n8n은 버전 관리 소프트웨어인 Git 위에 환경 기능을 구축했습니다. n8n 인스턴스를 Git 브랜치에 연결하고 푸시-풀 패턴을 사용하여 작업을 환경 간에 이동합니다. 환경 및 Git에 대한 기본적인 이해가 필요합니다. 이 주제에 대한 추가 정보가 필요하면 다음을 참조하세요:
소스 제어 패턴 선택#
소스 제어 및 환경을 설정하기 전에 환경을 계획하고 Git 브랜치와의 관계를 정해야 합니다. n8n은 다양한 브랜치 패턴을 지원합니다. 환경의 경우, 두 가지 패턴 중 하나를 선택해야 합니다: 다중 인스턴스, 다중 브랜치 또는 다중 인스턴스, 단일 브랜치. 이 튜토리얼은 두 패턴을 모두 다룹니다.
권장 사항: 동일한 n8n 인스턴스에서 푸시와 풀을 동시에 수행하지 마세요.
n8n 인스턴스에서 브랜치로 작업을 푸시하고, 같은 인스턴스로 다시 풀하는 것은 가능하지만, 권장되지 않습니다.
병합 충돌 및 작업 덮어쓰기를 방지하려면 한 방향으로만 작업을 진행하는 프로세스를 만들 것을 권장합니다. 즉, Git으로 푸시하거나 Git에서 가져오되, 두 작업을 동시에 수행하지 않는 것이 좋습니다.
다중 인스턴스, 다중 브랜치#
이 패턴의 장점:
- 프로덕션 환경에 변경 사항이 실수로 반영되는 것을 방지하는 추가적인 안전 장치가 됩니다.
환경 간 작업을 복사하려면 GitHub에서 풀 리퀘스트를 수행해야 합니다. - 두 개 이상의 인스턴스를 지원할 수 있습니다.
단점:
- 환경 간 작업을 복사하는 과정에서 수동 작업이 더 많이 필요합니다.
다중 인스턴스, 단일 브랜치#
이 패턴의 장점은 한 인스턴스에서 푸시하면 다른 환경에서도 즉시 작업을 사용할 수 있다는 것입니다.
하지만 다음과 같은 단점이 있습니다:
- 실수로 푸시하는 경우, 해당 작업이 프로덕션 인스턴스로 반영될 위험이 있습니다.
GitHub Action을 사용하여 자동으로 풀하도록 설정한 경우, 다중 인스턴스 및 다중 브랜치 패턴을 사용하거나, 프로덕션에 반영하고 싶지 않은 작업을 실수로 푸시하지 않도록 주의해야 합니다. - 동일한 인스턴스에서 푸시와 풀을 수행하면, 변경 사항이 덮어씌워지면서 데이터 손실이 발생할 수 있습니다.
작업 흐름이 한 방향으로만 진행되도록 프로세스를 설정하는 것이 좋습니다.
리포지토리 설정#
패턴을 선택한 후, GitHub 리포지토리를 설정해야 합니다.
- 새 리포지토리 만들기.
- 리포지토리는 비공식으로 설정하세요. 인터넷에 작업 흐름, 태그, 변수 및 자격 증명 스텁이 노출되는 것을 원하지 않는 경우입니다.
- 문서화가 가능한 새 리포지토리를 만들어 즉시 브랜치를 생성할 수 있습니다.
production
이라는 이름의 브랜치와development
라는 이름의 브랜치를 하나씩 생성하세요. 리포지토리 내에서 브랜치 생성 및 삭제를 참고하여 안내를 받으세요.
- 리포지토리는 비공식으로 설정하세요. 인터넷에 작업 흐름, 태그, 변수 및 자격 증명 스텁이 노출되는 것을 원하지 않는 경우입니다.
- 문서화가 가능한 새 리포지토리를 만듭니다. 이로 인해 연결할
main
브랜치가 생성됩니다.
n8n 인스턴스를 리포지토리에 연결#
개발용과 프로덕션용으로 두 개의 n8n 인스턴스를 만드세요.
n8n에서 Git 구성하기#
- 설정(Settings) > 환경(Environments) 으로 이동합니다.
- Git 저장소 URL(Git repository URL) 에 저장소의 SSH URL을 입력합니다.
- n8n은 ED25519 및 RSA 공개 키 알고리즘을 지원합니다. 기본값은 ED25519 입니다. Git 호스트에서 RSA를 요구하는 경우 SSH 키(SSH Key) 아래에서 RSA 를 선택하세요.
- SSH 키를 복사합니다.
배포 키 설정하기#
n8n의 SSH 키를 사용하여 리포지토리에 대한 배포 키를 생성하여 SSH 액세스를 설정합니다. 이 키는 쓰기 접근 권한이 있어야 합니다. 자세한 내용은 GitHub | 배포 키 관리를 참조하세요.
n8n 연결 및 인스턴스 구성하기#
- n8n의 설정 > 환경에서 연결을 선택합니다. n8n이 Git 리포지토리에 연결됩니다.
- 인스턴스 설정에서 현재 n8n 인스턴스에 사용할 브랜치를 선택합니다. 프로덕션 브랜치는 프로덕션 인스턴스에, 개발 브랜치는 개발 인스턴스에 연결합니다.
- 프로덕션 인스턴스 전용: 보호된 인스턴스를 선택하여 사용자가 이 인스턴스에서 워크플로를 편집하는 것을 방지합니다.
- 설정 저장을 선택합니다.
- n8n의 설정 > 환경에서 연결을 선택합니다.
- 인스턴스 설정에서 기본 브랜치를 선택합니다.
- 프로덕션 인스턴스 전용: 보호된 인스턴스를 선택하여 사용자가 이 인스턴스에서 워크플로를 편집하는 것을 방지합니다.
- 설정 저장을 선택합니다.
개발에서 작업 푸시하기#
개발 인스턴스에서 몇 개의 워크플로, 태그, 변수 및 자격 증명을 생성합니다.
Git으로 작업을 푸시하려면:
-
메인 메뉴에서 푸시(Push)
를 선택합니다.
-
커밋 및 푸시 변경사항(Commit and push changes) 모달에서 푸시할 워크플로를 선택합니다.
상태(새로운 항목, 수정된 항목, 삭제된 항목)별로 필터링하거나 검색하여 원하는 워크플로를 찾을 수 있습니다.
n8n은 태그, 변수 및 자격 증명 스텁을 자동으로 푸시합니다. - 커밋 메시지를 입력합니다. 변경 사항을 한 문장으로 간단히 설명하세요.
- 커밋 및 푸시(Commit and Push) 를 선택합니다.
n8n이 작업을 Git으로 전송한 후, 완료 메시지를 표시합니다.
프로덕션으로 작업 당기기#
작업이 이제 GitHub에 있습니다. 다중 브랜치 구성을 사용하는 경우 개발 브랜치에 있습니다. 단일 브랜치 구성을 선택한 경우 기본 브랜치에 있습니다.
- GitHub에서 개발을 프로덕션으로 병합하는 풀 리퀘스트를 생성합니다.
- 풀 리퀘스트를 병합합니다.
- 프로덕션 인스턴스에서 당기기
를 선택합니다.
프로덕션 인스턴스에서 당기기 를 선택합니다.
선택 사항: 풀을 자동화하기 위해 GitHub Action 사용하기#
프로덕션 인스턴스에 로그인하여 당기는 것을 피하려면 GitHub Action과 n8n API를 사용하여 프로덕션 또는 메인 브랜치에 새 작업을 푸시할 때마다 자동으로 당길 수 있습니다.
A GitHub Action example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
다음 단계#
다음에 대해 자세히 알아보세요:
- n8n의 환경 및 Git과 n8n
- 소스 제어 패턴
- 소스 제어를 사용할 때 재사용 가능한 변수 및 API를 사용한 변수 관리