上传java web应用需要数据库,下面说下安装mysql的具体过程,我安装的mysql是mysql-16。和前面安装bosh或者cloudfoundry的过程一样,安装mysql也需要三个东西,stemcell、release和manifest。
1. target到cf的director
root@bosh-cli:~#bosh target https://10.10.3110.191:25555
root@bosh-cli:~#bosh login
用户名和密码都是admin
2. 上传stemcell
创建目录
root@bosh-cli:~#mkdir -p ~/bosh-workspace/deployments/mysql
root@bosh-cli:~# cd ~/bosh-workspace/deployments/mysql
上传stemcell
root@bosh-cli:~/bosh-workspace/stemcells# bosh upload stemcell bosh-stemcell-2818-openstack-kvm-ubuntu.tgz
root@bosh-cli:~/bosh-workspace# bosh upload release /root//bosh-workspace/bosh/release/mysql-16.tgz
root@bosh-cli:~/bosh-workspace/deployments/mysql#vim myql.yml
manifest的内容为:
---
name: cf-services
director_uuid: e7a05b61-d8cf-4654-bed3-84d01ba8d04f #change 这是cloudfoundry的director的uuid,用bosh status查看
releases:
- name: cf-mysql #change
version: 16 #change
compilation:
workers: 3
network: default
reuse_compilation_vms: true
cloud_properties:
instance_type: m1.medium # CHANGE
update:
canaries: 0
canary_watch_time: 30000-600000
update_watch_time: 30000-600000
max_in_flight: 32
serial: false
networks:
- name: floating
type: vip
cloud_properties: {}
- name: default
type: dynamic
cloud_properties:
security_groups:
- default
meta:
environment: null
external_domain: vsc.com
apps_domain: vsc.com
nats:
user: nats
password: c1oudc0w
port: 4222
machines:
- 10.0.0.26
#use_gnatsd: true
syslog_aggregator: null
resource_pools:
- name: services-small
network: default
size: 6
stemcell:
name: bosh-openstack-kvm-ubuntu-trusty-go_agent
version: 2818
cloud_properties:
instance_type: m1.micro # CHANGE
jobs:
- name: mysql
release: cf-mysql
template: mysql
instances: 1
resource_pool: services-small
persistent_disk: 10000
networks:
- name: default
default: [dns, gateway]
- name: floating
static_ips:
- 10.10.110.199
properties:
admin_username: root
admin_password: c1oudc0w
port: 3306
max_connections: 1500
haproxy_mysql_user: haproxy_check
cluster_ips:
- 10.10.110.199
proxy_ips:
- 10.10.110.200
seeded_databases: null
syslog_aggregator: null
network_name: default
- name: proxy
release: cf-mysql
template: proxy
instances: 1
resource_pool: services-small
networks:
- name: default
default: [dns, gateway]
- name: floating
static_ips:
- 10.10.110.200 #change 200和199都是浮动ip
properties:
mysql_ips:
- 10.10.110.199
haproxy_mysql_user: haproxy_check
network_name: default
syslog_aggregator: null
nats:
user: nats
password: c1oudc0w
port: 4222
machines:
- 10.0.0.26 #machines是部署好的cloudfoundry中nats的ip
#use_gnatsd: true
external_domain: vsc.com
haproxy_stats_password: c1oudc0w
- name: cf-mysql-broker
release: cf-mysql
template: cf-mysql-broker
instances: 1
resource_pool: services-small
networks:
- name: default
default: [dns, gateway]
properties:
max_user_connections_default: 40
syslog_aggregator: null
network_name: default
auth_username: root
auth_password: c1oudc0w
cookie_secret: c1oudc0w
external_host: p-mysql.vsc.com
ssl_enabled: false
skip_ssl_validation: true
cc_api_uri: http://api.vsc.com
nats:
user: nats
password: c1oudc0w
port: 4222
machines:
- 10.0.0.26
#use_gnatsd: true
networks:
broker_network: default
services:
- name: p-mysql
plan_updateable: true
id: 44b26033-1f54-4087-b7bc-da9652c2a539
description: A MySQL service for application development and testing
tags:
- mysql
#max_db_per_node: 250
metadata:
displayName: "MySQL for Pivotal CF"
imageUrl: "data:image/png;base64,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"
longDescription: "Provisioning a service instance creates a MySQL database.
Binding applications to the instance creates unique credentials for each
application to access the database."
providerDisplayName: "Pivotal Software"
documentationUrl: "http://docs.gopivotal.com/"
supportUrl: "http://gopivotal.com/support/"
dashboard_client:
id: p-mysql
secret: c1oudc0w
plans:
- name: 100mb-dev
id: ab08f1bc-e6fc-4b56-a767-ee0fea6e3f20
description: Shared MySQL Server
max_storage_mb: 100
max_user_connections: 20
metadata:
costs:
- amount:
usd: 0.0
unit: MONTH
bullets:
- Not for production use - server is not replicated
- Shared MySQL server
- 100 MB storage
- 40 concurrent connections
displayName: "100 MB Dev"
- name: 1gb-dev
id: 11d0aa36-dcec-4021-85f5-ea4d9a5c8342
description: Shared MySQL Server
max_storage_mb: 1000
max_user_connections: 40
metadata:
costs:
- amount:
usd: 0.0
unit: MONTH
bullets:
- Not for production use - server is not replicated
- Shared MySQL server
- 1000 MB storage
- 40 concurrent connections
displayName: "1 GB Dev"
mysql_node:
host: 10.10.110.199
admin_password: c1oudc0w
persistent_disk: 10000
- name: broker-registrar
template: broker-registrar
release: cf-mysql
instances: 1
resource_pool: services-small
lifecycle: errand
networks:
- name: default
properties:
cf:
api_url: http://api.vsc.com
admin_username: admin
admin_password: admin
broker:
name: p-mysql
host: p-mysql.vsc.com
username: root
password: c1oudc0w
- name: broker-deregistrar
template: broker-deregistrar
release: cf-mysql
instances: 1
resource_pool: services-small
lifecycle: errand
networks:
- name: default
properties:
cf:
api_url: http://api.vsc.com
admin_username: admin
admin_password: admin
broker:
name: p-mysql
host: p-mysql.vsc.com
username: root
password: c1oudc0w
- name: acceptance-tests
template: acceptance-tests
release: cf-mysql
instances: 1
resource_pool: services-small
lifecycle: errand
networks:
- name: default
properties:
cf:
api_url: http://api.vsc.com
admin_username: admin
admin_password: admin
apps_domain: vsc.com
skip_ssl_validation: true
broker:
host: p-mysql.vsc.com
service:
name: p-mysql
plans:
- plan_name: 100mb-dev
max_storage_mb: 100
max_user_connections: 20
- plan_name: 1gb-dev
max_storage_mb: 1000
max_user_connections: 40
properties: {} # Pivotal CF cannot generate global properties
root@bosh-cli:~/bosh-workspace/deployments/mysql#bosh deployment mysql.yml
root@bosh-cli:~/bosh-workspace/deployments/mysql#bosh deploy
6. 验证部署是否成功
root@bosh-cli:~/bosh-workspace/deployments/mysql#bosh vms
如果所有组件都正常运行,则部署成功。这里出现的unknown属于正常情况,因为清单文件中有几个job的多了一个lifecycle:errand属性,即这些job并不是服务,所以这里是unknown,只有服务这里才会显示出名字。