Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

GoCD는 오픈 소스 연속 전달 및 자동화 시스템입니다. 병렬 및 순차적 실행을 사용하여 복잡한 워크 플로를 모델링 할 수 있습니다. 가치 흐름 맵을 사용하면 복잡한 워크 플로를 쉽게 시각화 할 수 있습니다. GoCD를 사용하면 두 빌드를 쉽게 비교하고 원하는 응용 프로그램 버전을 배포 할 수 있습니다. GoCD 에코 시스템은 GoCD 서버와 GoCD 에이전트로 구성됩니다. GoCD는 웹 기반 사용자 인터페이스 실행, 에이전트 관리 및 작업 제공과 같은 모든 것을 제어합니다. Go 에이전트는 작업 및 배포 실행을 담당합니다.

전제 조건

  • RAM이 2GB 이상인 Vultr Ubuntu 16.04 서버 인스턴스
  • sudo는 사용자 .
  • 서버를 가리키는 도메인 이름

이 자습서에서는 192.168.1.1퍼블릭 IP 주소와 gocd.example.com Vultr 인스턴스를 가리키는 도메인 이름으로 사용합니다. 예제 도메인 이름 및 IP 주소의 모든 항목을 실제 이름으로 바꾸십시오.

Ubuntu 16.04 업데이트 방법 안내서를 사용하여 기본 시스템을 업데이트하십시오 . 시스템이 업데이트되면 Java 설치를 진행하십시오.

자바 설치

GoCD에는 Java 버전 8이 필요하며 Oracle Java 및 OpenJDK를 모두 지원합니다. Oracle Java 8 용 Ubuntu 저장소를 추가하십시오.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Oracle Java를 설치하십시오.

sudo apt -y install oracle-java8-installer

버전을 확인하십시오.

java -version

다음과 같은 결과가 나타납니다.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

다음 패키지를 설치하여 Java의 기본 경로를 설정하십시오.

sudo apt -y install oracle-java8-set-default

JAVA_HOME실행하여 설정되어 있는지 확인할 수 있습니다 .

echo $JAVA_HOME

당신은 볼 것이다.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

출력이 전혀 없으면 현재 쉘에서 로그 아웃 한 후 다시 로그인해야합니다.

GoCD 설치

GoCD의 공식 저장소를 시스템에 설치하십시오.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

시스템에 GoCD 서버를 설치하십시오.

sudo apt install -y go-server

GoCD를 시작하고 부팅시 자동으로 시작되도록합니다.

sudo systemctl start go-server
sudo systemctl enable go-server

GoCD 대시 보드에 액세스하기 전에 아티팩트를 저장할 새 디렉토리를 작성하십시오. 아티팩트는 운영 체제 및 애플리케이션이 설치된 동일한 디스크에 저장 될 수 있습니다. 또는 전용 디스크 또는 블록 스토리지 드라이브를 사용하여 아티팩트를 저장할 수 있습니다.

동일한 디스크를 사용하여 아티팩트를 저장하려면 새 디렉토리를 작성하고 GoCD 사용자에게 소유권을 제공하십시오.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

블록 스토리지 구성

GoCD 소프트웨어는 추가 파티션 또는 드라이브를 사용하여 아티팩트를 저장하도록 권장합니다. 지속적인 통합 및 제공 플랫폼에서는 아티팩트가 매우 자주 생성됩니다. 새로운 아티팩트가 지속적으로 생성되면 시간이 지남에 따라 디스크 공간이 줄어 듭니다. 어떤 단계에서는 시스템에 사용 가능한 디스크 공간이 부족하여 시스템에서 실행중인 서비스가 실패합니다. 이 문제를 극복하기 위해 새로운 Vultr 블록 스토리지 드라이브를 연결 하여 아티팩트를 저장할 수 있습니다. 동일한 드라이브에 아티팩트 저장을 계속하려면 "GoCD 구성"섹션으로 건너 뛰십시오.

새 블록 스토리지 드라이브를 배포하고 GoCD 서버 인스턴스에 연결하십시오. 이제 블록 스토리지 장치에 새 파티션을 만듭니다.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

새 디스크에 파일 시스템을 작성하십시오.

sudo mkfs.ext4 /dev/vdb1

블록 스토리지 드라이브를 마운트하십시오.

sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts

이제 실행 df하면에 새로운 블록 스토리지 드라이브가 마운트 된 것을 볼 수 /mnt/artifacts있습니다.

[user@vultr ~]$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       20616252 6313892  13237464  33% /

