LoginSignup
3
2

More than 5 years have passed since last update.

シングル仮想マシンで CloudFoundry PaaS を動かすメモ

Last updated at Posted at 2017-08-03

Cloud Foundry のオールインワン・サーバーを PC上の仮想マシンで動かすことができる PCF Dev を動作させたメモです。 自分のMacで、Cloud Foundry が動作して、cf login でログインして、cf push でランタイムを起動できます。 また、cf m でマーケットプレイスのサービスのリストを表示できます。 なんというか、BluemixのCFランタイム環境が自分のPCで動作するワクワク環境です。

PCF Devの機能のリストは、参考資料(4)にあります。 Docker Support、Routing などもあり、Bluemix を利用する前に練習するには、ベストな環境かもしれません。

スクリーンショット 2017-08-04 11.01.06.png

前提条件

  • 仮想マシンへ 4GB RAMを割り当てられるメモリ搭載のPC
  • VirtualBox ver5以上
  • CF CLIをインストール 参考資料(1)

セットアップ作業

PCF Dev をインストールします。 参考資料(2)のウェブページから、Windows,Mac,Linuxから選んでダウンロードします。 ダウンロードにあたり、Pivotal へのユーザー登録が必要になります。 そして、セットアップの手順は、参考資料(3)にあります。 この資料に沿って、起動していきます。

それから、PCF Dev のマニュアルの場所は、参考資料(4)です。

CloudFoundry 仮想マシンの起動

次のコマンドで、CF CLIに、dev サブコマンドのプラグインが導入されます。

imac:cloudFoundry maho$ ./pcfdev-v0.26.0+PCF1.10.0-osx 
Plugin successfully installed. Current version: 0.26.0. For more info run: cf dev help

cfコマンドから、仮想マシンを起動します。この時、Pivotal に登録したユーザーIDとパスワードが必要です。 起動には、3.4GHzのCPUでも、10分以上必要です。

imac:cloudFoundry maho$ cf dev start
Please sign in with your Pivotal Network account.
Need an account? Join Pivotal Network: https://network.pivotal.io

Email> takara9@gmail.com

Password> **************
Downloading VM...

Progress: |====================>| 100% 
VM downloaded.
Allocating 4096 MB out of 16384 MB total system memory (5949 MB free).
Importing VM...
Starting VM...
Provisioning VM...
Waiting for services to start...

 _______  _______  _______    ______   _______  __   __
|       ||       ||       |  |      | |       ||  | |  |
|    _  ||       ||    ___|  |  _    ||    ___||  |_|  |
|   |_| ||       ||   |___   | | |   ||   |___ |       |
|    ___||      _||    ___|  | |_|   ||    ___||       |
|   |    |     |_ |   |      |       ||   |___  |     |
|___|    |_______||___|      |______| |_______|  |___|
is now running.
To begin using PCF Dev, please run:
   cf login -a https://api.local.pcfdev.io --skip-ssl-validation
Apps Manager URL: https://local.pcfdev.io
Admin user => Email: admin / Password: admin
Regular user => Email: user / Password: pass

ポータル Apps Manager へのアクセス

この https://local.pcfdev.io/ アドレスにアクセスすると、ログイン画面が表示されます。 Emailに"user", Passwordに"pass"でログインできます。

スクリーンショット 2017-08-04 11.05.47.png

ログイン後の画面です。

スクリーンショット 2017-08-04 11.09.02.png

CFログイン

imac:cloudFoundry maho$ cf login -a https://api.local.pcfdev.io --skip-ssl-validation
API エンドポイント: https://api.local.pcfdev.io

Email> user 

Password> 
認証中です...
OK

組織 pcfdev-org をターゲットにしました

スペース pcfdev-space をターゲットにしました



API エンドポイント:   https://api.local.pcfdev.io (API バージョン: 2.75.0)
ユーザー:             user
組織:                 pcfdev-org
スペース:             pcfdev-space

ビルドパックのリスト

imac:cloudFoundry maho$ cf buildpacks
ビルドパックを取得しています...

buildpack               位置   有効   ロック済み   ファイル名
java_buildpack          1      true   false        java-buildpack-offline-v3.13.zip
ruby_buildpack          2      true   false        ruby_buildpack-cached-v1.6.34.zip
nodejs_buildpack        3      true   false        nodejs_buildpack-cached-v1.5.29.zip
go_buildpack            4      true   false        go_buildpack-cached-v1.7.18.zip
python_buildpack        5      true   false        python_buildpack-cached-v1.5.15.zip
php_buildpack           6      true   false        php_buildpack-cached-v4.3.26.zip
staticfile_buildpack    7      true   false        staticfile_buildpack-cached-v1.3.17.zip
binary_buildpack        8      true   false        binary_buildpack-cached-v1.0.9.zip
dotnet-core_buildpack   9      true   false        dotnet-core_buildpack-cached-v1.0.11.zip

