LoginSignup
9
7

More than 5 years have passed since last update.

PCF Dev (Pivotal Cloud Foundry) をmacにインストールしてみた

Last updated at Posted at 2017-08-01

概要

Cloud Foundryは、オープンソースのPaaSプラットフォームで、ローカルにPaaS環境を構築することもできます。
今回はPCF Devを使って、macOS上にPaaS環境を構築してみます。

基本的に、こちらのTutorialに沿って実行しました。(一部違いますが)

要件

  • VirtualBox 5.0 以上

環境

  • macOS Sierra version 10.12.5
  • pcfdev-v0.26.0+PCF1.10.0
  • cf version 6.29.0+ff886fa93.2017-07-24

cliのインストール

PCFを実行するためのcliをインストールします。

以下からmac用のものをダウンロードして、GUIでインストールをしてください。
https://cli.run.pivotal.io/stable?release=macosx64&source=github

PCF Devのインストール

(追記)インストーラーで入れた場合は、こちらの手順は不要

ここからPCF Devをダウンロードします。
ダウンロードするには、無料会員登録が必要になるので、メールアドレスを登録してください。
https://network.pivotal.io/products/pcfdev

osxと書かれているものを選んでダウンロードします。

de21e54f784add52cc0ab8ddea6de4be.png

ダウンロードしたら解凍します。

$ unzip pcfdev-v0.26.0+PCF1.10.0-osx.zip

PCF Devのpluginをインストールします。

$ ./pcfdev-v0.26.0+PCF1.10.0-osx

起動

PCF Devを起動します。
Pivotal Networkに登録したメールアドレスとパスワードを聞かれるので、入力してください。

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

Email> mailaddres@sample.com

Password>
Downloading VM...
Progress: |====================>| 100%
VM downloaded.
Allocating 4096 MB out of 16384 MB total system memory (6869 MB free).
Importing VM...
Starting VM...
Provisioning VM...
Waiting for services to start...
7 out of 56 running
7 out of 56 running
7 out of 56 running
7 out of 56 running
38 out of 56 running
56 out of 56 running
 _______  _______  _______    ______   _______  __   __
|       ||       ||       |  |      | |       ||  | |  |
|    _  ||       ||    ___|  |  _    ||    ___||  |_|  |
|   |_| ||       ||   |___   | | |   ||   |___ |       |
|    ___||      _||    ___|  | |_|   ||    ___||       |
|   |    |     |_ |   |      |       ||   |___  |     |
|___|    |_______||___|      |______| |_______|  |___|
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

ログイン

PCF Devにログインします。
接続先、アカウント情報は、 cf dev start を実行した時の出力結果の通りです。

Apps Manager URL: https://local.pcfdev.io
Admin user => Email: admin / Password: admin
Regular user => Email: user / Password: pass

ログインします。
今回はuserでログインします。(adminでも構いません)

$  cf login -a api.local.pcfdev.io --skip-ssl-validation
API endpoint: api.local.pcfdev.io

Email> user

Password>
Authenticating...
OK

Targeted org pcfdev-org

Targeted space pcfdev-space



API endpoint:   https://api.local.pcfdev.io (API version: 2.75.0)
User:           user
Org:            pcfdev-org
Space:          pcfdev-space

サンプルアプリケーションの作成

デプロイするための、PHPのサンプルアプリケーションを作成します。

$ mkdir sample-php
$ vi index.php
index.php
<?php

echo 'This is a sample.';

デプロイ

アプリケーションをデプロイをします。

$ cf push php-sample-app -p sample-php/
Creating app php-sample-app in org pcfdev-org / space pcfdev-space as user...
OK

(**snip**)

