LoginSignup
2
1

More than 5 years have passed since last update.

concourseを通してpcfにdeploy

Last updated at Posted at 2017-07-26

やること

今回はconcourseを通してpcfにdeployまでをやります。
1. credential.ymlの作成
2. pipeline.ymlの作成
3. concourseを走らせる

前提環境

pcfとconcourseの環境が整っていること。pcfにあげるアプリがあること
以前書いたpcfの環境構築について
http://qiita.com/yuichi10/items/228f90b6750a715de605
concourseの環境構築について
http://qiita.com/yuichi10/items/c26359b8339186818951

参考のコード
https://github.com/yuichi10/pcf-app

下準備

  • pcfでつかったアプリを用意してください。(動くなら他のアプリで大丈夫です)

  • まずci/というディレクトリを作ってそこにconcoursに関わるファイルを作っていきます。

  • また今回はgithubからコードを参照するためアプリをgithubに上げておいてください。

ci/credential.ymlの作成

まずpcfにdeployするために必要なクレデンシャルな情報をcredentail.ymlというファイルに書いていきます。このファイルはgithubに上げないようにしましょう。.gitignoreにかいておくことをオススメします。

pcf-username: admin # pcfで使用したusername
pcf-password: admin # pcfで使用したpassword
pcf-org: pcfdev-org # pcfのデプロイする先のorganization
pcf-space: pcfdev-space # pcfでデプロイする先のspace

これでcredential.ymlは完成です。

ci/pipeline.ymlの作成

ここから実際にconcourseのpipelineを書いていきます

リソースの追加

まずresourcesを追加していきます。
resourcesについてですがこれらはバージョンがありpushまたはpullができるような概念を指しています。
まずここにソースコードをとってくるgithubのresourceとdeploy先のpcfを追加します。

---
resources:
- name: repo # resourceの名前
  type: git  # リソースの種類(git)
  source: 
    uri: 'https://github.com/<自分のレポジトリ>' # gitのurl
    branch: master # デプロイするbranch
- name: pcf
  type: cf  # リソースの種類(pcf)
  source:
    api: 'https://api.local.pcfdev.io' # pcfのapi url 
    username: ((pcf-username)) # pcf username
    password: ((pcf-password)) # pcf password
    organization: ((pcf-org))  # pcf organization
    space: ((pcf-space))       # pcf space
    skip_cert_check: true      # sslの有効性確認をスキップ    

これで必要なリソースは整いました。pcfのsourceのapiについては

cf api --skip-ssl-validation

で確認できます。

ジョブの追加

次にjobを追加します。今回のjobのすることはgithubからとってきたリソースをpcfにdeployすることです。

pipelineを見てみましょう

resources: 
  ... 
    skip_cert_check: true
jobs:
- name: deploy # ジョブの名前
  serial: true # これをtrueにすることで非同期にせずキューにためて一つづつ実行します。
  plan: # ジョブの実行に必要なinputやoutputを設定
  - get: repo # resourceをgetする(resourceのnameと同じじゃないとだめ)
  - put: pcf  # 出力先。ここもresourceを指定する。
    params:   # タスクを実行するときの環境変数
      manifest: repo/manifest.yml
      path: repo # タスクを実行する場所

今回はjobというjobはせずにただgithubからとってきたコードをpcfにアウトプットしています。これだけでdeployができます。

concourseを回す

まず先ほど作ったpipelineを生成しましょう

fly -t my-target set-pipeline -p my-app-concourse -c ci/pipeline.yml -l ci/credential.yml

-t でターゲットを指定してます
-p はpipelineの名前です
-c はセットするpipelineのymlファイルを指定します。
-l は-cで指定したファイルの(())で指定した場所に値を入れるファイルです。

これでpipelineの作成ができました。
それではconcourseのweb uiをみましょう。
Screen Shot 2017-07-26 at 21.18.01.png

  1. 左の=みたいなボタンを押すとパイプラインが生成できてるのを確認できると思います。
  2. そしたら今回生成したパイプラインの再生ボタンをおしてください。
  3. パイプラインの名前が書いてあるところをクリックするとパイプラインが実際に見れると思います。
  4. そのごdeployと書かれてるところをクリックしてください。すると下記のような画面が見れると思います。

Screen Shot 2017-07-26 at 21.20.44.png

そしたら右上にある+ぼたんを押してください。実際にdeployが走るはずです。

続き

続きは以下になります

2
1
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
2
1