最小のアプリの起動

エディタで、phpの最小のアプリを書きます。

imac:php maho$ vi index.php
imac:php maho$ cat index.php
<?php

phpinfo();

?>

imac:php maho$ ls -la
total 8
drwxr-xr-x  3 maho  staff  102  8  4 00:52 .
drwxr-xr-x  5 maho  staff  170  8  4 00:51 ..
-rw-r--r--  1 maho  staff   23  8  4 00:52 index.php

上記ディレクトリから、CFサーバーへプッシュします。

imac:php maho$ cf push test
user としてアプリ test を組織 pcfdev-org / スペース pcfdev-space 内に作成しています...
OK

経路 test.local.pcfdev.io を作成しています...
OK

test.local.pcfdev.io を test にバインドしています...
OK

test をアップロードしています...
次のパスからアプリ・ファイルをアップロードしています: /Users/maho/Vagrant/cloudFoundry/php
161B、1 個のファイルをアップロードしています
Done uploading               
OK


user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ test を開始しています...
Downloading dotnet-core_buildpack...
Downloading python_buildpack...
Downloading ruby_buildpack...
Downloading binary_buildpack...
Downloading java_buildpack...
Downloaded binary_buildpack (49.1K)
Downloading php_buildpack...
Downloaded java_buildpack (244.5M)
Downloading go_buildpack...
Downloaded ruby_buildpack (280.2M)
Downloading nodejs_buildpack...
Downloaded python_buildpack (296.8M)
Downloading staticfile_buildpack...
Downloaded staticfile_buildpack
Downloaded php_buildpack (419M)
Downloaded dotnet-core_buildpack (437.4M)
Downloaded nodejs_buildpack (78M)
Downloaded go_buildpack (392M)
Creating container
Successfully created container
Downloading app package...
Downloaded app package (191B)
Staging...
-------> Buildpack version 4.3.26
Installing HTTPD
HTTPD 2.4.25
Downloaded [file:///tmp/buildpacks/1643ca986d44a6d525386b8fe28cabf5/dependencies/https___buildpacks.cloudfoundry.org_dependencies_httpd_httpd-2.4.25-linux-x64.tgz] to [/tmp]
Installing PHP
PHP 5.5.38
Downloaded [file:///tmp/buildpacks/1643ca986d44a6d525386b8fe28cabf5/dependencies/https___buildpacks.cloudfoundry.org_dependencies_php_php-5.5.38-linux-x64-1485208781.tgz] to [/tmp]
Finished: [2017-08-03 15:56:32.821847]
Exit status 0
Staging complete
Uploading droplet, build artifacts cache...
Uploading build artifacts cache...
Uploading droplet...
Uploaded build artifacts cache (196B)
Uploaded droplet (53.2M)
Uploading complete
Destroying container
Successfully destroyed container

1 個の中の 1 個のインスタンスが実行中です

アプリが開始されました


OK

アプリ test はコマンド `$HOME/.bp/bin/start` を使用して開始されました

user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ test の正常性と状況を表示しています...
OK

要求された状態: started
インスタンス: 1/1
使用: 256M x 1 インスタンス
URL: test.local.pcfdev.io
最終アップロード日時: Thu Aug 3 15:52:45 UTC 2017
スタック: cflinuxfs2
ビルドパック: php 4.3.26

     状態   開始日時                 CPU    メモリー        ディスク        詳細
#0   実行   2017-08-04 12:56:59 AM   0.0%   256M の中の 0   512M の中の 0

アプリの起動確認

アプリのリストを出して、アプリのURLを調べます。

imac:bluemix-test maho$ cf apps
user として組織 pcfdev-org / スペース pcfdev-space 内のアプリを取得しています...
OK

名前   要求された状態   インスタンス   メモリー   ディスク   URL
test   started          1/1            256M       512M       test.local.pcfdev.io

ブラウザからアクセスして確認します。

スクリーンショット 2017-08-04 0.58.50.png

マーケットプレイスのサービスのリスト

imac:php maho$ cf m
user として組織 pcfdev-org / スペース pcfdev-space 内のマーケットプレイスからサービスを取得しています...
OK

サービス       プラン            説明
local-volume   free-local-disk   Local service docs: https://github.com/cloudfoundry-incubator/local-volume-release/
p-mysql        512mb, 1gb        MySQL databases on demand
p-rabbitmq     standard          RabbitMQ is a robust and scalable high-performance multi-protocol messaging broker.
p-redis        shared-vm         Redis service to provide a key-value store

ヒント:  特定のサービスの個々のプランの説明を表示するには、'cf marketplace -s SERVICE' を使用します。

サービスの詳細、プランの表示

imac:bluemix-test maho$ cf m -s p-mysql
user としてサービス p-mysql のサービス・プラン情報を取得しています...
OK

サービス・プラン   説明                   無料または有料
512mb              PCF Dev MySQL Server   free
1gb                PCF Dev MySQL Server   free

サービスの作成

imac:bluemix-test maho$ cf cs p-mysql 512mb mydb
user としてサービス・インスタンス mydb を組織 pcfdev-org / スペース pcfdev-space 内に作成しています...
OK

サービスのリスト

imac:bluemix-test maho$ cf s
user として組織 pcfdev-org / スペース pcfdev-space 内のサービスを取得しています...
OK

名前   サービス   プラン   バインド済みアプリ   最後の操作
mydb   p-mysql    512mb                         create は成功しました

アプリとサービスのバインド

imac:bluemix-test maho$ cf bs test mydb
user としてサービス mydb を組織 pcfdev-org / スペース pcfdev-space 内のアプリ test にバインドしています...
OK
ヒント: 確実に環境変数の変更が有効になるようにするには、'cf restage test' を使用します
imac:bluemix-test maho$ cf restage test
user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ test を再ステージングしています...

アプリのVCAP環境変数の表示


imac:bluemix-test maho$ cf env test
user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ test の環境変数を取得しています...
OK

システム提供:
{
 "VCAP_SERVICES": {
  "p-mysql": [
   {
    "credentials": {
     "hostname": "mysql-broker.local.pcfdev.io",
     "jdbcUrl": "jdbc:mysql://mysql-broker.local.pcfdev.io:3306/cf_fdd7ae5c_cc78_4b64_947b_e642694cfca9?user=A6rWjAd2vbSr5vrL\u0026password=kS2aT13BKnoBNMXF",
     "name": "cf_fdd7ae5c_cc78_4b64_947b_e642694cfca9",
     "password": "kS2aT13BKnoBNMXF",
     "port": 3306,
     "uri": "mysql://A6rWjAd2vbSr5vrL:kS2aT13BKnoBNMXF@mysql-broker.local.pcfdev.io:3306/cf_fdd7ae5c_cc78_4b64_947b_e642694cfca9?reconnect=true",
     "username": "A6rWjAd2vbSr5vrL"
    },
    "label": "p-mysql",
    "name": "mydb",
    "plan": "512mb",
    "provider": null,
    "syslog_drain_url": null,
    "tags": [
     "mysql"
    ],
    "volume_mounts": []
   }
  ]
 }
}

{
 "VCAP_APPLICATION": {

Docker コンテナを動かす

Bluemix では、Dockerのコンテナの事を IBM Container と主張している。 bx ic というコマンドを動作させるために、ローカル側にdockerのインストールが必要であっても IBM Container なのだ。 この謎が PCF Dev を動かすことで解けた。 bx ic から始まるプラグインで動作させる Dockerコンテナは、IBM独自実装ということらしい。(注意:未確認の意見です)

以下のコマンドで、DockerHubからイメージを取得して、ウェブアプリケーションを動作させることができます。

imac:bluemix-test maho$ cf push my-app --docker-image cloudfoundry/test-app
user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ my-app を更新しています...
OK



user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ my-app を開始しています...
Creating container
Successfully created container
Staging...
Staging process started ...
Staging process finished
Exit status 0
Staging Complete
Destroying container
Successfully destroyed container

1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 0 個のインスタンスが実行中です, 1 個が開始中です
1 個の中の 1 個のインスタンスが実行中です

アプリが開始されました


OK

アプリ my-app はコマンド `/test-app ` を使用して開始されました

user として組織 pcfdev-org / スペース pcfdev-space 内のアプリ my-app の正常性と状況を表示しています...
OK

要求された状態: started
インスタンス: 1/1
使用: 256M x 1 インスタンス
URL: my-app.local.pcfdev.io
最終アップロード日時: Fri Aug 4 02:38:55 UTC 2017
スタック: cflinuxfs2
ビルドパック: unknown

     状態   開始日時                 CPU    メモリー        ディスク        詳細
#0   実行   2017-08-04 11:39:25 AM   0.0%   256M の中の 0   512M の中の 0

Buildpack: null になってるから、Dockerコンテナで動作しているみたいです。

スクリーンショット 2017-08-04 11.54.00.png

以下が、Dockerのアプリのウェブ画面です。

スクリーンショット 2017-08-04 11.55.18.png

参考資料

(1) Cloud Foundry Documentation Installing the cf CLI https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
(2) Pivotal Network PCF Dev https://network.pivotal.io/products/pcfdev#/releases/4905
(3) GitHub pivotal-cf/pcfdev https://github.com/pivotal-cf/pcfdev
(4) Pivotal Documentation PCF Dev Overview http://docs.pivotal.io/pcf-dev/index.html

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