Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

AWSで気軽にConcourseを試してみる

 これはYahoo! JAPAN 18 新卒 Advent Calendar 2018の9日目の記事、及びConcourse Advent Calendar 2018の9日目です。

 同じ記事で複数advent calendarなんて不思議な話ですが、まあそれはそれ(そんなことするから、Concourseの他の記事と内容が類似しちゃうんだよ)

 題名通り、AWSでConcourseを試してみよう的な記事。
Concourseを自前でも欲しいって事で、やってみる。
 今回はDockerを使います。BOSHを使ってもよいのですが、AWSの無料枠は1ヶ月750時間なので複数インスタンスを使うのはお財布に厳しい!

事前準備

  • AWSのインスタンス(今回はAmazon Linux AMI 2018.03.0 (HVM), SSD Volume Type)の用意。
  • Docker install
  • Docker Compose install
  • (gitも入れておくと良い)

 インスタンスの立ち上げ方とか、dockerのinstallとかは無限に記事があるので、そちらをご参照下さい。

Concourseを立ち上げる

wget https://raw.githubusercontent.com/starkandwayne/concourse-tutorial/master/docker-compose.yml

 ありがたい事に公式のdockerイメージと、それを利用したdocker-compose.ymlがあるので、それを手に入れましょう。
 ただしこれはlocalで使う用途のものなので、23行目を下記のように編集して下さい(YOUR_AWS_IPは、インスタンスのIPに書き換えてください)

- CONCOURSE_EXTERNAL_URL=http://YOUR_AWS_IP:8080

 これで準備は出来たので、後は

docker-compose up -d

を実行するだけ。これで http://YOUR_AWS_IP:8080 にアクセスするとConcourseが立ち上がってるのが確認できます。
image.png

※ アクセスできない場合は、恐らくAWSのインスタンスが8080ポートを開放してない可能性があります。インスタンのセキュリティグループ=>インバウンド=>編集から8080/tcpを追加して下さい。

 後は右上のloginから、userとpassにadminと入力するだけ!(今回はローカルではないので、docker-compose.ymlからuserとpasswordを変更しておくと良いかも) loginが上手くいかない場合は、CONCOURSE_EXTERNAL_URLに正しい値が入ってないからかも。

Concourseを操作する

 基本、Concourseはflyと呼ばれるコマンドを使って操作します。fly自体のinstallは

wget "http://YOUR_AWS_IP:8080/api/v1/cli?arch=amd64&platform=linux" -O fly
sudo install fly  /usr/local/bin

で出来ます。fly --version4.2.1と表示されたらOK。
 此処まで出来たら、後は好き勝手にpipelineを作って自由にできる!

fly --target admin login --concourse-url http://YOUR_AWS_IP:8080 -u admin -p admin
fly -t admin set-pipeline -c pipeline.yml -p hello-world

image.png

終わりに

 今回は、Concourseを取り敢えず個人用に使って見たかったので、AWSとかいう簡単にインスタンスを立ち上げられるものと一緒に合わせて作りました。
 此処まで出来たら、後は豊富なConcourseのresourceを使って何でも出来ます。discordのbotとかいうニッチな物も作られてるので、俺はslackじゃなくてdiscordで情報管理をしたいんだ! みたいな要望にも答えられて素敵!

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?