LoginSignup
4
4

More than 5 years have passed since last update.

Concourse使ってみた

Last updated at Posted at 2017-09-09

1. コンテナ間用のssh鍵作成

鍵作成
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 ''
ssh-keygen -t rsa -f ./keys/worker/darwin_worker_key -N ''

cat ./keys/worker/worker_key.pub >> ./keys/web/authorized_worker_keys
cat ./keys/worker/darwin_worker_key.pub >> ./keys/web/authorized_worker_keys

cp ./keys/web/tsa_host_key.pub ./keys/worker
作成た鍵一覧
keys/web/session_signing_key
keys/web/session_signing_key.pub
keys/web/authorized_worker_keys
keys/web/tsa_host_key
keys/web/tsa_host_key.pub
keys/worker/worker_key
keys/worker/worker_key.pub
keys/worker/darwin_worker_key
keys/worker/tsa_host_key.pub
keys/worker/darwin_worker_key.pub

2. docker-compose.yml

docker-compose.yml
version: '3'

services:
  concourse-db:
    image: postgres:9.5
    environment:
      POSTGRES_DB: concourse
      POSTGRES_USER: concourse
      POSTGRES_PASSWORD: changeme
      PGDATA: /database

  concourse-web:
    image: concourse/concourse
    links: [concourse-db]
    depends_on: [concourse-db]
    command: web
    restart: unless-stopped
    ports: ["8080:8080", "2222:2222"]
    volumes: ["./keys/web:/concourse-keys"]
    environment:
      #CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"
      CONCOURSE_BASIC_AUTH_USERNAME: concourse
      CONCOURSE_BASIC_AUTH_PASSWORD: changeme
      CONCOURSE_POSTGRES_HOST: concourse-db
      CONCOURSE_POSTGRES_USER: concourse
      CONCOURSE_POSTGRES_DATABASE: concourse
      CONCOURSE_POSTGRES_PASSWORD: changeme

  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
起動
docker-compose up -d

3. fly コマンド取得

1.png

flyにconcourseを登録
./fly -t concourseci login -c http://localhost:8080
targets
$ ./fly targets
name         url                    team  expiry                       
concourseci  http://localhost:8080  main  Sun, 10 Sep 2017 21:19:48 UTC
worker一覧表示
$ ./fly -t concourseci workers
name          containers  platform  tags  team  state    version
b8854618b82c  0           linux     none  none  running  1.2    

4. とあるコマンドだけを実行するだけのpipelineを登録してみる

pipeline2.yml(書き方1)
---

jobs:
- name: hello-world
  plan:
  - task: run-tests
    config:
      platform: linux
      image_resource:
        type: docker-image
        source:
          repository: ubuntu
      run:
        path: /bin/bash
        args:
        - -c
        - |
          echo "Hello, world"
pipeline2.yml(書き方2)
---
jobs:
- name: hello-world
  plan:
  - task: say-hello
    config:
      platform: linux
      image_resource:
        type: docker-image
        source: {repository: ubuntu}
      run:
        path: echo
        args: ["Hello, world!"]
pipelineの登録
./fly -t concourseci set-pipeline -c pipeline2.yml -p hello-world
./fly -t concourseci unpause-pipeline -p hello-world

スクリーンショット_2017-09-10_06-49-04.png

5. pipeline 削除

./fly -t concourseci ps
./fly -t concourseci dp -p パイプライン名
worker削除
./fly -t concourseci workers
./fly -t concourseci prune-worker -w ワーカー名

6. worker にネイティブのLinuxを追加

https://github.com/concourse/concourse/releases/ から concourse_linux_amd64をダウンロード

sudo ./concourse worker \
  --name native1 \
  --work-dir ./working \
  --tsa-host 127.0.0.1 \
  --tsa-public-key ./keys/worker/tsa_host_key.pub \
  --tsa-worker-private-key ./keys/worker/darwin_worker_key

下記のようなログが出力されます。

{"timestamp":"1504994760.335169315","source":"tsa","message":"tsa.connection.channel.forward-worker.register.done"...

native1が追加されたことを確認
$ ./fly -t concourseci workers
name          containers  platform  tags  team  state    version
b8854618b82c  0           linux     none  none  running  1.2  
native1       0           linux     none  none  running  1.2      

使い方はようわからん

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4