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 파일에 적혀있음)

실제 사용에 대한 내용은 다음에 기회가 되면 적겠다.