1. 개요
2. 다운로드 설치방법
다운로드 페이지 : https://github.com/concourse/concourse/releases
v5.5.4 : https://github.com/concourse/concourse/releases/download/v5.5.4/concourse-5.5.4-linux-amd64.tgz
전체적인 설치 절차는 이렇다.
- 리눅스 기준으로 wget으로 다운받아서 /usr/local/concourse에 푼다. 이렇게 되면 /usr/local/concourse/bin ... 이렇게 디렉토리 구조가 생겨야 한다.
- 그리고 PATH에 /usr/local/concourse/bin을 추가한다.
- Key를 생성한다.
- DB Node 생성 - DB를 생성하거나 연결한다.
- Web Node 설정 및 실행.
참고로 Key 생성 작업의 경우 Concourse는 토큰과 워커 등록 요청을 검증하기 위하여 RSA 키를 사용한다.
총 3개의 키를 생성해야 하는데,
1) session_signing_key
- Used by the web node for signing and verifying user session tokens.
2) tsa_host_key
- Used by the web node for the SSH worker registration gateway server ("TSA").
- The public key is given to each worker node to verify the remote host when connecting via SSH.
3) worker_key (one per worker)
- Each worker node verifies its registration with the web node via a SSH key.
- The public key must be listed in the web node's authorized keys configuration in order for the worker to register.
아래는 작업 단계임.
$ concourse generate-key -t rsa -f ./session_signing_key wrote private key to ./session_signing_key $ concourse generate-key -t ssh -f ./tsa_host_key wrote private key to ./tsa_host_key wrote ssh public key to ./tsa_host_key.pub $ concourse generate-key -t ssh -f ./worker_key wrote private key to ./worker_key wrote ssh public key to ./worker_key.pub
작업 후 파일을 확인한다.
$ ls -l total 20 -rw-rw-r-- 1 ubuntu ubuntu 3239 Oct 25 03:10 session_signing_key -rw-rw-r-- 1 ubuntu ubuntu 3235 Oct 25 03:11 tsa_host_key -rw-rw-r-- 1 ubuntu ubuntu 725 Oct 25 03:11 tsa_host_key.pub -rw-rw-r-- 1 ubuntu ubuntu 3235 Oct 25 03:11 worker_key -rw-rw-r-- 1 ubuntu ubuntu 725 Oct 25 03:11 worker_key.pub
authorized_worker_keys 파일을 생성한다.
$ cp worker_key.pub authorized_worker_keys $ ls -l total 24 -rw-rw-r-- 1 ubuntu ubuntu 725 Oct 25 03:11 authorized_worker_keys -rw-rw-r-- 1 ubuntu ubuntu 3239 Oct 25 03:10 session_signing_key -rw-rw-r-- 1 ubuntu ubuntu 3235 Oct 25 03:11 tsa_host_key -rw-rw-r-- 1 ubuntu ubuntu 725 Oct 25 03:11 tsa_host_key.pub -rw-rw-r-- 1 ubuntu ubuntu 3235 Oct 25 03:11 worker_key -rw-rw-r-- 1 ubuntu ubuntu 725 Oct 25 03:11 worker_key.pub
3. Docker 설치 방법
우선 Docker Compose를 위한 yml 파일을 받는다.
$ wget https://concourse-ci.org/docker-compose.yml --2019-10-26 00:12:32-- https://concourse-ci.org/docker-compose.yml Resolving concourse-ci.org (concourse-ci.org)... 185.199.111.153, 185.199.108.153, 185.199.109.153, ... Connecting to concourse-ci.org (concourse-ci.org)|185.199.111.153|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 743 [text/yaml] Saving to: ‘docker-compose.yml’ docker-compose.yml 100%[==============================================================================================>] 743 --.-KB/s in 0s 2019-10-26 00:12:32 (126 MB/s) - ‘docker-compose.yml’ saved [743/743]
그리고 docker compose
를 실행한다.
$ docker-compose up -d ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. $ sudo docker-compose up -d Creating network "concourse_default" with the default driver Pulling concourse-db (postgres:latest)... latest: Pulling from library/postgres 8d691f585fa8: Pull complete c991029393ff: Pull complete d104c69c9175: Pull complete 0a7fb105514d: Pull complete c3d11c21cb77: Pull complete 4536342c5414: Pull complete 435bcefd4e05: Pull complete 36b0869ae6f9: Pull complete 5ac554d17b78: Pull complete 61f0a5a69de4: Pull complete f3613132ea9e: Pull complete 8d022c339281: Pull complete 29616bd9cc5c: Pull complete 6283090fa09d: Pull complete Digest: sha256:a4a944788084a92bcaff6180833428f17cceb610e43c828b3a42345b33a608a7 Status: Downloaded newer image for postgres:latest Pulling concourse (concourse/concourse:latest)... latest: Pulling from concourse/concourse 5667fdb72017: Pull complete d83811f270d5: Pull complete ee671aafb583: Pull complete 7fc152dfb3a6: Pull complete 7362f7ffe2bc: Pull complete 9f5f9aabcdb9: Pull complete Digest: sha256:32ff2e4bf9b4840ae58eb63874d83a25b991db5015b5652b1dac02dd97280d0f Status: Downloaded newer image for concourse/concourse:latest Creating concourse_concourse-db_1 ... Creating concourse_concourse-db_1 ... done Creating concourse_concourse_1 ... Creating concourse_concourse_1 ... done
docker ps
로 확인한다.
$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a38c32e81d2d concourse/concourse "dumb-init /usr/loca…" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp concourse_concourse_1 066c4a77dcce postgres "docker-entrypoint.s…" About an hour ago Up About an hour 5432/tcp concourse_concourse-db_1
그리고 해당 서버나 localhost의 8080으로 접속하면 Concourse 화면을 볼 수 있다.
화면에 있는 링크를 통해 CLI를 다운받을 수 있다.
우측의 [login]을 누르면 로그인화면으로 넘어가는데, 만약 로컬이 아닌 환경에서 (즉 별도 서버) 로그인 페이지가 127.0.0.1이나 localhost로 넘어갈 수 있다. 이때는 docker compose 파일을 확인하여 EXTERNAL URL 세팅을 해야 한다.
version: '3' services: concourse-db: image: postgres environment: POSTGRES_DB: concourse POSTGRES_PASSWORD: concourse_pass POSTGRES_USER: concourse_user PGDATA: /database concourse: image: concourse/concourse command: quickstart privileged: true depends_on: [concourse-db] ports: ["8080:8080"] environment: CONCOURSE_POSTGRES_HOST: concourse-db CONCOURSE_POSTGRES_USER: concourse_user CONCOURSE_POSTGRES_PASSWORD: concourse_pass CONCOURSE_POSTGRES_DATABASE: concourse CONCOURSE_EXTERNAL_URL: http://localhost:8080 CONCOURSE_ADD_LOCAL_USER: test:test CONCOURSE_MAIN_TEAM_LOCAL_USER: test CONCOURSE_WORKER_BAGGAGECLAIM_DRIVER: overlay
위의 CONCOURSE_EXTERNAL_URL을 서버 주소로 바꾸어준다.
로그인 접속 계정은 test/test이다. (역시 Docker Compose 파일에 적혀있음)
실제 사용에 대한 내용은 다음에 기회가 되면 적겠다.