際際滷

際際滷Share a Scribd company logo
Copyright? 2016 NTT Software Corporation
cf-containers-brokerを聞った
gサ`ビス恬撹
NTTソフトウェア幄塀氏芙
クラウドΕ札ュリティ並I何
クラウド並Iユニット
畢寒 宗
Copyright? 2016 NTT Software Corporation 2
徭失B初
? 箆兆
? 畢寒 宗Takeshi Morikawa)
? 侭奉
? NTTソフトウェア幄塀氏芙
クラウドΕ札ュリティ並I何
クラウド並Iユニット
? 毅輝I
? 2012定3埖゛2016定2埖 Cloud Foundry毅輝
☆NTTソフトウェアは2012定2埖の晩云Cloud Foundryグル`プO羨rより歌紗
NTTソフトウェアOSS┘`プンソ`スソフトウェアの試喘ペ`ジ
Copyright? 2016 NTT Software Corporation 3
麼な試
? Cloud Foundry v2鬚韻離灰▲灰鵐櫞`ネントのC嬬個鋲
? Implementation of High Availability of Application instances by NTT
? 晩云Cloud Foundryグル`プブログ為晩佩鵡P
? 47晩朕Shout
? 52晩朕Tracks
? 68晩朕spring-boot-cf-service-broker-mongo
? 69晩朕Let¨s Chat
? 81晩朕Rocket.Chat
? 82晩朕Wekan
? 86晩朕GroupSession
? 92晩朕webcrontab
? 96晩朕NicoNico SPEENYA
? 99晩朕SHIRASAGI
Copyright? 2016 NTT Software Corporation 4
為晩佩の誘後によって
Cloud Foundry OSS井の巷塀ML┘灰潺絅縫謄
にてmongo brokerについて|に
This is excellent.
I think your blog post outlines
exactly what I was looking for.
Thank you for the help.
http://cf-dev.70369.x6.nabble.com/cf-dev-Provided-service-broker-API-version-is-not-
supported-Expected-Version-2-4-Provided-Version-nul-td2905.html#a2932
Copyright? 2016 NTT Software Corporation 5
云晩の坪否
Copyright? 2016 NTT Software Corporation 6
Cloud Foundryにおける
サ`ビスについて
Copyright? 2016 NTT Software Corporation 7
PaaSでDBに俊AするHは
參和のように
h廠篳で俊A秤鵑鯤垢錣譴詈造謹い
DATABASE_URL=postgres://foo:foopass@hogehoge.com:5432/test123db
Copyright? 2016 NTT Software Corporation 8
Cloud Foundryでは
PostgreSQLやMySQL吉をサ`ビスと柵び
CLIからAPIをU喇して參和の荷恬が辛嬬
? サ`ビス恬撹と茅
? サ`ビスのアプリと~原けと盾茅
アプリを~原ける並でh廠篳からサ`ビスの俊A秤鵑函誼辛嬬になる
Copyright? 2016 NTT Software Corporation 9
サ`ビスの俊A秤
サ`ビスによって俊A秤黐撹のタイミングや
恬撹のされ圭がなる栽がある
? 恬撹タイミング
? サ`ビスの恬撹rcreate-service
? アプリとの~原けrbind-service)
? 恬撹のされ圭
? 1つのサ`ビスインスタンスで}方ユ`ザ蛍のサ`ビスをdせる
┘泪襯船謄淵鵐釆唯
? 1つのサ`ビスインスタンスで1ユ`ザ蛍のサ`ビスをdせる
Copyright? 2016 NTT Software Corporation 10
サ`ビス晒するには
Copyright? 2016 NTT Software Corporation 11
Cloud Foundryでは
宥械Service Brokerをeに1Nずつ恬撹
するのが匯違議
? PostgreSQL喘
? https://github.com/cloudfoundry-community/postgresql-cf-
service-broker
? MySQL喘
? https://github.com/cloudfoundry/cf-mysql-broker
? MongoDB喘
? https://github.com/spring-cloud-samples/cloudfoundry-
service-broker
Copyright? 2016 NTT Software Corporation 12
}方のサ`ビス喘の
Service Brokerを
メンテするのが寄

パブリックな
Cloud Foundryサ`ビスと
揖じサ`ビスをgに恬りたい
Copyright? 2016 NTT Software Corporation 13
cf-containers-broker
Copyright? 2016 NTT Software Corporation 14
cf-containers-brokerとは
dockerの碧Mみを聞って
サ`ビスをgに恬撹辛嬬になるbroker
? cloudfoundry-communityで砿尖されている
? https://github.com/cloudfoundry-community/cf-containers-broker
? DockerImageを聞う
? Railsu
? サ`ビスの弖紗はYAMLのO協ファイルで佩う
Copyright? 2016 NTT Software Corporation 15
メリット
パブリックなCloud Foundryサ`ビスで喘吭されて
いるような、N源なサ`ビスと揖じ旋宴來をプライ
ベ`トな_kh廠鬚韻吠荒辰垢詈造辛嬬
☆〆斌喘h廠でそのまま旋喘辛嬬か拭擦砲弔い討蓮docker-boshreleaseのDisclaimer(窒並に參和のよう
にd
〆This is not presently a production ready Docker BOSH release. This is a work in progress. It is
suitable for experimentation and may not become supported in the future.〇
Copyright? 2016 NTT Software Corporation 16
旋喘圭隈
寄きく蛍けて2つ
? docker-boshreleaseを聞ってboshでデプロイして旋喘する
? https://github.com/cloudfoundry-community/docker-boshrelease
? cf-containers-broker徭悶をdockerで旋喘する
☆Railsなのでロ`カルでrubyを秘れて咾す並も辛嬬
? https://github.com/cloudfoundry-community/cf-containers-broker
Copyright? 2016 NTT Software Corporation 17
manifestのN(h廠
? githubからcloneするとexampleディレクトリの和に
? bosh-lite
? google
? openstack
? aws
? bosh喘manifestのサンプルが贋壓
? 4Nのh廠それぞれ喘に厚に4Nの撹喘manifest
が喘吭されている
Copyright? 2016 NTT Software Corporation 18
manifestのN(撹
Manifest兆 蒙
docker-.yml
? manifestの嶄でdocker imageを峺協してboshでデプロイ辛嬬になる
? Dockerfile犁韻林峰をmanifest坪何に峰する並も辛嬬
? 軟咾靴Docker imageのプロセスは麿のコンポ`ネントと揖にmonitで砿尖され
る
? 児云議にはデプロイ瘁貧げたままで慌宥議に聞うような喘余鬚隠credentialを?
に蛍けるものではないのでサ`ビスとしてはあまり鬚ない
docker-broker-
.yml
? cf-containers-brokerをboshでデプロイする喘
? docker images式びserviceのcatalog秤鵑manifestで峺協する並でデプロイ辛嬬
? docker image箸credential秤鵑鬮h廠篳を聞って伏撹する碧Mみになっているも
のであればcreate-service阿邦なるcredentialでサ`ビスが恬撹辛嬬になる
? 1サ`ビスインスタンスにつき1dockerコンテナ
? 児云議には1broker:1dockerになる
? 匯何サンプルの嶄にはcatalog秤鵑、箸靴metadataでPCF鬚韻、あるが駅
ではない
docker-swarm-
.yml
? dockerとdocker swarmをデプロイする喘のmanifest
? この瘁にh苧するmanifestの撹を恬る念粁Aのサンプル議なmanifest
docker-swarm-
broker-.yml
? docker-broker-.ymlのswarm鬦罎廃}方のvm貧のdockerに魗苗
? elasticsearchやetcd,rabittmq,nats,etcd吉の?なサ`ビスが旋喘辛嬬なexample
? 1サ`ビスインスタンスにつき1dockerコンテナ
Copyright? 2016 NTT Software Corporation 19
docker-swarm-brokerのmanifestに
峰されているサ`ビス匯E
arangodb22 mysql56
consul nats
couchdb16 neo4j21
elasticsearch13 postgresql93
etcd rabbitmq33
logstash14 redis28
memcached14
128mb,512m,1GB rethinkdb
mongodb26
Copyright? 2016 NTT Software Corporation 20
輝兜の嚠協では´
Copyright? 2016 NTT Software Corporation 21
輝兜の嚠協では...
docker-boshreleaseをh苧する嚠協でしたが
恷仟井のbosh-lite喘サンプルで編^した侭、
參和の}がk伏┐修賻塒發exampleはh廠が笋任ず隆_J
☆參念^肇に編^したのはv16のタグ、書指はcf-release v230 + docker-broker v22 or v23で編^
? 10.244.0.6のIPが峺協されているがcf喘Bのrelease
(cf-release)箸NATS喘で聞われていてデプロイに払
? errandによるbrokerのregisterがエラ`が竃て屎械嘛しな
かった
Copyright? 2016 NTT Software Corporation 22
cf-containers-brokerを
dockerを聞って旋喘する
Copyright? 2016 NTT Software Corporation 23
並念
並念に參和の笋鯰个
? Dockerを聞うので並念に
書指はbosh-liteを軟咾気擦討い襯曠好箸dockerをインスト`ルをg仏
? Cloud Foundryh廠のB
? 書指の編^ではbosh-liteでcf-release v230を並念にデプロイgみ
Copyright? 2016 NTT Software Corporation 24
イメ`ジのビルド
$ git clone https://github.com/cloudfoundry-community/cf-containers-broker.git
$ cd cf-containers-broker/
$ sudo docker build -t frodenas/cf-containers-broker .
編^rコミット
https://github.com/cloudfoundry-community/cf-containers-broker/tree/3b6cdac3c34059e2f22ab456354f0bc285a791dc
Copyright? 2016 NTT Software Corporation 25
O協ファイルの
$ mkdir -p /tmp/cf-containers-broker/config
$ mkdir -p /tmp/cf-containers-broker/logs
$ cp config/settings.yml /tmp/cf-containers-broker/config
$ cp config/unicorn.conf.rb /tmp/cf-containers-broker/config
Copyright? 2016 NTT Software Corporation 26
settings.ymlの俐屎
$ git diff
diff --git a/config/settings.yml b/config/settings.yml
cookie_secret: 'e7247dae-a252-4393-afa3-2219c1c02efd`
session_expiry: 86400
cc_api_uri: 'http://api.vcap.me`
- external_ip: 127.0.0.1
- external_host: 'containers.vcap.me`
+ cc_api_uri: 'http://api.bosh-lite.com`
+ external_ip: 192.168.15.82
+ external_host: 'containers.192.168.15.82.xip.io`
ssl_enabled: false
skip_ssl_validation: true
俐屎w侭のdiff
Copyright? 2016 NTT Software Corporation 27
settings.ymlの俐屎ポイント
並念に參和の笋鯰个
? cc_api_uriはbosh-liteで軟咾靴ccngのapiのuri
? extarnal_ipはdockerでcf-container-broekrを軟咾靴討い栽はホスト
箸IP
? external_host何蛍はcontainers+ホスト箸IPにxipでアドレス盾Q辛嬬
にしたもの
☆この俐屎が駅かは音苧
デフォルトのPostgreSQL參翌をサ`ビス晒する栽はdocker-boshreleaseのexampleのdocker-swarm-
brokerから卞峅するのがお瓩
Copyright? 2016 NTT Software Corporation 28
軟咫駅勣に鬉犬docker-compose.ymlにいた圭がお瓩瓩任
$ sudo docker run -d --name cf-containers-broker ?
--publish 80:80 ?
--volume /var/run:/var/run ?
--volume /tmp/cf-containers-broker/logs:/app/log ?
--volume /tmp/cf-containers-broker/config:/config ?
frodenas/cf-containers-broker
Copyright? 2016 NTT Software Corporation 29
Service Broker鞠hと_J
(create-service-brokerとenable-service-access)
$ cf create-service-broker docker-broker containers secret http://192.168.15.82
while read p __; do
cf enable-service-access "$p";
done < <(cf service-access | awk '/orgs/{y=1;next}y && NF' | sort | uniq)
鞠h
Cloud FoundryのAPIサ`バであるCloud ControllerにService Brokerとして鞠hする
? デフォルトのユ`ザ兆はcontainersでパスワ`ドがsecret
? 192.168.15.82は軟咾諒幎のHに ̄docker run ̄でリッスンしたアドレスを秘薦する
鞠h_J
$ cf marketplace
Getting services from marketplace in org admin / space admin as admin...OK
service plans description
postgresql93 free PostgreSQL 9.3 service for application development and testing
TIP: Use 'cf marketplace -s SERVICE' to view descriptions of individual plans of a given service.
Copyright? 2016 NTT Software Corporation 30
サ`ビス恬撹とアプリとの~原け
(create-serviceとbind-service)
$ cf create-service postgresql93 free dora-pg
Creating service instance dora-pg in org admin / space admin as admin...OK
恬撹
參和の坪否を秘薦しサ`ビスを恬撹する
? cf create-service <service兆> <plan兆> <販吭のサ`ビスインスタンス兆>
$ cf bind-service dora dora-pg
アプリとの~原け
參和の坪否を秘薦しアプリとの~原けを佩う
? cf bind-service <アプリ兆><恬撹rに秘薦したサ`ビスインスタンス兆>
Copyright? 2016 NTT Software Corporation 31
サ`ビスの俊A秤鶸_J
(env)
$ cf env dora
Getting env variables for app dora in org admin / space admin as admin...
OK
System-Provided:
{
"VCAP_SERVICES": {
"postgresql93": [
{
"credentials": {
"dbname": "hnae3b9lntbijl2y",
"hostname": "192.168.15.82",
"password": "io7we2q8vjtfeevz",
"port": "32768",
"ports": {
"5432/tcp": "32768^
},
"uri": "postgres://vnbchxzfrnmtujwi:io7we2q8vjtfeevz@192.168.15.82:32768/hnae3b9lntbijl2y",
"username": "vnbchxzfrnmtujwi^
},
"label": "postgresql93",
"name": "dora-pg",
"plan": "free",
"tags": [
"postgresql93",
"postgresql",
"relational^
]
}
]
}
}
サ`ビスの俊A秤鵑魎_J
Copyright? 2016 NTT Software Corporation 32
psqlで俊A_J
$ psql -U vnbchxzfrnmtujwi -p 32768 -h 192.168.15.82 -d hnae3b9lntbijl2y
Password for user vnbchxzfrnmtujwi:
psql (9.1.13, server 9.4.5)
WARNING: psql version 9.1, server version 9.4.
Some psql features might not work.
Type "help" for help.hnae3b9lntbijl2y=#
psqlで俊A_Jを佩う
Copyright? 2016 NTT Software Corporation 33
コンテナの彜Bチェック
$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
19b0d2c2323f frodenas/postgresql:latest ^/scripts/run.sh  ̄ 41 hours ago Up 41 hours
0.0.0.0:32768->5432/tcp cf-f418dd0f-3e76-4cf4-95fa-d1f9ad33ad05
5d61ef75398a frodenas/cf-containers-broker "/app/bin/run.sh bun 41 hours ago Up 41 hours
0.0.0.0:80->80/tcp cf-containers-broker
docker psの彜Bを_Jすると參和のようになっている
Copyright? 2016 NTT Software Corporation 34
嘛の碧Mみ
(containers-broker)
credentials:
username:
key: 'MONGODB_USERNAME`
password:
key: 'MONGODB_PASSWORD`
dbname:
key: 'MONGODB_DBNAME'
uri:
prefix: 'mongodb`
port: '27017/tcp'
create-service阿邦なるcredentialsに鬉気擦襪砲setting.yml箸
cledentialsに耕協orランダム、鯤荒辰垢襪の協xを峰する
? https://github.com/cf-platform-eng/cf-containers-broker#bindings
? https://github.com/cf-platform-eng/cf-containers-broker/blob/master/CREDENTIALS.md
? http://docs.cloudfoundry.org/services/binding-credentials.html
usernameを徭喇撹する栽
credentials:
username:
key: 'MONGODB_USERNAME`
value: `admin`
password:
key: 'MONGODB_PASSWORD`
dbname:
key: 'MONGODB_DBNAME'
uri:
prefix: 'mongodb`
port: '27017/tcp'
usernameを^admin ̄に耕協する栽
Copyright? 2016 NTT Software Corporation 35
嘛の碧Mみ
(DockerImage)
#!/bin/bash
USER=${MONGODB_USERNAME:-mongo}
PASS=${MONGODB_PASSWORD:-$(pwgen -s -1 16)}
DB=${MONGODB_DBNAME:-admin}
cf-containers-brokerがdocker runのオプションで-eを聞ってh廠篳が局ってくるので、軟rのス
クリプト坪(run.sh吉)でその、鯤垢辰
credential秤鵑鯑rに筝させるようにする
? https://github.com/frodenas/docker-mongodb/blob/master/scripts/first_run.sh
first_run.sh
Copyright? 2016 NTT Software Corporation 36
嘛の碧Mみ
(イメ`ジ)
Cloud Controller
USER=${MONGODB_USERNAME:-mongo}
PASS=${MONGODB_PASSWORD:-$(pwgen -s -
1 16)}
DB=${MONGODB_DBNAME:-admin}
first_run.sh
docker run ?
-e ^MONGODB_USEDRNAME=admin^ ?
-e ^MONGODB_PASS WORD=RANDOM_PASS ̄ ?
-e ^MONGODB_DBNAME=RANDOM_DBNAME ̄
$ create-service mongo free mongo1
create-serviceにつき1dockerコンテナ
cf-containers-broker
Copyright? 2016 NTT Software Corporation 37
? cf-containers-brokerは
? Dockerの碧Mみを聞ってサ`ビス晒が辛嬬になるので試
喘する並で_kしやすくなる
? Service Brokerの咾魄冦佞垢覯凌爾砲覆
まとめ
Copyright? 2016 NTT Software Corporation 38
ご賠
ありがとうございました
Copyright? 2016 NTT Software Corporation 39
斌房阿啜賠h斌砲砲弔い
? Cloud Foundryは、致忽およびその麿の忽におけるPivotal Software, Inc.の斌砲
たは鞠h斌砲任后
? Dockerは、致忽およびその麿の忽におけるDocker, Inc.の鞠h斌砲泙燭鷲砲任后
? Twitterの兆各およびそのロゴ、Twitterの仝T々ロゴ、Tweet、Twitterの楳いBは、
致忽およびその麿の忽におけるTwitter, Inc.の鞠h斌砲泙燭鷲砲任后
? MySQLは、MySQL, Inc.および致忽Sun Microsystems, Inc.の致忽およびその麿の
忽における鞠h斌砲泙燭鷲砲任后
? PostgreSQLは、PostgreSQLの致忽およびその麿の忽における鞠h斌砲泙燭鷲砲
す。
? Mongo, MongoDB式びMongoDB leaf logoはMongoDB Inc.の鞠h斌
です。

More Related Content

cf-containers-broker を聞ってロ`カルh廠もサ`ビスの寓{をうける

  • 1. Copyright? 2016 NTT Software Corporation cf-containers-brokerを聞った gサ`ビス恬撹 NTTソフトウェア幄塀氏芙 クラウドΕ札ュリティ並I何 クラウド並Iユニット 畢寒 宗
  • 2. Copyright? 2016 NTT Software Corporation 2 徭失B初 ? 箆兆 ? 畢寒 宗Takeshi Morikawa) ? 侭奉 ? NTTソフトウェア幄塀氏芙 クラウドΕ札ュリティ並I何 クラウド並Iユニット ? 毅輝I ? 2012定3埖゛2016定2埖 Cloud Foundry毅輝 ☆NTTソフトウェアは2012定2埖の晩云Cloud Foundryグル`プO羨rより歌紗 NTTソフトウェアOSS┘`プンソ`スソフトウェアの試喘ペ`ジ
  • 3. Copyright? 2016 NTT Software Corporation 3 麼な試 ? Cloud Foundry v2鬚韻離灰▲灰鵐櫞`ネントのC嬬個鋲 ? Implementation of High Availability of Application instances by NTT ? 晩云Cloud Foundryグル`プブログ為晩佩鵡P ? 47晩朕Shout ? 52晩朕Tracks ? 68晩朕spring-boot-cf-service-broker-mongo ? 69晩朕Let¨s Chat ? 81晩朕Rocket.Chat ? 82晩朕Wekan ? 86晩朕GroupSession ? 92晩朕webcrontab ? 96晩朕NicoNico SPEENYA ? 99晩朕SHIRASAGI
  • 4. Copyright? 2016 NTT Software Corporation 4 為晩佩の誘後によって Cloud Foundry OSS井の巷塀ML┘灰潺絅縫謄 にてmongo brokerについて|に This is excellent. I think your blog post outlines exactly what I was looking for. Thank you for the help. http://cf-dev.70369.x6.nabble.com/cf-dev-Provided-service-broker-API-version-is-not- supported-Expected-Version-2-4-Provided-Version-nul-td2905.html#a2932
  • 5. Copyright? 2016 NTT Software Corporation 5 云晩の坪否
  • 6. Copyright? 2016 NTT Software Corporation 6 Cloud Foundryにおける サ`ビスについて
  • 7. Copyright? 2016 NTT Software Corporation 7 PaaSでDBに俊AするHは 參和のように h廠篳で俊A秤鵑鯤垢錣譴詈造謹い DATABASE_URL=postgres://foo:foopass@hogehoge.com:5432/test123db
  • 8. Copyright? 2016 NTT Software Corporation 8 Cloud Foundryでは PostgreSQLやMySQL吉をサ`ビスと柵び CLIからAPIをU喇して參和の荷恬が辛嬬 ? サ`ビス恬撹と茅 ? サ`ビスのアプリと~原けと盾茅 アプリを~原ける並でh廠篳からサ`ビスの俊A秤鵑函誼辛嬬になる
  • 9. Copyright? 2016 NTT Software Corporation 9 サ`ビスの俊A秤 サ`ビスによって俊A秤黐撹のタイミングや 恬撹のされ圭がなる栽がある ? 恬撹タイミング ? サ`ビスの恬撹rcreate-service ? アプリとの~原けrbind-service) ? 恬撹のされ圭 ? 1つのサ`ビスインスタンスで}方ユ`ザ蛍のサ`ビスをdせる ┘泪襯船謄淵鵐釆唯 ? 1つのサ`ビスインスタンスで1ユ`ザ蛍のサ`ビスをdせる
  • 10. Copyright? 2016 NTT Software Corporation 10 サ`ビス晒するには
  • 11. Copyright? 2016 NTT Software Corporation 11 Cloud Foundryでは 宥械Service Brokerをeに1Nずつ恬撹 するのが匯違議 ? PostgreSQL喘 ? https://github.com/cloudfoundry-community/postgresql-cf- service-broker ? MySQL喘 ? https://github.com/cloudfoundry/cf-mysql-broker ? MongoDB喘 ? https://github.com/spring-cloud-samples/cloudfoundry- service-broker
  • 12. Copyright? 2016 NTT Software Corporation 12 }方のサ`ビス喘の Service Brokerを メンテするのが寄 パブリックな Cloud Foundryサ`ビスと 揖じサ`ビスをgに恬りたい
  • 13. Copyright? 2016 NTT Software Corporation 13 cf-containers-broker
  • 14. Copyright? 2016 NTT Software Corporation 14 cf-containers-brokerとは dockerの碧Mみを聞って サ`ビスをgに恬撹辛嬬になるbroker ? cloudfoundry-communityで砿尖されている ? https://github.com/cloudfoundry-community/cf-containers-broker ? DockerImageを聞う ? Railsu ? サ`ビスの弖紗はYAMLのO協ファイルで佩う
  • 15. Copyright? 2016 NTT Software Corporation 15 メリット パブリックなCloud Foundryサ`ビスで喘吭されて いるような、N源なサ`ビスと揖じ旋宴來をプライ ベ`トな_kh廠鬚韻吠荒辰垢詈造辛嬬 ☆〆斌喘h廠でそのまま旋喘辛嬬か拭擦砲弔い討蓮docker-boshreleaseのDisclaimer(窒並に參和のよう にd 〆This is not presently a production ready Docker BOSH release. This is a work in progress. It is suitable for experimentation and may not become supported in the future.〇
  • 16. Copyright? 2016 NTT Software Corporation 16 旋喘圭隈 寄きく蛍けて2つ ? docker-boshreleaseを聞ってboshでデプロイして旋喘する ? https://github.com/cloudfoundry-community/docker-boshrelease ? cf-containers-broker徭悶をdockerで旋喘する ☆Railsなのでロ`カルでrubyを秘れて咾す並も辛嬬 ? https://github.com/cloudfoundry-community/cf-containers-broker
  • 17. Copyright? 2016 NTT Software Corporation 17 manifestのN(h廠 ? githubからcloneするとexampleディレクトリの和に ? bosh-lite ? google ? openstack ? aws ? bosh喘manifestのサンプルが贋壓 ? 4Nのh廠それぞれ喘に厚に4Nの撹喘manifest が喘吭されている
  • 18. Copyright? 2016 NTT Software Corporation 18 manifestのN(撹 Manifest兆 蒙 docker-.yml ? manifestの嶄でdocker imageを峺協してboshでデプロイ辛嬬になる ? Dockerfile犁韻林峰をmanifest坪何に峰する並も辛嬬 ? 軟咾靴Docker imageのプロセスは麿のコンポ`ネントと揖にmonitで砿尖され る ? 児云議にはデプロイ瘁貧げたままで慌宥議に聞うような喘余鬚隠credentialを? に蛍けるものではないのでサ`ビスとしてはあまり鬚ない docker-broker- .yml ? cf-containers-brokerをboshでデプロイする喘 ? docker images式びserviceのcatalog秤鵑manifestで峺協する並でデプロイ辛嬬 ? docker image箸credential秤鵑鬮h廠篳を聞って伏撹する碧Mみになっているも のであればcreate-service阿邦なるcredentialでサ`ビスが恬撹辛嬬になる ? 1サ`ビスインスタンスにつき1dockerコンテナ ? 児云議には1broker:1dockerになる ? 匯何サンプルの嶄にはcatalog秤鵑、箸靴metadataでPCF鬚韻、あるが駅 ではない docker-swarm- .yml ? dockerとdocker swarmをデプロイする喘のmanifest ? この瘁にh苧するmanifestの撹を恬る念粁Aのサンプル議なmanifest docker-swarm- broker-.yml ? docker-broker-.ymlのswarm鬦罎廃}方のvm貧のdockerに魗苗 ? elasticsearchやetcd,rabittmq,nats,etcd吉の?なサ`ビスが旋喘辛嬬なexample ? 1サ`ビスインスタンスにつき1dockerコンテナ
  • 19. Copyright? 2016 NTT Software Corporation 19 docker-swarm-brokerのmanifestに 峰されているサ`ビス匯E arangodb22 mysql56 consul nats couchdb16 neo4j21 elasticsearch13 postgresql93 etcd rabbitmq33 logstash14 redis28 memcached14 128mb,512m,1GB rethinkdb mongodb26
  • 20. Copyright? 2016 NTT Software Corporation 20 輝兜の嚠協では´
  • 21. Copyright? 2016 NTT Software Corporation 21 輝兜の嚠協では... docker-boshreleaseをh苧する嚠協でしたが 恷仟井のbosh-lite喘サンプルで編^した侭、 參和の}がk伏┐修賻塒發exampleはh廠が笋任ず隆_J ☆參念^肇に編^したのはv16のタグ、書指はcf-release v230 + docker-broker v22 or v23で編^ ? 10.244.0.6のIPが峺協されているがcf喘Bのrelease (cf-release)箸NATS喘で聞われていてデプロイに払 ? errandによるbrokerのregisterがエラ`が竃て屎械嘛しな かった
  • 22. Copyright? 2016 NTT Software Corporation 22 cf-containers-brokerを dockerを聞って旋喘する
  • 23. Copyright? 2016 NTT Software Corporation 23 並念 並念に參和の笋鯰个 ? Dockerを聞うので並念に 書指はbosh-liteを軟咾気擦討い襯曠好箸dockerをインスト`ルをg仏 ? Cloud Foundryh廠のB ? 書指の編^ではbosh-liteでcf-release v230を並念にデプロイgみ
  • 24. Copyright? 2016 NTT Software Corporation 24 イメ`ジのビルド $ git clone https://github.com/cloudfoundry-community/cf-containers-broker.git $ cd cf-containers-broker/ $ sudo docker build -t frodenas/cf-containers-broker . 編^rコミット https://github.com/cloudfoundry-community/cf-containers-broker/tree/3b6cdac3c34059e2f22ab456354f0bc285a791dc
  • 25. Copyright? 2016 NTT Software Corporation 25 O協ファイルの $ mkdir -p /tmp/cf-containers-broker/config $ mkdir -p /tmp/cf-containers-broker/logs $ cp config/settings.yml /tmp/cf-containers-broker/config $ cp config/unicorn.conf.rb /tmp/cf-containers-broker/config
  • 26. Copyright? 2016 NTT Software Corporation 26 settings.ymlの俐屎 $ git diff diff --git a/config/settings.yml b/config/settings.yml cookie_secret: 'e7247dae-a252-4393-afa3-2219c1c02efd` session_expiry: 86400 cc_api_uri: 'http://api.vcap.me` - external_ip: 127.0.0.1 - external_host: 'containers.vcap.me` + cc_api_uri: 'http://api.bosh-lite.com` + external_ip: 192.168.15.82 + external_host: 'containers.192.168.15.82.xip.io` ssl_enabled: false skip_ssl_validation: true 俐屎w侭のdiff
  • 27. Copyright? 2016 NTT Software Corporation 27 settings.ymlの俐屎ポイント 並念に參和の笋鯰个 ? cc_api_uriはbosh-liteで軟咾靴ccngのapiのuri ? extarnal_ipはdockerでcf-container-broekrを軟咾靴討い栽はホスト 箸IP ? external_host何蛍はcontainers+ホスト箸IPにxipでアドレス盾Q辛嬬 にしたもの ☆この俐屎が駅かは音苧 デフォルトのPostgreSQL參翌をサ`ビス晒する栽はdocker-boshreleaseのexampleのdocker-swarm- brokerから卞峅するのがお瓩
  • 28. Copyright? 2016 NTT Software Corporation 28 軟咫駅勣に鬉犬docker-compose.ymlにいた圭がお瓩瓩任 $ sudo docker run -d --name cf-containers-broker ? --publish 80:80 ? --volume /var/run:/var/run ? --volume /tmp/cf-containers-broker/logs:/app/log ? --volume /tmp/cf-containers-broker/config:/config ? frodenas/cf-containers-broker
  • 29. Copyright? 2016 NTT Software Corporation 29 Service Broker鞠hと_J (create-service-brokerとenable-service-access) $ cf create-service-broker docker-broker containers secret http://192.168.15.82 while read p __; do cf enable-service-access "$p"; done < <(cf service-access | awk '/orgs/{y=1;next}y && NF' | sort | uniq) 鞠h Cloud FoundryのAPIサ`バであるCloud ControllerにService Brokerとして鞠hする ? デフォルトのユ`ザ兆はcontainersでパスワ`ドがsecret ? 192.168.15.82は軟咾諒幎のHに ̄docker run ̄でリッスンしたアドレスを秘薦する 鞠h_J $ cf marketplace Getting services from marketplace in org admin / space admin as admin...OK service plans description postgresql93 free PostgreSQL 9.3 service for application development and testing TIP: Use 'cf marketplace -s SERVICE' to view descriptions of individual plans of a given service.
  • 30. Copyright? 2016 NTT Software Corporation 30 サ`ビス恬撹とアプリとの~原け (create-serviceとbind-service) $ cf create-service postgresql93 free dora-pg Creating service instance dora-pg in org admin / space admin as admin...OK 恬撹 參和の坪否を秘薦しサ`ビスを恬撹する ? cf create-service <service兆> <plan兆> <販吭のサ`ビスインスタンス兆> $ cf bind-service dora dora-pg アプリとの~原け 參和の坪否を秘薦しアプリとの~原けを佩う ? cf bind-service <アプリ兆><恬撹rに秘薦したサ`ビスインスタンス兆>
  • 31. Copyright? 2016 NTT Software Corporation 31 サ`ビスの俊A秤鶸_J (env) $ cf env dora Getting env variables for app dora in org admin / space admin as admin... OK System-Provided: { "VCAP_SERVICES": { "postgresql93": [ { "credentials": { "dbname": "hnae3b9lntbijl2y", "hostname": "192.168.15.82", "password": "io7we2q8vjtfeevz", "port": "32768", "ports": { "5432/tcp": "32768^ }, "uri": "postgres://vnbchxzfrnmtujwi:io7we2q8vjtfeevz@192.168.15.82:32768/hnae3b9lntbijl2y", "username": "vnbchxzfrnmtujwi^ }, "label": "postgresql93", "name": "dora-pg", "plan": "free", "tags": [ "postgresql93", "postgresql", "relational^ ] } ] } } サ`ビスの俊A秤鵑魎_J
  • 32. Copyright? 2016 NTT Software Corporation 32 psqlで俊A_J $ psql -U vnbchxzfrnmtujwi -p 32768 -h 192.168.15.82 -d hnae3b9lntbijl2y Password for user vnbchxzfrnmtujwi: psql (9.1.13, server 9.4.5) WARNING: psql version 9.1, server version 9.4. Some psql features might not work. Type "help" for help.hnae3b9lntbijl2y=# psqlで俊A_Jを佩う
  • 33. Copyright? 2016 NTT Software Corporation 33 コンテナの彜Bチェック $ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 19b0d2c2323f frodenas/postgresql:latest ^/scripts/run.sh  ̄ 41 hours ago Up 41 hours 0.0.0.0:32768->5432/tcp cf-f418dd0f-3e76-4cf4-95fa-d1f9ad33ad05 5d61ef75398a frodenas/cf-containers-broker "/app/bin/run.sh bun 41 hours ago Up 41 hours 0.0.0.0:80->80/tcp cf-containers-broker docker psの彜Bを_Jすると參和のようになっている
  • 34. Copyright? 2016 NTT Software Corporation 34 嘛の碧Mみ (containers-broker) credentials: username: key: 'MONGODB_USERNAME` password: key: 'MONGODB_PASSWORD` dbname: key: 'MONGODB_DBNAME' uri: prefix: 'mongodb` port: '27017/tcp' create-service阿邦なるcredentialsに鬉気擦襪砲setting.yml箸 cledentialsに耕協orランダム、鯤荒辰垢襪の協xを峰する ? https://github.com/cf-platform-eng/cf-containers-broker#bindings ? https://github.com/cf-platform-eng/cf-containers-broker/blob/master/CREDENTIALS.md ? http://docs.cloudfoundry.org/services/binding-credentials.html usernameを徭喇撹する栽 credentials: username: key: 'MONGODB_USERNAME` value: `admin` password: key: 'MONGODB_PASSWORD` dbname: key: 'MONGODB_DBNAME' uri: prefix: 'mongodb` port: '27017/tcp' usernameを^admin ̄に耕協する栽
  • 35. Copyright? 2016 NTT Software Corporation 35 嘛の碧Mみ (DockerImage) #!/bin/bash USER=${MONGODB_USERNAME:-mongo} PASS=${MONGODB_PASSWORD:-$(pwgen -s -1 16)} DB=${MONGODB_DBNAME:-admin} cf-containers-brokerがdocker runのオプションで-eを聞ってh廠篳が局ってくるので、軟rのス クリプト坪(run.sh吉)でその、鯤垢辰 credential秤鵑鯑rに筝させるようにする ? https://github.com/frodenas/docker-mongodb/blob/master/scripts/first_run.sh first_run.sh
  • 36. Copyright? 2016 NTT Software Corporation 36 嘛の碧Mみ (イメ`ジ) Cloud Controller USER=${MONGODB_USERNAME:-mongo} PASS=${MONGODB_PASSWORD:-$(pwgen -s - 1 16)} DB=${MONGODB_DBNAME:-admin} first_run.sh docker run ? -e ^MONGODB_USEDRNAME=admin^ ? -e ^MONGODB_PASS WORD=RANDOM_PASS ̄ ? -e ^MONGODB_DBNAME=RANDOM_DBNAME ̄ $ create-service mongo free mongo1 create-serviceにつき1dockerコンテナ cf-containers-broker
  • 37. Copyright? 2016 NTT Software Corporation 37 ? cf-containers-brokerは ? Dockerの碧Mみを聞ってサ`ビス晒が辛嬬になるので試 喘する並で_kしやすくなる ? Service Brokerの咾魄冦佞垢覯凌爾砲覆 まとめ
  • 38. Copyright? 2016 NTT Software Corporation 38 ご賠 ありがとうございました
  • 39. Copyright? 2016 NTT Software Corporation 39 斌房阿啜賠h斌砲砲弔い ? Cloud Foundryは、致忽およびその麿の忽におけるPivotal Software, Inc.の斌砲 たは鞠h斌砲任后 ? Dockerは、致忽およびその麿の忽におけるDocker, Inc.の鞠h斌砲泙燭鷲砲任后 ? Twitterの兆各およびそのロゴ、Twitterの仝T々ロゴ、Tweet、Twitterの楳いBは、 致忽およびその麿の忽におけるTwitter, Inc.の鞠h斌砲泙燭鷲砲任后 ? MySQLは、MySQL, Inc.および致忽Sun Microsystems, Inc.の致忽およびその麿の 忽における鞠h斌砲泙燭鷲砲任后 ? PostgreSQLは、PostgreSQLの致忽およびその麿の忽における鞠h斌砲泙燭鷲砲 す。 ? Mongo, MongoDB式びMongoDB leaf logoはMongoDB Inc.の鞠h斌 です。