Concourse の ご紹介¶
この一連のチュートリアルを通じて、https://concourse-ci.org の利用方法を学びましょう。個々のコンセプトに基づいて各コンテンツは構成されています。
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 チュートリアル!」とお伝え頂いた皆様に感謝します。
さあ、はじめよう!¶
- Docker をインストールしてください。
- もし Docker 中に含まれていない場合、Docker Compose をインストールしてください。
Docker の Compose V2 インターフェースはまだベータ版ですが、このチュートリアルでは引き続き古い
docker-compose
コマンドラインを使用します。docker-compose
をdocker compose
に変換するかどうかは、みなさまにお任せします。 -
Docker Compose を利用して、Concourse を下記のようにデプロイしてください:
The following are common issues found when working with the tutorialwget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml docker-compose up -d
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
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- CONCOURSE_EXTERNAL_URL + CONCOURSE_EXTERNAL_URL=http://{{my-server}}:8080
セットアップのテストを行う¶
Webブラウザで http://127.0.0.1:8080/ を開いてみましょう:
あなたの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