저는 최근 흥미로운 프로젝트를 진행하고 있는데, 바로 Couchbase를 위한 와즘클라우드 기능 제공자입니다. 이 프로젝트는 다음과 같은 훌륭한 분들과 함께 공개적으로 구축하고 있습니다. 코스모닉. 코드를 확인할 수 있습니다. 리포지토리에서.
모든 프로젝트의 초기에는 개발 라이프사이클과 인프라에 대한 주제가 등장합니다. 카우치베이스 서버와 관련된 프로젝트의 테스트를 자동으로 실행하려면 어떻게 해야 하나요? GitHub는 다음을 제공합니다. 작업 를 사용하여 다양한 순간에 코드를 실행할 수 있습니다.
작업을 만들려면 리포지토리의 작업 탭을 클릭하거나 아래에서 파일을 추가하면 됩니다. .github/workflows
. 동작 실행을 트리거하는 방법에는 여러 가지가 있습니다. 모든 git push
. 저는 Couchbase 클러스터가 여전히 여기에 있고 특정 비밀 또는 환경 변수를 통해 액세스할 수 있도록 하는 간단한 것을 원합니다. 그래서 여기서는 기본적인 크론 표현식을 선택하겠습니다. 이 작업은 매주 월요일 자정에 실행됩니다.
1 2 3 4 |
이름: 테스트 카우치베이스 자격 증명 on: 일정: - cron: '0 0 * * 1' |
이제 비밀과 환경 변수에 대해 알아보겠습니다. 물론 그중 일부는 비밀입니다. 그리고 그렇게 관리해야 합니다. 다행히도 GitHub는 모든 것을 고려하여 리포지토리 또는 조직별로 시크릿 또는 환경 변수를 설정하는 방법을 제공합니다. 설정/시크릿 및 변수/작업으로 이동하면 다음 페이지가 표시됩니다:
이를 통해 작업에 필요한 비밀 또는 환경 변수 등을 정의할 수 있습니다. 여기에서 제가 설정한 것을 볼 수 있습니다:
-
- 카우치베이스_버킷 - 사용하려는 버킷의 이름
- 카우치베이스_연결_스트링 - 전체 카우치베이스 연결 문자열, 즉 연결 예를 들어 카펠라 탭
- couchbase_username - 클러스터에 연결하는 데 사용되는 사용자 이름입니다.
- couchbase_password - 클러스터에 연결하는 데 사용되는 비밀번호
이제 테스트를 작성할 차례입니다. 공동 작업자에게 비밀/환경 변수를 어떻게 사용할 수 있는지 보여주기 위해 클러스터에 대한 연결이 제대로 작동하는지 확인하고 싶을 뿐입니다. 연결을 테스트하는 간단한 방법은 카우치베이스 셸 일명 cbsh. 우분투에 쉽게 설치할 수 있습니다. 다운로드하고 압축을 풀기만 하면 됩니다. 이 작업은 몇 단계로 완료할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 |
일자리: test_credential: 실행-on: 우분투-최신 이름: 테스트 그 주어진 환경 변수 작품 단계: shell: bash 환경: 카우치베이스_연결_스트링: ${{ 비밀.카우치베이스_연결_문자열 }} couchbase_username: ${{ 비밀.터치베이스_사용자 이름 }} couchbase_password: ${{ 비밀.터치베이스_비밀번호 }} - 실행: wget https://github.com/couchbaselabs/couchbase-shell/releases/download/v0.75.1/cbsh-x86_64-unknown-linux-gnu.tar.gz - 실행: 타르 -xvzf cbsh-x86_64-알 수 없음-리눅스-gnu.타르.gz |
거기에서 셸을 실행하여 간단히 사용할 수 있습니다. ./cbsh
. 여기서 주목할 점은 실행
옵션은 작업을 실행하는 데 사용할 컨테이너를 알려줍니다, shell
가 배쉬로 설정되어 있고 환경
를 사용하면 비밀을 환경 변수로 사용할 수 있습니다.
이 셸은 다음을 기반으로 하기 때문에 nushell 를 호출하면 암호를 입력하라는 메시지가 표시되는데, 이렇게 호출 후 바로 암호를 입력할 수 없었습니다:
1 |
echo $couchbase_password | ./cbsh --사용자 이름 $couchbase_username--connstr $카우처_연결_스트링 |
이 방법이 작동하지 않아서, 저는 cbsh 구성 파일을 사용하세요. 안타깝게도 이 구문은 여러 줄 텍스트 서식 지정 및 파이핑에 약간 까다롭습니다. 여기에서는 다음과 같은 새 변수를 만들고 있습니다. CONFIG를 사용하여 환경 변수 값이 포함된 결과를 $GITHUB_ENV를 사용하여 다음 단계로 전달하여 구성 파일에 반영할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
- 실행: | CONFIG=$(cat << EOF 버전 = 1 [[클러스터]] 식별자 = "local" connstr = "$COUCHBASE_CONNECTION_STRING" 사용자 이름 = "$couchbase_username" 비밀번호 = "$COUCHBASE_PASSWORD" EOF ) echo "CONFIG<<EOF" >> $깃허브_환경 echo "$CONFIG" >> $깃허브_환경 echo "EOF" >> $깃허브_환경 - 실행: echo "$CONFIG" >> 구성 |
구성 파일이 모두 설정되면 cbsh 를 다음과 같이 호출할 수 있습니다:
1 |
- 실행: ./cbsh --구성-dir . -c cb-환경 |
전체 예제는 다음에서 확인할 수 있습니다. 리포지토리를 YML 파일로 저장합니다.. 이것이 바로 성공적인 운영의 모습입니다:
이제 GitHub 액션에서 Couchbase에 연결하는 방법을 알게 되었습니다. 또한 Couchbase Shell에 대해 알게 되었으니 다음을 시도해 보세요. 더 재미있는 것들 를 제외한 모든 컬렉션을 마이그레이션하는 것과 같습니다. _기본값 컬렉션:
1 |
컬렉션 --클러스터 "온-프레미스 클러스터" --버킷 "travel-sample" | 선택 범위 컬렉션 | 어디 $it.범위 != "_default" | 어디 $it.컬렉션 != "_default" | 각 { |it| 컬렉션 create $it.컬렉션 --클러스터 "카펠라-클러스터" --버킷 "travel-sample-import" --범위 $it.범위 |
앞으로 더 많은 AI 친화적인 기능이 Couchbase Shell에 추가될 예정이니 계속 지켜봐 주세요!