JenkinsとCloudFoundry(Pivotal Cloud Foundry)のCDの連携設定を備忘録としてまとめました。
以下のシリーズのCF/PCF版です。
1. CloudFoundry Pluginをインストールする
JenkinsにJenkins CloudFoundry Pluginをインストールします。
インストールは管理者権限のあるユーザでJenkinsにログインし、Jenkinsの管理
→プラグインの管理
→利用可能
なタブを選択、CloudFoundryにチェックをいれてインストールを実行します。
2. CloudFoundry / Pivotal Cloud Foundryの認証設定
JenkinsにCF/PCFの認証情報を設定します。Jenkinsの左のメニューの認証情報
→System
→グローバルドメイン
を選択、左にある認証情報の追加
を選択し、以下の内容で追加します。
- 種類 : ユーザ名とパスワード
- ユーザ名 : CF/PCFのユーザ名
- パスワード : CF/PCFのパスワード
- ID : 空欄(あとで自動発行される)
- 説明欄 : CF/PCF認証用のユーザである説明を記載
3. Jenkinsfileの設定と動作確認
Jenkinsfile
のPipline ScriptにはpushToCloudFoundry
を使って以下の内容を設定します。
-
target
: CloudFoundry APIのドメイン -
organization
: 対象のorganization -
cloudSpace
: 対象のスペース -
credentialsId
: 2で設定した認証情報のID(英数字文字列) -
manifestChoice
(optional) : manifestの情報- たくさんあるので省略、
manifest.yml
に内容を記載して、インポートする形がよいと思います。
- たくさんあるので省略、
-
pluginTimeout
(optional) : timeout設定、デフォルトは120
-
selfSigned
(optional) : 自己証明書の設定、デフォルトはfalse
-
serviceToCreate
(optional) : コマンド実行時に作成するサービス
以下にサンプルを記載しました。
pipeline {
agent any
stages {
stage('deploy'){
steps {
pushToCloudFoundry(
target: 'xxxxxxxxx',
organization: 'yyyyyyy',
cloudSpace: 'zzzzz',
credentialsId: 'wwwwwwwwwwwwwwwwwww',
manifestChoice: [manifestFile: 'manifest.yml']
)
}
}
}
}
IP制限のある環境で実行する場合
Jenkins Pluginの中でcf push
およびcf logs
相当のコマンドが実行されるため、CF/PCFに対してJenkinsからの80ポート/443ポートおよび4443ポートの穴が空いている必要があるので注意してください。