开源的PaaS方案:在OpenStack上部署CloudFoundry (四)使用Micro Bosh部署CloudFoundry
4.1.1 使用spiff 生成 CF 配置文件
1 安装 spiff
官方原文 http://docs.cloudfoundry.org/deploying/cf-manifest-spiff.html
安装 curl
sudo yum install curl
安装 brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 xoebus
brew tap xoebus/homebrew-cloudfoundry
安装 spiff
brew install spiff
因为go godep 等 源码都是在google 上的 所以需要修改/etc/hosts 文件
加入
216.239.90.113 storage.googleapis.com
216.239.90.113 go.googlesource.com
216.239.90.113 code.google.com
设置环境变量 gopath
$ export GOPATH=/usr/local/go $ export PATH=$PATH:$GOPATH/bin
克隆cloudfoundry
git clone git@github.com:cloudfoundry/cf-release
cd cf-release
./update
根据实际条件修改配置文件
原文参考
http://docs.cloudfoundry.org/deploying/cf-stub-openstack.html 修改cf-release/spec/fixtures/openstack/cf-stub.yml 文件
# The following line helps maintain current documentation at http://docs.cloudfoundry.org.
# code_snippet cf-stub-openstack start
---
director_uuid: 90c73a6e-4fd1-41bb-9282-299eb49af9fc
meta:
openstack:
net_id: 9e5a6fd5-fa2e-48da-94ce-f85337bc2451
auth_url: http://172.24.10.128:5000/v2.0
tenant: demo
username: demo
api_key: openstack
security_groups: [bosh]
floating_static_ips:
- 172.24.10.133
networks:
- name: cf1
subnets:
- cloud_properties:
static:
- 10.0.5.20 - 10.0.5.50
properties:
cc:
droplets:
droplet_directory_key: cloudfoundry-droplets
buildpacks:
buildpack_directory_key: cloudfoundry-buildpacks
staging_upload_user: update
staging_upload_password: openstack
bulk_api_password: openstack
db_encryption_key: openstack
ccdb:
roles:
- name: ccadmin
password: openstack
tag: admin
databases:
roles:
- name: ccadmin
password: openstack
- name: uaaadmin
password: openstack
dea_next:
disk_mb: 2048
memory_mb: 1024
domain: example.com
loggregator_endpoint:
shared_secret: openstack
nats:
user: nats
password: openstack
router:
enable_ssl: true
ssl_cert: |
-----BEGIN CERTIFICATE-----
MIIDBjCCAe4CCQCz3nn1SWrDdTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB
VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
cyBQdHkgTHRkMB4XDTE1MDMwMzE4NTMyNloXDTE2MDMwMjE4NTMyNlowRTELMAkG
A1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0
IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AKtTK9xq/ycRO3fWbk1abunYf9CY6sl0Wlqm9UPMkI4j0itY2OyGyn1YuCCiEdM3
b8guGSWB0XSL5PBq33e7ioiaH98UEe+Ai+TBxnJsro5WQ/TMywzRDhZ4E7gxDBav
88ZY+y7ts0HznfxqEIn0Gu/UK+s6ajYcIy7d9L988+hA3K1FSdes8MavXhrI4xA1
fY21gESfFkD4SsqvrkISC012pa7oVw1f94slIVcAG+l9MMAkatBGxgWAQO6kxk5o
oH1Z5q2m0afeQBfFqzu5lCITLfgTWCUZUmbF6UpRhmD850/LqNtryAPrLLqXxdig
OHiWqvFpCusOu/4z1uGC5xECAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAV5RAFVQy
8Krs5c9ebYRseXO6czL9/Rfrt/weiC1XLcDkE2i2yYsBXazMYr58o4hACJwe2hoC
bihBZ9XnVpASEYHDLwDj3zxFP/bTuKs7tLhP7wz0lo8i6k5VSPAGBq2kjc/cO9a3
TMmLPks/Xm42MCSWGDnCEX1854B3+JK3CNEGqSY7FYXU4W9pZtHPZ3gBoy0ymSpg
mpleiY1Tbn5I2X7vviMW7jeviB5ivkZaXtObjyM3vtPLB+ILpa15ZhDSE5o71sjA
jXqrE1n5o/GXHX+1M8v3aJc30Az7QAqWohW/tw5SoiSmVQZWd7gFht9vSzaH2WgO
LwcpBC7+cUJEww==
-----END CERTIFICATE-----
ssl_key: |
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAq1Mr3Gr/JxE7d9ZuTVpu6dh/0JjqyXRaWqb1Q8yQjiPSK1jY
7IbKfVi4IKIR0zdvyC4ZJYHRdIvk8Grfd7uKiJof3xQR74CL5MHGcmyujlZD9MzL
DNEOFngTuDEMFq/zxlj7Lu2zQfOd/GoQifQa79Qr6zpqNhwjLt30v3zz6EDcrUVJ
16zwxq9eGsjjEDV9jbWARJ8WQPhKyq+uQhILTXalruhXDV/3iyUhVwAb6X0wwCRq
0EbGBYBA7qTGTmigfVnmrabRp95AF8WrO7mUIhMt+BNYJRlSZsXpSlGGYPznT8uo
22vIA+ssupfF2KA4eJaq8WkK6w67/jPW4YLnEQIDAQABAoIBAQCDVqpcOoZKK9K8
Bt3eXQKEMJ2ji2cKczFFJ5MEm9EBtoJLCryZbqfSue3Fzpj9pBUEkBpk/4VT5F7o
0/Vmc5Y7LHRcbqVlRtV30/lPBPQ4V/eWtly/AZDcNsdfP/J1fgPSvaoqCr2ORLWL
qL/vEfyIeM4GcWy0+JMcPbmABslw9O6Ptc5RGiP98vCLHQh/++sOtj6PH1pt+2X/
Uecv3b1Hk/3Oe+M8ySorJD3KA94QTRnKX+zubkxRg/zCAki+as8rQc/d+BfVG698
ylUT5LVLNuwbWnffY2Zt5x5CDqH01mJnHmxzQEfn68rb3bGFaYPEn9EP+maQijv6
SsUM9A3lAoGBAODRDRn4gEIxjPICp6aawRrMDlRc+k6IWDF7wudjxJlaxFr2t7FF
rFYm+jrcG6qMTyq+teR8uHpcKm9X8ax0L6N6gw5rVzIeIOGma/ZuYIYXX2XJx5SW
SOas1xW6qEIbOMv+Xu9w2SWbhTgyRmtlxxjr2e7gQLz9z/vuTReJpInnAoGBAMMW
sq5lqUfAQzqxlhTobQ7tnB48rUQvkGPE92SlDj2TUt9phek2/TgRJT6mdcozvimt
JPhxKg3ioxG8NPmN0EytjpSiKqlxS1R2po0fb75vputfpw16Z8/2Vik+xYqNMTLo
SpeVkHu7fbtNYEK2qcU44OyOZ/V+5Oo9TuBIFRhHAoGACkqHhwDRHjaWdR2Z/w5m
eIuOvF3lN2MWZm175ouynDKDeoaAsiS2VttB6R/aRFxX42UHfoYXC8LcTmyAK5zF
8X3SMf7H5wtqBepQVt+Gm5zGSSqLcEnQ3H5c+impOh105CGoxt0rk4Ui/AeRIalv
C70AJOcvD3eu5aFq9gDe/1ECgYBAhkVbASzYGnMh+pKVH7rScSxto8v6/XBYT1Ez
7JOlMhD667/qvtFJtgIHkq7qzepbhnTv5x3tscQVnZY34/u9ILpD1s8dc+dibEvx
6S/gYLVorB5ois/DLMqaobRcew6Gs+XX9RPwmLahOJpZ9mh4XrOmCgPAYtP71YM9
ExpHCQKBgQCMMDDWGMRdFMJgXbx1uMere7OoniBdZaOexjbglRh1rMVSXqzBoU8+
yhEuHGAsHGWQdSBHnqRe9O0Bj/Vlw2VVEaJeL1ewRHb+jXSnuKclZOJgMsJAvgGm
SOWIahDrATA4g1T6yLBWQPhj3ZXD3eCMxT1Q3DvpG1DjgvXwmXQJAA==
-----END RSA PRIVATE KEY-----
cipher_suites: TLS_RSA_WITH_RC4_128_SHA:TLS_RSA_WITH_AES_128_CBC_SHA
status:
user: router_user
password: openstack
secure_cookies: true
uaa:
admin:
client_secret: openstack
batch:
username: batch
password: openstack
cc:
client_secret: openstack
clients:
app-direct:
secret: openstack
developer_console:
secret: openstack
notifications:
secret: openstack
login:
secret: openstack
doppler:
secret: openstack
cloud_controller_username_lookup:
secret: cloud_controller_username_lookup_secret
gorouter:
secret: openstack
jwt:
verification_key:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw6WKxiVxx5+rqoMvj4vk
X5FpipdWaVLpcPhmN8O5ut2bqcU8KV6pMV7/n+zowITVFHCbS/6J6Uk875NclTC1
UI86Pxn3c+14KYL6KLe/Gi8McRyqvO5BpkQr3BTtBe9Z0EMgoeq5fAol2Lc/8SNz
/uLdSkMc5CmtpEgZ7isnsc8ExSDCchRmrCmKaxIPxNUZvCYgqqXXduHBln1/MBJV
YjsEXZZSbhLWzVaFOdAKkU9DlWxqI6sRWFSl6qZ3JCuMh3MQqLnFFXPAX8C9hxFV
oC2i7Fe6AIFyECJijgfieqi0PiBdMZ29Kj36gssktVhE+5TAcGCdFqdfzXOBC2ih
/wIDAQAB
-----END PUBLIC KEY-----
signing_key:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAw6WKxiVxx5+rqoMvj4vkX5FpipdWaVLpcPhmN8O5ut2bqcU8
KV6pMV7/n+zowITVFHCbS/6J6Uk875NclTC1UI86Pxn3c+14KYL6KLe/Gi8McRyq
vO5BpkQr3BTtBe9Z0EMgoeq5fAol2Lc/8SNz/uLdSkMc5CmtpEgZ7isnsc8ExSDC
chRmrCmKaxIPxNUZvCYgqqXXduHBln1/MBJVYjsEXZZSbhLWzVaFOdAKkU9DlWxq
I6sRWFSl6qZ3JCuMh3MQqLnFFXPAX8C9hxFVoC2i7Fe6AIFyECJijgfieqi0PiBd
MZ29Kj36gssktVhE+5TAcGCdFqdfzXOBC2ih/wIDAQABAoIBAFHF3zrya5wEILwk
GLzmu402OeazWmqrPOb6675jED4KYgWTapHf/tej3TP60U2mN2lTp5UbzoizE8UO
0qOIuD/znWTCdar+ljrDg8uBAV7wS0L7uGE/NDFKTQqvtGHGqMNjS0Bh2yT9GNR7
wz4Gk3T1XYishGbZBLqlaDEj2HN4V1Yy1Qp4KohqLsJN4B5+c2Q0HrTejOHeSsou
B7nJndfZm2ljKdoql++4UZPjWGLGSdtLhzLvYkzbql0GYBYVTOmn/A7AZLz2w769
RmDt28nqOIXIAqDL6qt/frtDfCknbsk7lSEFDlrRfjjPIuah/1UCo80Kjd3Iv+rb
4NZxiAECgYEA+X1WCCWIWP4hlSjRtISpjOaStz8d5eDLeSTI14cPYM7cMiyROrEo
SCJm10AYIs5TsBlb5AfQlBV2YrcmdxeG4ARlVOnpki3ZAyQlQi5LQenQh9abqKtY
b2Z0udDmPgwgtPYexdh1FQTzeXptYDED/sHynj6pN4GBIlZTjZXiCwsCgYEAyMCE
8MEPJZmAQ8vaWjzkzbToUbW5knrEhRNEoxnlbRXXwzXReUIbu+E22FQjwNNxlsJx
smKFWzPvF5seiChBp7yT9dnDKCm9bJVRRAlVD5oyBIFkqXmCn3QM9ySWW6QHxgEH
4wsoNs0RcpTNW/CLi7E9tvtzjnoFqdfDIaSbPV0CgYBhv56OcI4cN+1WcHjBHl0D
rG79RshjAZEW9LeP4gW/ayzQp6967GAY6wmZ+i26rVYSn8zl6b3p1wLcKF/0tw4M
BQzimQb/U+E7ntTOOi8YMxCVuBqimgd7FgxTpSogU0YZQHjMEUPGKXtvM+1Yi7vB
+6EgKPLJoX7DwkjYJ0o6AwKBgQC842gyn3SBDE2DfOuWvHUMmIt/Vl2lVZ5TGC4c
yOD2IvdA1gKi9XDi9qWEJqb9Z/YYxBv2nHyds9/jdjDkK/yatvUA/kSCJcP1xwkP
2zgN1if51UXBsHMXVTpd0C8pSs2FoLKrDnRoG8uu5BPVzh9+8OYApde011s806bm
oNrwgQKBgQCW/CUPXOrfyIwdFIEqSPB79GuV9e27cm8iB8Fu+Rcc3xlQc+3Ak97X
bLi2C1to/pMX+q8ksudd1jOMoyhufle8wJaxC0jLgVx4DGUorvA0uiVtEAULreXz
beE4LXyvVu+tYIl4ATlIyEQSAnNIR6oCX5KvQJu+jHA4i9z+Vg0mpA==
-----END RSA PRIVATE KEY-----
scim:
users:
- admin|openstack|scim.write,scim.read,openid,cloud_controller.admin,doppler.firehose
uaadb:
roles:
- name: uaaadmin
password: openstack
tag: admin # code_snippet cf-stub-openstack end
# The previous line helps maintain current documentation at http://docs.cloudfoundry.org.
将cf-stub 复制到cf-release 文件夹下 运行
./generate_deployment_manifest openstack cf-stub.yml > cf-deployment.yml
可能会遇到out of memory 错误,如果遇到这个错误,请参看我在stackoverflow 中提交的问题
http://stackoverflow.com/questions/29742497/out-of-memory-when-generate-cloudfoundry-deploy-manifest-file-cf-deployment-yml/29791331#29791331
还可能遇到下面的问题
2015/04/22 15:50:22 error generating manifest: unresolved nodes:
(( lamb_meta.loggregator_templates )) in dynaml jobs.[23].templates
(( lamb_meta.loggregator_templates )) in dynaml jobs.[24].templates
(( lamb_meta.loggregator_trafficcontroller_templates )) in dynaml jobs.[25].templates
(( lamb_meta.loggregator_trafficcontroller_templates )) in dynaml jobs.[26].templates
(( merge )) in ./templates/cf-jobs.yml lamb_meta
这个问题是因为spiff 不能解析相对路径引用的文件
打开templates/cf-lamb.yml 可以看到如下内容
./src/loggregator/manifest-templates/cf-lamb.yml
这个文件引用就是问题的原因
将 ./src/loggregator/manifest-templates/cf-lamb.yml 中的内容拷贝到 templates/cf-lamb.yml 即可。
这个文件需要到https://github.com/cloudfoundry/loggregator/blob/develop/manifest-templates/cf-lamb.yml 去找。
原文参考https://github.com/cloudfoundry-incubator/diego-release/issues/29
4.1.2 使用bosh上传Stemcell
- # bosh upload stemcell ~/stemcell/bosh-stemcell-2652-openstack-kvm-ubuntu-lucid-go_agent.tgz
- # bosh stemcells
- +------------------------------------------+---------+--------------------------------------+
- | Name | Version | CID |
- +------------------------------------------+---------+--------------------------------------+
- | bosh-openstack-kvm-ubuntu-lucid-go_agent | 2652* | 5a6ddcc0-29e6-4b65-a769-8dd8a99eb5df |
- +------------------------------------------+---------+--------------------------------------+
- (*) Currently in-use
- Stemcells total: 1
4.2 使用bosh上传CloudFoundry
- # cd ~/bosh-workspace/releases/cf-release
- # bosh upload release releases/cf-170.yml
- # bosh releases+------+----------+-------------+
- | Name | Versions | Commit Hash |
- +------+----------+-------------+
- | cf | 170* | 0c0c72c3+ |
- +------+----------+-------------+
- (*) Currently deployed
- (+) Uncommitted changes
- Releases total: 1
4.3 创建部署描述文件
- <%
- director_uuid = "REPLACE-DIRECTOR_UUID"
- static_ip = "REPLACE-IP-ADDRESS"
- root_domain = "#{static_ip}.xip.io"
- deployment_name = 'cf'
- cf_release = '170'
- protocol = 'http'
- common_password = 'mysecretpassword'
- %>
- ---
- name: <%= deployment_name %>
- director_uuid: <%= director_uuid %>
- releases:
- - name: cf
- version: <%= cf_release %>
- compilation:
- workers: 3
- network: default
- reuse_compilation_vms: true
- cloud_properties:
- instance_type: m1.large
- update:
- canaries: 0
- canary_watch_time: 30000-600000
- update_watch_time: 30000-600000
- max_in_flight: 32
- serial: false
- networks:
- - name: default
- type: dynamic
- cloud_properties:
- security_groups:
- - default
- - bosh
- - cf-private
- - name: external
- type: dynamic
- cloud_properties:
- security_groups:
- - default
- - bosh
- - cf-public
- - name: floating
- type: vip
- cloud_properties: {}
- resource_pools:
- - name: common
- network: default
- size: 14
- stemcell:
- name: bosh-openstack-kvm-ubuntu-lucid
- version: latest
- cloud_properties:
- instance_type: m1.small
- - name: large
- network: default
- size: 3
- stemcell:
- name: bosh-openstack-kvm-ubuntu-lucid
- version: latest
- cloud_properties:
- instance_type: m1.medium
- jobs:
- - name: nats
- templates:
- - name: nats
- - name: nats_stream_forwarder
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: syslog_aggregator
- templates:
- - name: syslog_aggregator
- instances: 1
- resource_pool: common
- persistent_disk: 65536
- networks:
- - name: default
- default: [dns, gateway]
- - name: nfs_server
- templates:
- - name: debian_nfs_server
- instances: 1
- resource_pool: common
- persistent_disk: 65535
- networks:
- - name: default
- default: [dns, gateway]
- - name: postgres
- templates:
- - name: postgres
- instances: 1
- resource_pool: common
- persistent_disk: 65536
- networks:
- - name: default
- default: [dns, gateway]
- properties:
- db: databases
- - name: uaa
- templates:
- - name: uaa
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: loggregator
- templates:
- - name: loggregator
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: trafficcontroller
- templates:
- - name: loggregator_trafficcontroller
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: cloud_controller
- templates:
- - name: cloud_controller_ng
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- properties:
- ccdb: ccdb
- - name: cloud_controller_worker
- templates:
- - name: cloud_controller_worker
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- properties:
- ccdb: ccdb
- - name: clock_global
- templates:
- - name: cloud_controller_clock
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- properties:
- ccdb: ccdb
- - name: etcd
- templates:
- - name: etcd
- instances: 1
- resource_pool: common
- persistent_disk: 10024
- networks:
- - name: default
- default: [dns, gateway]
- - name: health_manager
- templates:
- - name: hm9000
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: dea
- templates:
- - name: dea_logging_agent
- - name: dea_next
- instances: 3
- resource_pool: large
- networks:
- - name: default
- default: [dns, gateway]
- - name: router
- templates:
- - name: gorouter
- instances: 1
- resource_pool: common
- networks:
- - name: default
- default: [dns, gateway]
- - name: haproxy
- templates:
- - name: haproxy
- instances: 1
- resource_pool: common
- networks:
- - name: external
- default: [dns, gateway]
- - name: floating
- static_ips:
- - <%= static_ip %>
- properties:
- networks:
- apps: external
- properties:
- domain: <%= root_domain %>
- system_domain: <%= root_domain %>
- system_domain_organization: 'admin'
- app_domains:
- - <%= root_domain %>
- haproxy: {}
- networks:
- apps: default
- nats:
- user: nats
- password: <%= common_password %>
- address: 0.nats.default.<%= deployment_name %>.microbosh
- port: 4222
- machines:
- - 0.nats.default.<%= deployment_name %>.microbosh
- syslog_aggregator:
- address: 0.syslog-aggregator.default.<%= deployment_name %>.microbosh
- port: 54321
- nfs_server:
- address: 0.nfs-server.default.<%= deployment_name %>.microbosh
- network: "*.<%= deployment_name %>.microbosh"
- idmapd_domain: "localdomain"
- debian_nfs_server:
- no_root_squash: true
- loggregator_endpoint:
- shared_secret: <%= common_password %>
- host: 0.trafficcontroller.default.<%= deployment_name %>.microbosh
- loggregator:
- servers:
- zone:
- - 0.loggregator.default.<%= deployment_name %>.microbosh
- traffic_controller:
- zone: 'zone'
- logger_endpoint:
- use_ssl: <%= protocol == 'https' %>
- port: 80
- ssl:
- skip_cert_verify: true
- router:
- endpoint_timeout: 60
- status:
- port: 8080
- user: gorouter
- password: <%= common_password %>
- servers:
- z1:
- - 0.router.default.<%= deployment_name %>.microbosh
- z2: []
- etcd:
- machines:
- - 0.etcd.default.<%= deployment_name %>.microbosh
- dea: &dea
- disk_mb: 102400
- disk_overcommit_factor: 2
- memory_mb: 15000
- memory_overcommit_factor: 3
- directory_server_protocol: <%= protocol %>
- mtu: 1460
- deny_networks:
- - 169.254.0.0/16 # Google Metadata endpoint
- dea_next: *dea
- disk_quota_enabled: false
- dea_logging_agent:
- status:
- user: admin
- password: <%= common_password %>
- databases: &databases
- db_scheme: postgres
- address: 0.postgres.default.<%= deployment_name %>.microbosh
- port: 5524
- roles:
- - tag: admin
- name: ccadmin
- password: <%= common_password %>
- - tag: admin
- name: uaaadmin
- password: <%= common_password %>
- databases:
- - tag: cc
- name: ccdb
- citext: true
- - tag: uaa
- name: uaadb
- citext: true
- ccdb: &ccdb
- db_scheme: postgres
- address: 0.postgres.default.<%= deployment_name %>.microbosh
- port: 5524
- roles:
- - tag: admin
- name: ccadmin
- password: <%= common_password %>
- databases:
- - tag: cc
- name: ccdb
- citext: true
- ccdb_ng: *ccdb
- uaadb:
- db_scheme: postgresql
- address: 0.postgres.default.<%= deployment_name %>.microbosh
- port: 5524
- roles:
- - tag: admin
- name: uaaadmin
- password: <%= common_password %>
- databases:
- - tag: uaa
- name: uaadb
- citext: true
- cc: &cc
- srv_api_uri: <%= protocol %>://api.<%= root_domain %>
- jobs:
- local:
- number_of_workers: 2
- generic:
- number_of_workers: 2
- global:
- timeout_in_seconds: 14400
- app_bits_packer:
- timeout_in_seconds: null
- app_events_cleanup:
- timeout_in_seconds: null
- app_usage_events_cleanup:
- timeout_in_seconds: null
- blobstore_delete:
- timeout_in_seconds: null
- blobstore_upload:
- timeout_in_seconds: null
- droplet_deletion:
- timeout_in_seconds: null
- droplet_upload:
- timeout_in_seconds: null
- model_deletion:
- timeout_in_seconds: null
- bulk_api_password: <%= common_password %>
- staging_upload_user: upload
- staging_upload_password: <%= common_password %>
- quota_definitions:
- default:
- memory_limit: 10240
- total_services: 100
- non_basic_services_allowed: true
- total_routes: 1000
- trial_db_allowed: true
- resource_pool:
- resource_directory_key: cloudfoundry-resources
- fog_connection:
- provider: Local
- local_root: /var/vcap/nfs/shared
- packages:
- app_package_directory_key: cloudfoundry-packages
- fog_connection:
- provider: Local
- local_root: /var/vcap/nfs/shared
- droplets:
- droplet_directory_key: cloudfoundry-droplets
- fog_connection:
- provider: Local
- local_root: /var/vcap/nfs/shared
- buildpacks:
- buildpack_directory_key: cloudfoundry-buildpacks
- fog_connection:
- provider: Local
- local_root: /var/vcap/nfs/shared
- install_buildpacks:
- - name: java_buildpack
- package: buildpack_java
- - name: ruby_buildpack
- package: buildpack_ruby
- - name: nodejs_buildpack
- package: buildpack_nodejs
- - name: go_buildpack
- package: buildpack_go
- db_encryption_key: <%= common_password %>
- hm9000_noop: false
- diego: false
- newrelic:
- license_key: null
- environment_name: <%= deployment_name %>
- ccng: *cc
- login:
- enabled: false
- uaa:
- url: <%= protocol %>://uaa.<%= root_domain %>
- no_ssl: <%= protocol == 'http' %>
- cc:
- client_secret: <%= common_password %>
- admin:
- client_secret: <%= common_password %>
- batch:
- username: batch
- password: <%= common_password %>
- clients:
- cf:
- override: true
- authorized-grant-types: password,implicit,refresh_token
- authorities: uaa.none
- scope: cloud_controller.read,cloud_controller.write,openid,password.write,cloud_controller.admin,scim.read,scim.write
- access-token-validity: 7200
- refresh-token-validity: 1209600
- admin:
- secret: <%= common_password %>
- authorized-grant-types: client_credentials
- authorities: clients.read,clients.write,clients.secret,password.write,scim.read,uaa.admin
- scim:
- users:
- - admin|<%= common_password %>|scim.write,scim.read,openid,cloud_controller.admin,uaa.admin,password.write
- - services|<%= common_password %>|scim.write,scim.read,openid,cloud_controller.admin
- jwt:
- signing_key: |
- -----BEGIN RSA PRIVATE KEY-----
- REPLACE+ME+WITH+A+REAL+RSA+PRIVATE+KEY+++++++++++++asdfghj123122
- 123456789+++++REPLACE+ME+WITH+A+REAL+RSA+PRIVATE+KEY++++++++++++
- asd34++123456789+++++REPLACE+ME+WITH+A+REAL+RSA+PRIVATE+KEY+++++
- KVy7psa8xzElSyzqx7oJyfJ1JZyOzToj9T5SfTIq396agbHJWVfYphNahvZ/7uMX
- sdfvsdfgvKVy7psALKSFOa8xzElSyzqx7oJyfJ1JZyOzToj9T5SfTIq396agbHJW
- VfYphNahvZ/7uMXKVy7psa8xzElSyzqx7oJyfJ1JZyOO:9T5SfTIq396agbHJWVf
- YphNasvZ/7uMXFzqx7oJyfJ1JZyOzToj9T5SfTIq396agbHJWVfYphNahvZ/7uMX
- sedfsyzqx7oJyfJ1JZyOzToj9TDASWDASD5SfTIq396agbHJWVfYphNahvZ/7uMX
- -----END RSA PRIVATE KEY-----
- verification_key: |
- -----BEGIN PUBLIC KEY-----
- REPLACE+ME+WITH+A+VALID+PUBLIC+KEY++++++++++MIGfMA0GCSqGSIb3DQEBAQUA
- AASAqHxf+ZH9BL1gk9Y6kCnbM5R60gfwjyW1/dQPjOzn9N394zd2FJoFHwdq9Qs0wBug
- BUGBUGspULZVNRxq7veq/fzwIDAQAB
- -----END PUBLIC KEY-----
其中REPLACE-DIRECTOR_UUID为Bosh Director的UUID,
- # bosh status
- Config
- /root/.bosh_config
- Director
- Name microbosh-openstack
- URL https://172.24.4.227:25555
- Version 1.2652.0 (00000000)
- User admin
- UUID 04fd1b77-9522-459e-8f56-bfe83b7c5624
- CPI openstack
- dns enabled (domain_name: microbosh)
- compiled_package_cache disabled
- snapshots disabled
- Deployment
- Manifest /root/bosh/bosh-workspace/deployments/cf/demo.yml
- REPLACE-IP-ADDRESS是预先分配好的floating ip
- # nova floating-ip-create public
4.4 部署CloudFoundry
- # bosh deployment cf/demo.yml
- # bosh deploy
4.5 部署完成后,可以使用如下命令查看各个虚拟机运行状况
- # bosh vms
开源的PaaS方案:在OpenStack上部署CloudFoundry (四)使用Micro Bosh部署CloudFoundry的更多相关文章
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack
硬件要求 安装OpenStack 1 安装CentOS 65系统并清空iptables防火墙规则 2 安装系统需要的工具包包括Openstack依赖的和CloudFoundry依赖的 3 安装EPEL ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (一)简介
目录(?)[-] OpenStack简介 OpenStack是一个美国国家航空航天局和Rackspace合作研发的以Apache许可证授权并且是一个自由软件和开放源代码项目 OpenStack是一个云 ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (三)部署BOSH
BOSH是CloudFoundry提供的用来安装部署和升级CloudFoundry的自动化工具,可是说是CloudFoundry的一部分.总体来说,BOSH是Client/Server结构, BOSH ...
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题
部署CloudFoundry可能遇到的问题 1. Bosh 报告 OpenStack API Request Entity Too Large error 解决办法,修改/etc/nova/api-p ...
- K8s集群部署(四)------ Flannel网络部署
所有节点都要部署Flannel网络,在所有节点操作. 1.为Flannel生成证书 [root@k8s-master ssl]# pwd /usr/local/src/ssl [root@k8s-ma ...
- OpenStack与ZStack深度对比:架构、部署、计算、运维监控等
摘要 OpenStack从2010年开源至今,已经走过9个年头,其正在进入主流企业市场,但该项目依然面临较难部署和管理的老问题.有一点是毫无疑问的,那就是OpenStack保持着高速增长的态势,超过5 ...
- 快速安装Rainbond——开源企业级Paas平台
快速安装Rainbond--开源企业级Paas平台 参考:https://www.rainbond.com/docs/user-operations/install/online_install/ R ...
- 你必须知道的容器日志 (2) 开源日志管理方案 ELK
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章.上一篇<你必须知道的容器日志(1)>中介绍了Docker自带的log ...
- 全能成熟稳定开源分布式存储Ceph破冰之旅-上
@ 目录 概述 定义 传统存储方式及问题 优势 生产遇到问题 架构 总体架构 组成部分 CRUSH算法 数据读写过程 CLUSTER MAP 部署 部署建议 部署版本 部署方式 Cephadm部署 前 ...
随机推荐
- kubernetes 调度相关
nodeAffinity(主机亲和性),podAffinity(POD亲和性)以及podAntiAffinity(POD反亲和性) nodeAffinity使用场景 : ● 将S1服务的所有Pod部署 ...
- linux信号程序编译遇到的问题
如果把这个去掉-std=c99就会运行通过 还有一点就是 for(int i=0;i<n;i++) 在循环里声明变量仅被用在c99里面.也就是要想在循环里面声明变量,就必须使用-std=c99
- Windows 2008 Server搭建Radius服务器的方法
原地址:http://service.tp-link.com.cn/detail_article_1113.html (图拷贝不过来) Windows 2008 Server搭建Radius服务器的方 ...
- [转]RabbitMQ,ActiveMQ,ZeroMQ,Kafka之间的比较与资料汇总
MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据和资料. 第一部 ...
- redis4安装
第一步官网下载 https://redis.io/ rz 上传或者直接wget http://download.redis.io/releases/redis-4.0.2.tar.gz 2.将其下 ...
- sql server merge 的用法
CREATE TABLE tTable ( id INT , f1 VARCHAR(10) , f2 VARCHAR(10) , f3 VARCHAR(10) ) GO INSERT INTO tTa ...
- 【好文收藏】javascript中event对象详解
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...
- WCF(一)
摘自:http://www.cnblogs.com/yank/p/3653160.html WCF入门教程(一)简介 1.WCF是什么? WCF( Windows Communication Foun ...
- matlab中常用见的小知识点
矩阵相关: 在matlab中,矩阵或向量是 column-major 表示形式.用 [] 来构建向量或矩阵, 用()来引用向量或矩阵中的元素:用:表示矩阵中的该index下的所以元素: matlab中 ...
- DB2多行转一行【XML方式】
分组然后合并,然后去除XML标签 SELECT replace(replace(replace(xml2clob(xmlagg(xmlelement(name A, [字段]))),'</A&g ...