LoginSignup
0
0

More than 3 years have passed since last update.

作業メモ: Spring Boot on VSCode + Azure DevOPs -> Pivotal Cloud Foundry

Posted at

こちらの記事を見て触発されました。作業メモです
How To Set Up Continuous Integration Pipelines with Azure Pipelines and PCF

前の記事を改変していく形で説明します。よってこの記事を進める前に、前の記事の手順を済ませておいてください
(※一旦こちらでreleaseしますが。もしかしたらもっといいやり方があるかも。適宜次第更新していこうと思います)

目次

pcfの環境設定

cf CLIのインストール

https://docs.run.pivotal.io/cf-cli/install-go-cli.html
ローカルPCにインストールします。今回はUbuntu 18.04 on WLS利用なのでLinux Installationの手順に従います

pcfのトライアル環境の設定

以下のSIGN UP FOR FREEからトライアル環境を申し込みます
https://run.pivotal.io/

続いてトライアル環境にOrgとSpaceを作ります。それぞれの意味は以下です
https://docs.cloudfoundry.org/concepts/roles.html
- Org: 開発環境。Org毎にメモリが割り当てられる
- Space: アプリ毎の環境

pcfのConsoleから作りました
image.png
image.png

完了したらCLIからログインしてみます
cf login -a https://api.run.pivotal.io
トライアル環境に登録したEmailアドレスとパスワードを聞かれます。ログイン成功すると以下の形になるかと思います
7.png

Azure DevOpsの設定

Cloud Foundry Extensionのインストール

記事に従ってCloud Foundry ExtensionをAzure DevOpsにインストールします
(ちなみにAzure DevOpsの環境は、https://dev.azure.com/に遷移し、画面上の「Sign in to Azure DevOps」からたどっていけます)

Service connectionを設定する

続いて、同様に上記記事の「Service Endpoint for Cloud Foundry extension」に従って、pcf環境に対するService connectionを設定します

cf CLIのバイナリをGitHubのソースレポジトリに配備

pcfにアプリをデプロイ(push)するのはCLIからcf push を行うのですが、Azure DevOpsにはデフォルトではcf CLIが入っていません(CF Extensionに入れて欲しいものですが…)。ですので自分のアプリのソースツリーに"cf"バイナリを含める必要があります。バイナリはこちら。Azure DevOpsのRelease Pipelineの環境にあわせたバイナリを選択ください。自分はLinux版のバイナリをこんな感じで直下に配置しました
image.png

Build pipelineの修正

前の記事で作成したbuild pipelineを改変します。Copy Files to:xx のタスクのContentsに、"cf"と追加入力ください。こうすることでソースツリー中のcfバイナリもコピー対象に含まれ、Release pipelineで使えるようになります
8.png

Release pipelineの作成

こちらは新規に作っていきます。New release pipelineから
image.png

Empty jobを選択します
9.png

以下の画面になればOKです。右肩のXをクリックしてStageブレードは一旦閉じます
image.png

左側の四角中のAdd an artifactをクリックして、先ほど修正したBuild pipelineを選択します。Source aliasは短くしたかったので_pcftest1に変えました。
image.png

続いて右側四角中の1 job, 0 taskのリンクをクリックし、遷移した画面の"Agent job"右の+をクリックします
image.png

BashとCloud Foundry CLIの2つのタスクをAddします
image.png
image.png

設定していきます。まずAgent jobをクリック、Agent Specificationを、先に選択したcfバイナリのプラットフォームとあわせます。今回はUbuntu-18.04としました
image.png

Bashタスクを設定します。Script欄にchmnod 755 ./cfを入力します(これが無いとこの後のcf pushで権限エラーとなってしまう…)。ここに入れたコマンドの出力はログに載るので、必要に応じて追加してもOKです
image.png
更にAdvanced>Working Directoryを以下の設定にしました(current directoryをはっきりさせたかったため。無くてもいいかも)
image.png

最後にcf CLIタスクを設定します。Cloud Foundry Endpointは前の手順で設定した、pcf環境に対するService connectionを選択します
image.png
更にAdvanced>Working Directoryを以下に設定
image.png

Release pipelineへの設定はこれで完了です

pcfへデプロイ

画面上部の"Create release"をクリックしてデプロイします
10.png

特に入力せずそのまま"Create"
image.png

画面上部の"Release-xx has been created"のリンクをクリックして状況を確認します
image.png
image.png
image.png
image.png
image.png

pcfのコンソール上でもデプロイ完了を確認できます。(PCFのコンソールはこちら: https://console.run.pivotal.io/
Route列に記載のURLの末尾に"/hello"を付け加えて、作成したSpring boot appが動くことを確認ください
image.png

Spring Bootのコードを、Azure DevOpsを使ってpcfにCI/CDした手順は以上となります。お疲れ様でした

0
0
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
0
0