上传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
用户名和密码都是adminroot@bosh-cli:~#bosh login
2. 上传stemcell
创建目录
root@bosh-cli:~# cd ~/bosh-workspace/deployments/mysqlroot@bosh-cli:~#mkdir -p ~/bosh-workspace/deployments/mysql
上传stemcell
root@bosh-cli:~/bosh-workspace/stemcells# bosh upload stemcell bosh-stemcell-2818-openstack-kvm-ubuntu.tgz
3. 上传releaseroot@bosh-cli:~/bosh-workspace# bosh upload release /root//bosh-workspace/bosh/release/mysql-16.tgz
4. 创建manifest
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
5. 部署mysqlroot@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,只有服务这里才会显示出名字。