...
/dev/vdb1       10188052   36888   9610596   1% /mnt/artifacts

디렉토리의 소유권을 GoCD 사용자에게 제공하십시오.

sudo chown -R go:go /mnt/artifacts

GoCD 구성

이제에서 GoCD 대시 보드에 액세스 할 수 있습니다 http://192.168.1.1:8153. 보안 연결에서 GoCD 대시 보드에 액세스하려면에 액세스하십시오 https://192.168.1.1:8154. 인증서가 유효하지 않다는 오류가 표시됩니다. 인증서가 자체 서명되므로 오류를 무시해도됩니다. 보안을 위해 항상 보안 연결을 통해 대시 보드를 사용해야합니다.

새로운 파이프 라인을 설정하기 전에 Admin >> Server Configuration상단 네비게이션 바에서 " "로 이동 하십시오.

" Site URL"필드 에 보안되지 않은 사이트의 URL을 입력하고 " "필드에 보안 된 사이트를 입력하십시오 Secure Site URL.

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

그런 다음 SMTP 서버 세부 정보를 제공하여 GoCD에서 전자 메일 알림을 보냅니다.

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

마지막으로 아티팩트를 저장할 위치의 경로를 제공하십시오. 아티팩트를 운영 체제와 동일한 디스크에 저장하도록 선택한 경우 /opt/artifacts; 블록 스토리지 드라이브 연결을 선택한 경우을 입력하십시오 /mnt/artifacts.

이전 아티팩트를 자동 삭제하도록 GoCD를 구성 할 수도 있습니다. 디스크 크기에 따라 다음 옵션을 구성하십시오. 그러나 자동 삭제 옵션은 기존 아티팩트를 백업하지 않습니다. 수동으로 백업을 수행 한 다음 이전 아티팩트를 삭제하려면 " Never"옵션으로 " "옵션을 선택하여 자동 삭제를 사용 안함으로 설정 하십시오 Auto delete old artifacts.

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

새로운 변경 사항이 적용되도록 GoCD 서버를 다시 시작해야합니다.

sudo systemctl restart go-server

인증 설정

기본적으로 GoCD 대시 보드는 모든 종류의 인증을 사용하도록 구성되어 있지 않지만 비밀번호 파일 및 LDAP를 사용한 인증을 지원합니다. 이 학습서에서는 비밀번호 기반 인증을 설정합니다.

참고 : 인증 설정은 선택적 단계이지만 Vultr과 같은 공용 서버에는 강력하게 권장됩니다.

htpasswd 명령을 사용하여 암호화 된 비밀번호 파일을 작성할 수 있도록 Apache 도구를 설치 하십시오.

sudo apt -y install apache2-utils

htpasswd Bcrypt 암호화를 사용 하여 명령 으로 비밀번호 파일을 작성하십시오 .

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

사용자의 비밀번호를 두 번 제공하십시오. 다음과 같은 결과가 나타납니다.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

위의 동일한 명령을 사용하여 원하는 수의 사용자를 추가 할 수 있지만 -c 옵션을 제거하십시오 . 이 -c 옵션은 기존 파일을 대체하여 기존 사용자를 새 사용자로 바꿉니다.

sudo htpasswd -B /etc/go/passwd_auth gouser1

비밀번호 파일을 만들었으므로 GoCD 대시 보드에 다시 액세스하십시오. Admin >> Security >> Authorization Configurations상단 네비게이션 바에서 " "로 이동합니다. 온 클릭 Add 버튼 및 ID를 제공합니다. Password File Authentication Plugin for GoCD플러그인 ID로 " "를 선택 하고 비밀번호 파일 경로를 지정하십시오. " Check Connection"버튼을 클릭하여 GoCD가 비밀번호 파일을 인증에 사용할 수 있는지 확인하십시오.

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

마지막으로 인증 방법을 저장하십시오. 대시 보드를 다시로드하면 자동으로 로그 아웃됩니다. 로그인 화면이 나타납니다. 앞에서 만든 자격 증명을 사용하여 로그인하십시오.

관리자를 수동으로 승격해야합니다. 그렇지 않으면 모든 사용자에게 관리자 권한이 있습니다. Admin >> User Summary상단 네비게이션 바에서 " "로 이동합니다.

이제 생성 한 관리자를 선택하고 " Roles"드롭 다운을 클릭하십시오 . " Go System Administrator"확인란 을 선택하여 사용자를 유일한 관리자로 승격 시키십시오 .

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

