コンテンツにスキップ

Concourse の ご紹介

この一連のチュートリアルを通じて、https://concourse-ci.org の利用方法を学びましょう。個々のコンセプトに基づいて各コンテンツは構成されています。

concourse-sample-pipeline

Concourse は 100% オープンソースの CI/CD システムであり、約 100 個の外部との インテグレーション機能 -- Resource types -- を備えています. Concourse の原則は、プロジェクトを CI の細かい作業と分離するプラクティスを奨励し、すべての設定をバージョン管理システムにチェックインできる宣言ファイルに保存することで、Concourse クラスタ間での乗換リスクを軽減することにあります。

この Concourse チュートリアルブックは、2015年以来、Concourse を学習するための世界で最も人気のあるコンテンツです。Concourse 公式ドキュメントの良き友としてご利用ください。

謝辞

Concourse CI を開発した Alex Suraci と、2014年に彼と開発者チームをスポンサードしてくれた Pivotal と VMWare に感謝します。

Stark&Wayne では 2015年初頭に Concourse を学びながらこのチュートリアルを開始しました.2015年中頃からほぼすべてのクライアントプロジェクトで Concourse を使用していました。

このチュートリアルを体験して頂いている皆様にも感謝を申し上げます。皆様がこのチュートリアルを、また Concourse そのものを楽しんで頂ければ幸いです。

「後方互換性のない変更」が出てきたこれまでの Concourse バージョンで、問題を修正するのに貢献されたすべての PullRequest に感謝します。

この Concourse チュートリアルとその事例を長年にわたって維持してくれた Stark&Wayne のスタッフ全員に感謝します。

カンファレンス等で Stark&Wayne ブースを訪れ、「ありがとう、Concourse チュートリアル!」とお伝え頂いた皆様に感謝します。

さあ、はじめよう!

  1. Docker をインストールしてください。
  2. もし Docker 中に含まれていない場合、Docker Compose をインストールしてください。 Docker の Compose V2 インターフェースはまだベータ版ですが、このチュートリアルでは引き続き古い docker-compose コマンドラインを使用します。 docker-composedocker compose に変換するかどうかは、みなさまにお任せします。
  3. Docker Compose を利用して、Concourse を下記のようにデプロイしてください:

    wget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml
    docker-compose up -d
    
    The following are common issues found when working with the tutorial

    a. For Windows AMD issues:

    • Right click Docker instance
    • Go to Settings -> Daemon -> Advanced -> Set the "experimental": true
    • Restart Docker
    • Switch to Linux container and restart the docker

    b. For running concourse on a docker server instead of locally:

    You need to set the external url env variable inside the docker-compose.yml. Without this change you will not be able to login to the webui because it would redirect to 127.0.0.1:8080

    - CONCOURSE_EXTERNAL_URL
    + CONCOURSE_EXTERNAL_URL=http://{{my-server}}:8080
    
    You will also need to access the webui and setup the fly target to use this url rather than 127.0.0.1, so change every http://127.0.0.1:8080 in this tutorial to http://{{my-server}}:8080

セットアップのテストを行う

Webブラウザで http://127.0.0.1:8080/ を開いてみましょう:

initial

あなたのOSと同じ fly CLI をクリックしてダウンロードしてください。 ダウンロードが終わったら、fly バイナリをあなたのパス($PATH)が通ったディレクトリ(例: /usr/local/bin, ~/binなど) にコピーしましょう。実行権限を付与するのも忘れないでください。例を示します。

sudo mkdir -p /usr/local/bin
sudo mv ~/Downloads/fly /usr/local/bin
sudo chmod 0755 /usr/local/bin/fly

Windows ユーザの方は, この記事の方法を利用して、PATH の中から fly を追加するフォルダを確認してください。

Concourse をターゲットする

fly CLI は、毎回完全に同じ結果を得るために、完全に実行することを、完全に宣言するという精神に基づき、fly コマンドを打つ度にターゲットとなる API を指定する必要があります。

まず、

fly CLI は毎回全く同じ結果を得るために絶対に行うことを絶対に宣言する精神の中で、fly 要求ごとにターゲット API を指定する必要があります。

まず、tutorial という名前でエイリアスを作ります。(この名前はチュートリアルすべての Task スクリプトで利用します):

fly --target=tutorial login --concourse-url=http://127.0.0.1:8080 --username=admin --password=admin
fly --target=tutorial sync

このターゲットとして保存された Concourse API は、ローカルファイル上でも確認することができます。

cat ~/.flyrc

中身はAPI、認証情報などを含むシンプルな YAML ファイルで構成されています:

targets:
  tutorial:
    api: http://127.0.0.1:8080
    team: main
    token:
      type: Bearer
      value: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjc3JmIjoiYjE3ZDgxZmMwMWIxNDE1Mjk2OWIyZDc4NWViZmVjM2EzM2IyY2MxYWZjZjU3Njc1ZWYwYzY0MTM3MWMzNzI3OSIsImV4cCI6MTUyMjcwMjUwMCwiaXNBZG1pbiI6dHJ1ZSwidGVhbU5hbWUiOiJtYWluIn0.JNutBGQJMKyFzow5eQOTXAw3tOeM8wmDGMtZ-GCsAVoB7D1WHv-nHIb3Rf1zWw166FuCrFqyLYnMroTlQHyPQUTJFDTiMEGnc5AY8wjPjgpwjsjyJ465ZX-70v1J4CWcTHjRGrB1XCfSs652s8GJQlDf0x2hi5K0xxvAxsb0svv6MRs8aw1ZPumguFOUmj-rBlum5k8vnV-2SW6LjYJAnRwoj8VmcGLfFJ5PXGHeunSlMdMNBgHEQgmMKf7bFBPKtRuEAglZWBSw9ryBopej7Sr3VHPZEck37CPLDfwqfKErXy_KhBA_ntmZ87H1v3fakyBSzxaTDjbpuOFZ9yDkGA

fly コマンドを使うときに、fly --target tutorial と打つことで、このConcourse API をターゲットすることができます。

@alexsuraci: 私は暗黙のターゲット状態を持つよりも、この方法が皆様のお気に召すことを約束します:) Shellのヒストリーからコマンドを再利用しても、これならさほど危険にならずに済むからです(誤ったflyの設定を使っていると悪になる可能性はあります)。

コマンドを明確にするため、このチュートリアルのすべての fly コマンドは、コマンド操作に長い形式の名前を使用します。 コマンド操作を常に入力することにうんざりしている場合は、fly help を使用すると、コマンドのエイリアスを検索できます。 ほとんどの fly コマンドにはエイリアスがあり、おまけとして、簡単な操作の説明も表示されます!

fly help

fly のコマンドオプションにも長い形式と短い形式があります。 操作のパラメーターとオプションを表示するには、操作パラメーターの後に --help または -h を配置します。

fly login --help

上記の fly login コマンドのようにオプションの長い形式を使用すると、コマンドラインが読みにくくなるため、このチュートリアルの残りの部分では短いオプションの形式を使用します。 短いオプション名を使用したログインコマンドを次に示します。

fly -t tutorial login -c http://127.0.0.1:8080 -u admin -p admin

これで、読むのもタイプするのもスッキリしましたね!

Concourse を破棄する

docker-compose up を使ってデプロイしたローカル Concourse での作業を終えたら、docker-compose down を使ってそれを破棄することができます。

docker-compose down