Cloudn \ 技術ブログ tech blog

クラウド・エヌの活用方法についてご紹介していきます。
Cloudn Information

前の記事・次の記事

CloudnのPaaSとGitLab, Jenkinsを連携させてみよう【後編】

ブログ記事

こんにちは。NTTコミュニケーションズの三井です。
今回は、前編に構築したGitLab、JenkinsとCloudn PaaSの連携方法をご紹介します。

1. GitLabの設定

Jenkinsと連携させるためにGitLabにリポジトリを作成し、そのリポジトリにWeb hookの設定をします。GitLabにログインすると以下の画面が表示されるので、New Projectボタンをクリックします。
スクリーンショット 2015-07-01 10.53.55

Project pathに”jenkins-test”とつけてプロジェクトを作成します。
スクリーンショット 2015-07-01 11.00.47

作成後、サイドバーのsetting→Web hooksと移動します。URLにhttp://[JenkinsサーバのIPアドレス]/job/paas_deploy/buildWithParametersと入力し、Triggerは”Push events”を選択します。
URLの”paas_deploy”は後ほど説明するJenkinsのジョブ名となっています。
webhook

2. JenkinsのJobの作成

2.1 ジョブの作成

http://[JenkinsサーバのIPアドレス]/にアクセスし、新規ジョブ作成をします。
ジョブ名に、前章で後で使うと説明しました”paas_deploy”と入力し、”フリースタイル・プロジェクトのビルド”にチェックを入れOKをクリックします。

ジョブ作成

2.2 ジョブの設定

ジョブの作成後、ジョブの設定画面に移動するので、以下の3つの設定を行います。

  • ビルドのパラメータ化
  • ソースコード管理(Git)
  • ビルド後の処理の追加(Cloud Foundryへのデプロイ)

2.2.1 ビルドのパラメータ化

GitHubやGitLabからWeb hookされた際にパラメータを受け取れるように設定します。
ビルドのパラメータ化にチェックを入れ、パラメータの追加から”文字列”を選びます。
名前の欄に”payload”、デフォルト値の欄に”none”と入力します。
スクリーンショット 2015-07-01 13.09.37

2.2.2 ソースコードの管理

GitHubやGitLabからWeb hookされた後、Pullできるようにリポジトリを登録します。
ソースコード管理のGitにチェックを入れ、Credentialsの欄にあるAddボタンを押します。以下の様な画面が表示されますので、”ユーザ名とパスワード”を選び、GitLabのログイン情報(ユーザ名: root、パスワード: [初回変更後パスワード])を入力してください。
jenkins-webcre

Addボタンを押して鍵登録が完了したら、Repository URLの欄に、”http://[GitLabサーバのIPアドレス]/root/jenkins-test.git”と入力します。Credentialsのプルダウンメニューから先ほど追加した”root/***”を選びます。Branch Specifierの欄はmasterを指定します(使用したいブランチによって適宜変えて下さい)。
ipaddress

2.2.3 ビルド後の処理

Cloudn PaaSへデプロイするための設定を行います。
“ビルド後の処理の追加”をクリックし、”Push to Cloud Foundry”を選択します。以下の項目を設定します。

  • Target
  • Credentials
  • Organization
  • Space
  • Read configuration from a manifest file
Target

Targetには”https://api.paas.jp-e1.cloudn-service.com”と入力します。

Credentials

CredentialsではCloudn PaaSアクセスするためのアカウント情報を入力します。
Cloudn PaaSにコンソールの右上の、”ようこそ***さん”の右の小さなボタンを押し、その中にある”APIアクセスキー・秘密鍵管理”を選択し、アクセスキーIDと秘密鍵を取得します。

新APIアクセスキー

apiアクセスキー詳細

Credentials付近にあるAddボタンを押し、ユーザ名パスワードを設定します。ユーザ名にアクセスキーIDを、パスワードには秘密鍵を入力します。

Organization

CloudnのポータルからCloudn PaaSのコンソールにログインした後、トップにアカウントID(下記スクリーンショットの赤丸部分)が表示されていますが、これをOrganizationとして使用します。paas上部

Space

Spaceは使用したいスペースを指定します。デフォルトでは”default”という名前のスペースがCloud PaaSで用意されており、別のスペースを使用したい場合は別途追加する必要があります。スペースの追加やスペース名の変更はPaaSコンソールからのみ可能です。

Read configuration from a manifest file

Read configuration from a manifest fileにチェックし、”manifest.yml”を指定します。

全設定完了後、以下のようになり、Test Connectionを押して、”Connection successful!”と表示されれば成功です。
cf設定

 3. Sinatraアプリケーションのデプロイ

最後にソースコードをGitLabにPushして、自動的にCloudn PaaSにデプロイできるか確認します。今回はSinatraアプリケーションをデプロイします。

ご自身のローカルマシンでSinatraアプリケーションを作成していきます。

クローンしたディレクトリに移動し、Gemfileというファイルを新たに作成し、以下の項目を追加します。

以下のコマンドを実行し、Gemfile.lockを生成します。

Sinatraを動かす為のコードを作成します。以下の内容でsinatra.rbというファイルを作成します。

sinatraはRackと呼ばれる、RubyによるWebアプリケーションのHTTP関連の処理を行うモジュールを使用しており、これを使うために以下の内容でconfig.ruというファイルを作成します。

以下の内容でmanifest.ymlを作成します。ここで指定した名前でアプリのURLが決定されます。Cloudn PaaSでは同じアプリ名は使用ませんので、適宜変更してください。

以下のコマンドGitLabにPushします。

http://[Jenkins用サーバのIPアドレス]/job/paas_deploy/ にアクセスすると、ビルド履歴という欄に実行中のビルドが表示されます(筆者の環境では何回か試した為番号が10となっております)。
スクリーンショット 2015-07-02 15.38.31#番号となっている箇所をクリックし、コンソール出力の画面に行くと、デプロイの進捗状況を確認できます。
スクリーンショット 2015-07-02 15.46.03コンソール出力の下のほうにCloudn PaaSへデプロイしているログが表示されています。SUCCESSとなっていれば大丈夫です。

スクリーンショット 2015-07-02 15.47.54

Application is now running at のあとに記されているURLにアクセスすると、Hello World!!を確認することができました。スクリーンショット 2015-07-02 16.02.02

Cloudn PaaSのコンソールを見ると、新たにアプリケーションが作成されていることが確認できます。
スクリーンショット 2015-07-02 16.23.24

 4. まとめ

前編、後編にわたって、Cloudn PaaSとGitLab、Jenkinsを連携させる方法をご紹介致しました。今回はJenkinsをCloudn PaaSにデプロイするのに用いましたが、他にもコーディングルールの確認、ユニットテストの実行等々を行うことができますので、今回の環境を使って検証してみるのはいかがでしょうか。

※本記事の内容は、Cloudnの活用方法の一例を示したものであり、お客様の環境・構成において動作することをお約束するものではありません。 従いまして、本記事の内容によって生じたトラブルや損害についても、弊社では責任を負いかねますのでご了承ください。
また、本記事の内容に関してのサポートは行っておりませんので、予めご了承ください。

ブログフッダ

投稿日:

前の記事・次の記事

サイドニュー

カテゴリー

最近の記事

バックナンバー