-------> Buildpack version 4.3.26
Installing HTTPD
HTTPD 2.4.25
Downloaded [file:///tmp/buildpacks/4cc31f829ff946712e63e84276d50969/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/4cc31f829ff946712e63e84276d50969/dependencies/https___buildpacks.cloudfoundry.org_dependencies_php_php-5.5.38-linux-x64-1485208781.tgz] to [/tmp]
Finished: [2017-08-01 00:09:04.698339]

(**snip**)

requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: php-sample-app.local.pcfdev.io
last uploaded: Tue Aug 1 03:15:35 UTC 2017
stack: cflinuxfs2
buildpack: php 4.3.26

     state     since                    cpu    memory         disk           details
#0   running   2017-08-01 12:16:07 PM   0.0%   240K of 256M   448K of 512M

途中、HTTPDとPHPがインストールされているのがわかります。
http://php-sample-app.local.pcfdev.io へブラウザからアクセスして、
This is a sample. と表示されればデプロイ成功です。

アプリケーション一覧

作成済みのアプリケーション一覧が確認できます。

$ cf apps
Getting apps in org pcfdev-org / space pcfdev-space as user...
OK

name             requested state   instances   memory   disk   urls
php-sample-app   started           1/1         256M     512M   php-sample-app.local.pcfdev.io

app単体で見る

$ cf app php-sample-app

ログ出力

リアルタイムでログを確認する場合

$ cf logs php-sample-app

直近のログを確認する場合

$ cf logs php-sample-app --recent
Retrieving logs for app php-sample-app in org pcfdev-org / space pcfdev-space as user...

   2017-08-01T09:08:54.49+0900 [API/0] OUT Created app with guid 998003b3-3ba5-4a85-b36b-70e24fee0317
   2017-08-01T09:08:54.87+0900 [API/0] OUT Updated app with guid 998003b3-3ba5-4a85-b36b-70e24fee0317 ({"route"=>"00483624-4291-42fd-9252-d936b4ed16ca", :verb=>"add", :relation=>"routes", :related_guid=>"00483624-4291-42fd-9252-d936b4ed16ca"})

DBと接続する

PCFでは、MySQL, Postgres, Redis, and MongoDBを使うことができます。

$ cf marketplace
Getting services from marketplace in org pcfdev-org / space pcfdev-space as user...
OK

service        plans             description
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

TIP:  Use 'cf marketplace -s SERVICE' to view descriptions of individual plans of a given service.

mysqlで使用可能なplanを調べます。

$ cf marketplace -s p-mysql
Getting service plan information for service p-mysql as user...
OK

service plan   description            free or paid
512mb          PCF Dev MySQL Server   free
1gb            PCF Dev MySQL Server   free

512mbと1gbの2つのプランがあるようです。
今回は512mbのプランを使って、sample-php-dbという名前のserviceを作成します。

$ cf create-service p-mysql 512mb sample-php-db

作成されたserviceを確認します。

$ cf services
Getting services in org pcfdev-org / space pcfdev-space as user...
OK

name            service   plan    bound apps   last operation
sample-php-db   p-mysql   512mb                create succeeded

この時点では、bound appsは空欄になっています。
sample-php-dbをphp-sample-appで使えるように、bindします。

$ cf bind-service php-sample-app sample-php-db
Binding service sample-php-db to app php-sample-app in org pcfdev-org / space pcfdev-space as user...
OK
TIP: Use 'cf restage php-sample-app' to ensure your env variable changes take effect

php-sample-appをrestartしろと言っているので、アプリケーションを再起動します。

$ cf restart php-sample-app

bound appsにphp-sample-appがあることを確認します。

$ cf services
Getting services in org pcfdev-org / space pcfdev-space as user...
OK

name            service   plan    bound apps   last operation
sample-php-db   p-mysql   512mb   php-sample-app      create succeeded

スケーリング

インスタンスを1つから2つに増やします。

$ cf scale php-sample-app -i 2

増えたことを確認

$ cf app php-sample-app
Showing health and status for app php-sample-app in org pcfdev-org / space pcfdev-space as user...

name:              php-sample-app
requested state:   started
instances:         2/2
usage:             256M x 2 instances
routes:            php-sample-app.local.pcfdev.io
last uploaded:     Tue 01 Aug 09:08:54 JST 2017
stack:             cflinuxfs2
buildpack:         php 4.3.26

     state     since                  cpu    memory          disk             details
#0   running   2017-08-01T00:37:39Z   1.5%   25.3M of 256M   155.9M of 512M
#1   running   2017-08-01T00:45:28Z   0.0%   25.7M of 256M   155.9M of 512M

memory limitを、それぞれ1Gに増やします。

$ cf scale php-sample-app -i 2

ディスク容量をそれぞれ増やします。

$ cf scale php-sample-app -i 2

manifest.ymlを使った方法なども、後日追記したいと思います。
以上

参考

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