版本说明:
CloudFoundry:V2版本-v149+(本文后续章节中的Manifest适用于149+版本的CF Release)
OpenStack:Grizzly版本+nova-network
CloudFoundry部署交流QQ群: 176302388Mysql服务现在在CloudFoundry的Github上有独立的工程支持,工程名称:cf-services-release,这个工程中目前还没有正式的发布版本,之前的版本中还包括了postgresql服务,但是现在已经移除,GitHub上的说明文档中的例子是针对postgresql编写的,实际上mysql服务的配置也是类似,本文就介绍下如何使用BOSH部署一个独立的mysql服务。
1、从GitHub上获取并更新代码
git clone -b release-candidate https://github.com/cloudfoundry/cf-services-release
cd cf-services-release
./update
2、打包并上传release包
bosh create release --force
bosh upload release
本例中release包名为:cf-services
3、编写YAML配置文件cf-services.yml
---
name: cf-services
director_uuid: 0bc0a200-21e7-4c06-9575-74ec98051b32 # CHANGE
releases:
- name: cf-services
version: latest
compilation:
workers: 3
network: default
reuse_compilation_vms: true
cloud_properties:
instance_type: m1.small # CHANGE
update:
canaries: 1
canary_watch_time: 30000-60000
update_watch_time: 30000-60000
max_in_flight: 4
max_errors: 1
networks:
- name: floating
type: vip
cloud_properties: {}
- name: default
type: dynamic
cloud_properties:
security_groups:
- default
resource_pools:
- name: small
network: default
size: 2
stemcell:
name: bosh-stemcell
version: latest
cloud_properties:
instance_type: m1.small # CHANGE
jobs:
- name: services_gateway
release: cf-services
template:
- mysql_gateway
instances: 1
resource_pool: small
networks:
- name: default
default: [dns, gateway]
properties:
uaa_client_id: "cf"
uaa_endpoint: http://uaa.mycloud.com # CHANGE
uaa_client_auth_credentials:
username: services
password: "c1oudc0w" # CHANGE
- name: mysql_service_node
template:
- mysql_node
release: cf-services
instances: 1
resource_pool: small
persistent_disk: 8192
networks:
- name: default
default:
- dns
- gateway
properties:
mysql_node:
plan: default
properties:
nats:
address: 0.core.default.cf.bosh
port: 4222
user: nats
password: "c1oudc0w"
authorization_timeout: 5
networks:
apps: default
management: default
cc:
srv_api_uri: http://api.mycloud.com #CHANGE
service_plans:
mysql:
default:
description: "Developer, 250MB storage, 10 connections"
free: true
job_management:
high_water: 230
low_water: 20
configuration:
capacity: 125
max_clients: 10
quota_files: 4
quota_data_size: 240
enable_journaling: true
backup:
enable: false
lifecycle:
enable: false
serialization: enable
snapshot:
quota: 1
mysql_gateway:
token: "c1oudc0w" # CHANGE - the token you use later with `cf create-service-auth-token`
default_plan: default
supported_versions: ["5.5"]
version_aliases:
current: "5.5"
cc_api_version: v2
mysql_node:
supported_versions: ["5.5"]
default_version: "5.5"
max_tmp: 900
password: "c1oudc0w" # CHANGE
4、部署服务
bosh deployment cf-services.yml
bosh deploy
5、查看Mysql实例状态
+----------------------+---------+---------------+------------+
| Job/index | State | Resource Pool | IPs |
+----------------------+---------+---------------+------------+
| mysql_service_node/0 | running | small | 50.50.0.26 |
| services_gateway/0 | running | small | 50.50.0.25 |
+----------------------+---------+---------------+------------+
6、验证服务
cf services -m
cf create-service-auth-token
本例中token创建参数:Lable=>mysql Token=>c1oudc0w
创建service命令:
cf create-service
关于cf命令行的使用,可以查阅文档:http://docs.cloudfoundry.com/docs/using/managing-apps/cf/