비밀번호 파일에서 생성 된 GoCD에 사용자를 추가하려면 " ADD"버튼을 클릭하고 사용자를 검색하여 추가하십시오. 사용자는 처음 로그인 할 때 GoCD 대시 보드에 자동으로 추가됩니다. 분명히, 사용자가 로그인하려면 앞서 생성 한 비밀번호 파일에 추가해야합니다.

SSL을 암호화하여 GoCD 보안

기본적으로 GoCD는 포트 81538154 보안 연결을 수신 합니다. 포트 8154 는 응용 프로그램에 대한 보안 연결을 제공 하지만 자체 서명 된 인증서를 사용하므로 브라우저 오류도 표시합니다. 튜토리얼의이 섹션에서는 Let 's Encrypt free SSL 인증서를 사용하여 Nginx를 설치하고 보호합니다. Nginx 웹 서버는 수신 요청을 GoCD의 HTTP 엔드 포인트 로 전달하기위한 리버스 프록시로 작동 합니다.

Nginx를 설치하십시오.

sudo apt -y install nginx

Nginx를 시작하고 부팅시 자동으로 시작되도록합니다.

sudo systemctl start nginx
sudo systemctl enable nginx

Certbot 저장소를 추가하십시오.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Let 's Encrypt CA의 클라이언트 응용 프로그램 인 Certbot을 설치하십시오.

sudo apt -y install certbot

참고 : Let 's Encrypt CA에서 인증서를 얻으려면 인증서가 생성 될 도메인이 서버를 가리켜 야합니다. 그렇지 않은 경우 도메인의 DNS 레코드를 필요한대로 변경하고 인증서가 다시 요청되기 전에 DNS가 전파 될 때까지 기다리십시오. Certbot은 인증서를 제공하기 전에 도메인 권한을 확인합니다.

SSL 인증서를 생성하십시오.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

생성 된 인증서는에 저장 될 수 있습니다 /etc/letsencrypt/live/gocd.example.com/. SSL 인증서는로 저장 fullchain.pem 되고 개인 키는로 저장됩니다 privkey.pem.

인증서 암호화는 90 일 후에 만료되므로 cron 작업을 사용하여 인증서의 자동 갱신을 설정하는 것이 좋습니다.

크론 작업 파일을여십시오.

sudo crontab -e

파일 끝에 다음 줄을 추가하십시오.

30 5 * * * /usr/bin/certbot renew --quiet

위의 cron 작업은 매일 오전 5:30에 실행됩니다. 인증서가 만료 예정인 경우 자동으로 갱신됩니다.

GoCD 웹 인터페이스에 대한 새 구성 파일을 작성하십시오.

sudo nano /etc/nginx/sites-available/gocd

파일을 채 웁니다.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name gocd.example.com;

    ssl_certificate           /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/gocd.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/gocd.access.log;

location / {
        proxy_pass http://gocd;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /go {
    proxy_pass http://gocd/go;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

구성 파일을 활성화하십시오.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

구성 변경을 구현하려면 Nginx 웹 서버를 다시 시작하십시오.

sudo systemctl restart nginx

이제에서 GoCD 대시 보드에 액세스 할 수 있습니다 https://gocd.example.com. 관리자 자격 증명을 사용하여 대시 보드에 로그인 Admin >> Server Configuration하고 상단 탐색 모음에서 " "로 이동 하십시오.

Ubuntu 16.04에서 GoCD를 설치 및 구성하는 방법

" Site URL"및 " Secure Site URL"를로 설정하십시오 https://gocd.example.com.

GoCD 에이전트 설치

GoCD 연속 통합 환경에서 GoCD 에이전트는 모든 작업의 ​​실행을 담당하는 작업자입니다. 소스의 변경이 감지되면 파이프 라인이 트리거되고 작업이 사용 가능한 작업자에게 할당되어 실행됩니다. 그런 다음 에이전트는 작업을 실행하고 실행 후 최종 상태를보고합니다.

파이프 라인을 실행하려면 하나 이상의 에이전트를 구성해야합니다. GoCD 서버에 GoCD 에이전트 설치를 진행하십시오.

GoCD 저장소를 서버로 이미 가져 왔으므로 Go Agent를 직접 설치할 수 있습니다.

sudo apt install -y go-agent

이제 GoCD 서버를 시작하고 부팅시 자동으로 시작되도록하십시오.

sudo systemctl start go-agent
sudo systemctl enable go-agent

로컬 호스트에서 실행되는 GoCD 에이전트는 감지되면 자동으로 활성화됩니다.



Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.