LoginSignup
3
2

More than 5 years have passed since last update.

pcfの環境構築

Last updated at Posted at 2017-07-26

最近pcfを触ることがあったので忘れないようにメモです

pcfとは

Pivotal Cloud Foundryの略です
オープンなPaas環境を提供しています。

参考にしたサイト

https://blog.ik.am/entries/387
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#domain

環境

golangのアプリをあげるのでgoの実行環境があるのが望ましいです。

cloud foundryのインストール

https://network.pivotal.io/products/pcfdev
からPCF Dev をダウンロードします。
PCF Devは開発用にローカル環境で簡単にCloud Foundryを試すためのVM環境です。
アカウント登録とかはよしなにしてください。

ダウンロードして来たファイルを展開してください。
pcfdev-v0.26.0+PCF1.10.0-osx
という感じのファイルができると思います。
今回ダウンロードして解答したファイルはPCF DevをインストールするためのCloud Foundryのプラグインです。

pcfのコマンドのインストール

https://github.com/cloudfoundry/cli/releases
からcliをダウンロードして開いてインストールしてください。

brewからもダウンロードできるそうです。(試してないです)

$ brew install cloudfoundry/tap/cf-cli
$ brew upgrade cf-cli

pcf devのインストール・起動

次にpcf devを実際にインストールして起動します。

$ cf install-plugin path/to/pcfdev-v0.26.0+PCF1.10.0-osx
$ cf dev start

これで来たのが確認できたと思います。

pcfにログイン

先ほど起動した時にログイン方法が表示がされていたと思います。この情報をつかってログインします。

$ 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

Orgはpcfdev-orgを選択しました。

これで下準備は整いました。

pcfにアプリをpush

まずあげるアプリを作成します。(goで作成していきます。)
アプリも含めたサンプルは
https://github.com/yuichi10/pcf-app
からとってこれます。

main.go

package main

import (
    "fmt"
    "net/http"
    "os"
)

func hello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "hello")
}

func main() {
    port := os.Getenv("PORT")
    if len(port) <= 0 {
        port = "8888"
    }
    http.HandleFunc("/", hello)
    http.ListenAndServe(":"+port, nil)
}

このコードでhelloを表示するだけのサーバーがつくられました。

go run main.go

を実行すると実際に動くのがわかると思います。

マニフェストの作成

これから実際にpcfにあげるためのmanifest.ymlを作成します。
アプリのルートディレクトリにmanifest.ymlを作成してください。

---
applications:
- name: pcf-app
  instance: 1
  buildpack: https://github.com/cloudfoundry/go-buildpack.git#v1.8.5
  domain: tcp.local.pcfdev.io
  env:
    GOVERSION: go1.8.3
    GOPACKAGENAME: github.com/<github ユーザー名>/<appディレクトリ名>
  • name: アプリの名前です。
  • instance: 起動時のインスタンス数です
  • buildpack: アプリを動かすランタイム環境を指定しています。 githubにbuildpackはあがってるので、それを選択します。 今回は現時点の最新で、go1.8.3が動くv1.8.5のgo-buildpackを選択しています。
  • domain: pcfにはいくつかインスタンスがたっており、そのどこのドメインにあげるかです。pcfからはshared domainとprivate domainという概念があるのですが、今回はshared domainを指定しています。このドメインに関しては $ cf domains コマンドで確認できます。
  • env: 環境変数を指定しています。今回GOPACKAGENAMEに関しては設定しなくてもいいのですが、glideなどでパッケージ管理をすると必要になったはずです。

pcfにpush

ここまで来たらあとはpcfにpushするだけです

$ cf push

これだけでpcfにpushできます。実行するとアプリが動いているurlなども表示てくれているのでぜひ動いているのをみてください!

続き

  1. concourseの構築
    http://qiita.com/yuichi10/items/c26359b8339186818951

  2. concourseを通してpcfにdeploy
    http://qiita.com/yuichi10/items/8555a51810230fefa73c

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