====== Concourse ====== ===== 事前に ===== kernelのバージョンは、v3.19以上 **uname -r** コマンドで、kernelのバージョンを確認して、バージョンが低い場合はアップデート ===== 前提 ===== * 大人の事情で、aws+Docker+AmazonLinux2 * epelリポジトリを有効化 ===== 構築 ===== ==== Docker ==== === インストール === AmazonLinux2では一部ソフトがExtras Libraryからのインストールに切り替わっています そのためDockerもそちらからインストール((F○ck!)) # amazon-linux-extras install docker ...... 17 gimp disabled [ =2.8.22 ] 18 docker=latest enabled [ =17.12.1 =18.03.1 ]            ^^^^^^^^ ...... バージョン固定など # amazon-linux-extras install -y docker=18.03.1 === 起動 === # systemctl start docker # systemctl enable docker ==== docker-composeのインストール ==== # curl -L "https://github.com/docker/compose/releases/download/1.xx.xx/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose バージョンは以下のurlで確認してください。 https://github.com/docker/compose/releases ※ pipでも可能 # pipの場合 pip install docker-compose ==== Keyの作成 ==== 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 の設定 ==== version: '3' # docker-composeの使用バージョン services: # コンテナから作られるサービス concourse-db: # コンテナの名前 image: postgres:9.5 # コンテナを作るためのイメージ environment: # 環境変数の設定 POSTGRES_DB: concourse POSTGRES_USER: concourse POSTGRES_PASSWORD: changeme PGDATA: /database concourse-web: image: concourse/concourse:3.9.2 # 最新版(4.0.0,3.14.1)では動作しないためバージョン指定 links: [concourse-db] # コンテナを他のサービスにリンク command: web # デフォルトのコマンドを上書き depends_on: [concourse-db] ports: ["8080:8080"] # ポートを公開(expose)。ホストとポートを指定(ホスト:コンテナ)するか、コンテナのポートのみ指定 volumes: ["./keys/web:/concourse-keys"] # パスをボリュームとしてマウント restart: unless-stopped # required so that it retries until conocurse-db comes up environment: CONCOURSE_BASIC_AUTH_USERNAME: concourse CONCOURSE_BASIC_AUTH_PASSWORD: changeme CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}" CONCOURSE_POSTGRES_HOST: concourse-db CONCOURSE_POSTGRES_USER: concourse CONCOURSE_POSTGRES_PASSWORD: changeme CONCOURSE_POSTGRES_DATABASE: concourse concourse-worker: image: concourse/concourse:3.9.2 privileged: true # コンテナに拡張権限を適用する links: [concourse-web] depends_on: [concourse-web] command: worker volumes: ["./keys/worker:/concourse-keys"] environment: CONCOURSE_TSA_HOST: concourse-web https://github.com/concourse/concourse/releases ==== 環境変数 ==== 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ファイルを作成します。 CONCOURSE_BASIC_AUTH_USERNAME=concourse CONCOURSE_BASIC_AUTH_PASSWORD=changePassw0rd CONCOURSE_EXTERNAL_URL=http://192.168.xx.xx:8080 CONCOURSE_POSTGRES_USER=concourse CONCOURSE_POSTGRES_PASSWORD=changePassw0rd ===== クライアント ===== 立ち上がっているWebにアクセスし、ビルドパイプライン設定用のCLIツールであるflyをダウンロードする。 http://127.0.0.1:8080/ http://192.168.xx.xx:8080/ ...... {{:development:cicd:pasted:20180807-152457.png}} または、[[https://github.com/concourse/concourse/releases|ここ]]からダウンロードしてインストールする。 ==== Login ==== flyコマンドで、concourseにログインする アカウント情報は".env"で設定した情報。 $ fly -t concourseci login -c http://192.168.xx.xx:8080 ==== ワーカー一覧 ==== $ ./fly -t concourseci workers name containers platform tags team state version 5cxxxxxxxx60 0 linux none none running 1.3 ===== 参考 ===== https://qiita.com/cacarrot/items/8cb4a13b10d408a108c3 https://qiita.com/mumoshu/items/aab5de3b9c73e6c7dd56 https://github.com/tichimura-pivotal/concourse-workshop/blob/master/README.md https://github.com/tenten0213/ios-concourse https://concoursetutorial.com/basics/task-hello-world/ https://docs.docker.com/compose/gettingstarted/