Concourse CI의 환경 구축 절차
15340 단어 Concourse시도커ConcourseCI
개요
Concourse CI의 환경 구축 절차입니다.
관련 기사
환경
요구사항
다음과 같이 Concourse CI를 사용하려면 커널 버전이 v3.19 이상이어야 합니다.
uname -r
명령으로 커널 버전을 확인하십시오.For Linux you'll need kernel v3.19 or later, with user namespace support enabled. Windows and Darwin don't really need anything special.
만약 버전이 낮은 경우는 다음을 참고하여 업데이트해 주십시오.
Vagrant의 CentOS7 커널 업데이트 (yum)
추가
커널을 업데이트하는 쉘 스크립트를 만들었습니다.
여기를 실행하면 커널이 업데이트됩니다.
CentOS7.2에서만 동작 검증하고 있습니다.
htps : // 기주 b. 코 m / 에 s 푹신 / 케 r 네 루 p r r
docker-compose 설치
여기를 참조
docker(docker-engine), docker-compose 설치
docker-compose.yml 만들기
원하는 곳에 docker-compose.yml을 만듭니다.
docker-compose.yml
version: '3'
services:
concourse-db:
image: postgres:9.5
environment:
POSTGRES_DB: concourse
POSTGRES_USER: "${CONCOURSE_POSTGRES_USER}"
POSTGRES_PASSWORD: "${CONCOURSE_POSTGRES_PASSWORD}"
PGDATA: /database
concourse-web:
image: concourse/concourse
links: [concourse-db]
command: web
depends_on: [concourse-db]
ports: ["8080:8080"]
volumes: ["./keys/web:/concourse-keys"]
restart: unless-stopped # required so that it retries until conocurse-db comes up
environment:
CONCOURSE_BASIC_AUTH_USERNAME: "${CONCOURSE_BASIC_AUTH_USERNAME}"
CONCOURSE_BASIC_AUTH_PASSWORD: "${CONCOURSE_BASIC_AUTH_PASSWORD}"
CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"
CONCOURSE_POSTGRES_HOST: concourse-db
CONCOURSE_POSTGRES_USER: "${CONCOURSE_POSTGRES_USER}"
CONCOURSE_POSTGRES_PASSWORD: "${CONCOURSE_POSTGRES_PASSWORD}"
CONCOURSE_POSTGRES_DATABASE: concourse
concourse-worker:
image: concourse/concourse
privileged: true
links: [concourse-web]
depends_on: [concourse-web]
command: worker
volumes: ["./keys/worker:/concourse-keys"]
environment:
CONCOURSE_TSA_HOST: concourse-web
.env 만들기
CONCOURSE_EXTERNAL_URL
에 브라우저에서 액세스할 수 있는 URL을 설정합니다.127.0.0.1 or localhost에서는 안 됩니다.
CONCOURSE_BASIC_AUTH_USERNAME
, CONCOURSE_BASIC_AUTH_PASSWORD
ConcourseCI에 로그인할 계정을 설정합니다.CONCOURSE_POSTGRES_USER
, CONCOURSE_POSTGRES_PASSWORD
는 postgres 계정을 설정합니다.다음과 같은 .env를 만듭니다.
.env
CONCOURSE_BASIC_AUTH_USERNAME=concourse
CONCOURSE_BASIC_AUTH_PASSWORD=changeme
CONCOURSE_EXTERNAL_URL=http://192.168.33.10:8080
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=changeme
ssh-key 만들기
웹과 작업자를위한 키를 만듭니다.
docker-compose.yml과 동일한 계층 구조에서 실행합니다.
$ mkdir -p keys/web keys/worker
$ ssh-keygen -t rsa -f ./keys/web/tsa_host_key -N ''
$ ssh-keygen -t rsa -f ./keys/web/session_signing_key -N ''
$ ssh-keygen -t rsa -f ./keys/worker/worker_key -N ''
$ cp ./keys/worker/worker_key.pub ./keys/web/authorized_worker_keys
$ cp ./keys/web/tsa_host_key.pub ./keys/worker
docker-compose
$ docker-compose up -d --build
브라우저로 액세스
CLI 설치
http://192.168.33.10:8080
로 표시되는 페이지의 아래의 3개의 아이콘이 각각, mac, windows, linux용의 cli의 다운로드 링크가 되어 있으므로, 환경에 있던 것을 다운로드 하거나,
이 링크의 Fly Binaries에서 다운로드합니다.
htps // 이런 r세. 시/도 w응아 ds. HTML
$ curl -L https://github.com/concourse/concourse/releases/download/v3.5.0/fly_linux_amd64 > /tmp/fly
$ sudo mv /tmp/fly /usr/local/bin/fly
$ sudo chmod 775 /usr/local/bin/fly
login
http://192.168.33.10:8080에 로그인합니다.
계정은 .env에서 설정한 다음과 같습니다.
.env
CONCOURSE_BASIC_AUTH_USERNAME=concourse
CONCOURSE_BASIC_AUTH_PASSWORD=changeme
$ fly -t concourseci login -c http://192.168.33.10:8080
login시에 다음과 같은 메시지가 나오면 최신 버전의 fly를 다시 설치하십시오.
fly version (3.4.1) is out of sync with the target (3.5.0). to sync up, run the following:
fly -t rails-sample sync
htps : // 이렇게 r세. 해/fly-cぃ. HTML
List the current targets
$ fly targets
name url team expiry
concourseci http://192.168.33.10:8080 main Sat, 05 Aug 2017 03:46:25 UTC
동작 확인
파이프라인을 설정하여 동작을 확인합니다.
flight-school 샘플을 사용하여 파이프 라인을 작성해보십시오.
rails 응용 프로그램입니다.
pipeline.yml
---
resources:
- name: flight-school
type: git
source:
uri: https://github.com/concourse/flight-school
branch: master
jobs:
- name: test
plan:
- get: flight-school
# Resourceに変更があれば自動でジョブを実行するかどうか
trigger: true
- task: run-tests
config:
platform: linux
image_resource:
type: docker-image
source:
repository: ruby
inputs:
- name: flight-school
run:
path: /bin/bash
args:
- -c
- |
cd flight-school
bundle install
bundle exec rspec
pipeline을 설정합니다.
$ fly -t concourseci set-pipeline -c pipeline.yml -p flight-school
resources:
resource flight-school has been added:
name: flight-school
type: git
source:
branch: master
uri: https://github.com/concourse/flight-school
jobs:
job test has been added:
name: test
plan:
- get: flight-school
- task: run-tests
config:
platform: linux
image_resource:
type: docker-image
source:
repository: ruby
params: {}
run:
path: /bin/bash
args:
- -c
- |
cd flight-school
bundle install
bundle exec rspec
dir: ""
inputs:
- name: flight-school
path: ""
apply configuration? [yN]: y
pipeline created!
you can view your pipeline here: http://192.168.33.10:8080/teams/main/pipelines/flight-school
the pipeline is currently paused. to unpause, either:
- run the unpause-pipeline command
- click play next to the pipeline in the web ui
파이프라인을 사용합니다.
$ fly -t concourseci unpause-pipeline -p flight-school
unpaused 'flight-school'
job 실행
명령줄에서 실행하는 경우
$ fly -t concourseci trigger-job -j flight-school/test --watch
웹 화면에서 실행하는 경우
오른쪽 상단의 login을 클릭 -> 화면 중앙의 main을 클릭하고 아래 화면이 표시되면 .env에서 설정한 계정을 입력하십시오.
.env
CONCOURSE_BASIC_AUTH_USERNAME=concourse
CONCOURSE_BASIC_AUTH_PASSWORD=changeme
로그인하면 다음 화면이 표시되므로 test를 클릭하십시오.
아래 화면이 나타나면 오른쪽 상단의
+
버튼을 클릭하십시오. 빌드가 시작됩니다.빌드가 시작되면 이런 느낌이 듭니다.
성공적으로 완료되면 녹색으로 바뀝니다.
오류가 발생하지 않고 완료되고 녹색이되면 성공합니다.
이상
참고
Reference
이 문제에 관하여(Concourse CI의 환경 구축 절차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Esfahan/items/0bb62b76d999c30b87e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)