[セットトップ]OpenStack Boshを使用したCloudFoundryの導入(8)-Mysqlサービス-V 2 Brokerの導入


バージョンの説明:
CloudFoundry:V 2バージョン-v 149+(本明細書の後続章のManifestは149+バージョンのCF Releaseに適用)
OpenStack:Grizzlyバージョン+nova-network
CloudFoundry導入交流QQ群:
176302388
Mysqlサービスは現在CloudFoundryのGithubに独立したエンジニアリングサポートがあり、エンジニアリング名:cf-mysql-releaseは、V 2 Broker APIに基づいて開発された新しいサービスであり、機能はかなり強く、Brokerによって内部または外部のMysqlデータベースを管理することができ、このサービスの最新のリリースバージョンはRelease-V 5であり、BOSHを使用して2つの独立したmysqlサービスを導入する方法を紹介し、そのうちの1つは純粋なBrokerインタフェースサービスである.もう1つはMysql-Serverで、同じreleaseパッケージを使用していますが、ymlプロファイルに違いがあります.
1.GitHubからコードを取得して更新する
git clone https://github.com/cloudfoundry/cf-mysql-release.git
cd cf-mysql-release
./update

2、Releaseパッケージを打ってBlobライブラリにアップロードする
方法1:releaseを圧縮パッケージにパッケージ化してから、アップロードコマンドを実行します.
bosh create release releases/cf-mysql-5.yml
パッケージが完了したら、次のことを行います.
bosh upload release releases/cf-mysql-5.tgz
方式2:ymlを直接介してアップロード操作を実行する
bosh upload release releases/cf-mysql-5.yml
国内のネットワーク環境の速度が遅く、不安定であることを考慮して、使用方式1を提案する.作成中にrelease名を入力する必要があります.これは自分で取ります.この例ではcf-mysqlです.
3、YAML配置ファイルの作成
Broker&Mysql-Server導入案:
---
name: cf-mysql
director_uuid: 785aa0a6-87c7-4452-a862-c118afc90b37   # CHANGE

releases:
  - name: cf-mysql
    version: latest

compilation:
  workers: 3
  network: default
  reuse_compilation_vms: true
  cloud_properties:
    instance_type: v1.compile # CHANGE

update:
  canaries: 1
  canary_watch_time: 30000-60000
  update_watch_time: 30000-60000
  max_in_flight: 4

networks:
  - name: floating
    type: vip
    cloud_properties: {}
  - name: default
    type: dynamic
    cloud_properties:
      security_groups:
        - default # CHANGE

resource_pools:
  - name: small
    network: default
    size: 2
    stemcell:
      name: bosh-openstack-kvm-ubuntu
      version: latest
    cloud_properties:
      instance_type: v1.small # CHANGE

jobs:
  - name: cf-mysql
    release: cf-mysql
    template:
      - mysql
    instances: 1
    resource_pool: small
    persistent_disk: 100000
    networks:
      - name: default
        default: [dns, gateway]
      - name: floating
        static_ips:
          - 10.68.19.134 # CHANGE
    properties:
      admin_password: c1oudc0w
      max_connections: 1500
      max_user_connections: 40

  - name: cf-mysql-broker
    release: cf-mysql
    template:
      - cf-mysql-broker
    instances: 1
    resource_pool: small
    networks:
      - name: default
        default: [dns, gateway]
    properties:
      auth_username: vsc
      auth_password: c1oudc0w
      services:
      - name: mysql
        id: 44b26033-1f54-4087-b7bc-da9652c2a539
        description: MySQL service for application development and testing
        tags:
          - mysql
          - relational
        max_db_per_node: 250
        metadata:
          provider:
            name: 
          listing:
            imageUrl:
            blurb: MySQL service for application development and testing
        plans:
        - name: default
          id: ab08f1bc-e6fc-4b56-a767-ee0fea6e3f20
          description: Shared MySQL Server, 100mb persistent disk, 40 max concurrent connections
          max_storage_mb: 100
          metadata:
            cost: 0
            bullets:
              - content: Shared MySQL server
              - content: 100 MB storage
              - content: 40 concurrent connections
      mysql_node:
        host: 10.68.19.134
        admin_password: c1oudc0w

properties: {}

説明:Boshは2つの仮想マシンインスタンス、cf-mysqlとcf-mysql-broker、cf-mysqlをmysql-serverの実行とデータストレージ環境として作成し、cf-mysql-brokerは管理インタフェースを提供するために使用します.Broker Only導入案:
---
name: cf-mysql-ex
director_uuid: 785aa0a6-87c7-4452-a862-c118afc90b37   # CHANGE

releases:
  - name: cf-mysql
    version: latest

compilation:
  workers: 3
  network: default
  reuse_compilation_vms: true
  cloud_properties:
    instance_type: v1.compile # CHANGE

update:
  canaries: 1
  canary_watch_time: 30000-60000
  update_watch_time: 30000-60000
  max_in_flight: 4

networks:
  - name: floating
    type: vip
    cloud_properties: {}
  - name: default
    type: dynamic
    cloud_properties:
      security_groups:
        - default # CHANGE

resource_pools:
  - name: small
    network: default
    size: 1
    stemcell:
      name: bosh-openstack-kvm-ubuntu
      version: latest
    cloud_properties:
      instance_type: v1.small # CHANGE

jobs:
  - name: cf-mysql-broker
    release: cf-mysql
    template:
      - cf-mysql-broker
    instances: 1
    resource_pool: small
    networks:
      - name: default
        default: [dns, gateway]
    properties:
      auth_username: vsc
      auth_password: c1oudc0w
      services:
      - name: mysql-ex
        id: 44836033-1f54-4087-b7bc-da9652c2a539
        description: MySQL service for application development and testing
        tags:
          - mysql
          - relational
        max_db_per_node: 250
        metadata:
          provider:
            name: 
          listing:
            imageUrl:
            blurb: MySQL service for application development and testing
        plans:
        - name: default
          id: ku08f1bc-e6fc-4b56-a767-ee0fea6e3f20
          description: Shared MySQL Server, 100mb persistent disk, 40 max concurrent connections
          max_storage_mb: 100
          metadata:
            cost: 0
            bullets:
              - content: Shared MySQL server
              - content: 100 MB storage
              - content: 40 concurrent connections
      mysql_node:
        host: 10.68.19.62
        admin_password: c1oudc0w

properties: {}

説明:Boshは、mysqlデータベースを管理するインタフェースを提供する仮想マシンインスタンスcf-mysql-brokerのみを作成しました.このスキームではmysql-serverサービスは提供されず、外部のmysqlデータベースを採用しています.IP:10.68.19.62は外部のmysqlデータベースのアクセスアドレスであり、admin_passwordはrootユーザーのパスワードです.注意:mysqlデータベースがrootユーザーに「%」権限を付与する必要があります.そうしないと、リモートアクセスはできません.
4、配置の実行
Broker&Mysql-Serverスキームの導入:
bosh deployment cf-mysql.yml
bosh deploy
Broker Onlyシナリオの導入:
bosh deployment cf-mysql-ex.yml
bosh deploy
導入結果:
bosh vms
Deployment `cf-mysql'

Director task 167

Task 167 done

+-------------------+---------+---------------+--------------------------+
| Job/index         | State   | Resource Pool | IPs                      |
+-------------------+---------+---------------+--------------------------+
| cf-mysql/0        | running | small         | 50.50.0.27, 10.68.19.134 |
| cf-mysql-broker/0 | running | small         | 50.50.0.26               |
+-------------------+---------+---------------+--------------------------+

VMs total: 2
Deployment `cf-mysql-ex'

Director task 168

Task 168 done

+-------------------+---------+---------------+------------+
| Job/index         | State   | Resource Pool | IPs        |
+-------------------+---------+---------------+------------+
| cf-mysql-broker/0 | running | small         | 50.50.0.28 |
+-------------------+---------+---------------+------------+

VMs total: 1

5、Mysql-Brokerを登録する
root@bosh-cli:~# cf add-service-broker mysql
URL> http://50.50.0.26

Username> vsc

Password> c1oudc0w

説明:URL-Mysql-Brokerインスタンスのアクセスアドレス、IPはbosh vmsで見ることができて、Username-Brokerはユーザーを認証して、YAMLプロファイルの中で設定して、Password-Brokerはユーザーのパスワードを認証して、YAMLプロファイルの中で設定します.
root@bosh-cli:~# cf add-service-broker mysql-ex
URL> http://50.50.0.28

Username> vsc

Password> c1oudc0w

6、サービスプランへのアクセス権の設定
V 2 Brokerが作成されるとデフォルトではオープンアクセス権がありませんので、手動で開く必要があります.まずService PlanのURLを確認します.
cf curl /v2/service_plans
出力されたJSONデータにService PlanのURLが見つかりました.
"service_plans": [
          {
            "metadata": {
              "guid": "ac75ce76-dfe5-409a-84a2-42a654dd0ff8",
              "url": "/v2/service_plans/ac75ce76-dfe5-409a-84a2-42a654dd0ff8",
              "created_at": "2013-12-20T09:31:08+00:00",
              "updated_at": null
            },
            "entity": {
              "name": "100mb",
              "free": true,
              "description": "Shared MySQL Server, 100mb persistent disk, 40 max concurrent connections",
              "service_guid": "fea49494-0953-4374-a668-3b9593fe14cb",
              "extra": "{\"cost\":0,\"bullets\":[{\"content\":\"Shared MySQL server\"},{\"content\":\"100 MB storage\"},{\"content\":\"40 concurrent connections\"}]}",
              "unique_id": "ab08f1bc-e6fc-4b56-a767-ee0fea6e3f20",
              "public": false,
              "service_url": "/v2/services/fea49494-0953-4374-a668-3b9593fe14cb",
              "service_instances_url": "/v2/service_plans/ac75ce76-dfe5-409a-84a2-42a654dd0ff8/service_instances"
            }
          }
        ]
は、次の文のオープン権限を実行します.
cf curl PUT /v2/service_plans/ac75ce76-dfe5-409a-84a2-42a654dd0ff8 -b '{"public":'true'}'

説明:mysql-ex同理操作
7、MysqlとMysql-exサービスの作成
root@bosh-cli:~# cf create-service
1: blob 0.51
2: elasticsearch 0.20
3: memcached 1.4
4: mongodb 2.2
5: mysql , via
6: mysql-ex , via
7: postgresql 9.3
8: rabbitmq 3.0
9: redis 2.6
10: user-provided , via
What kind?> 5

Name?> mysql-166e6

1: default: Shared MySQL Server, 100mb persistent disk, 40 max concurrent connections
Which plan?> 1

Creating service mysql-166e6... OK
root@bosh-cli:~# cf create-service
1: blob 0.51
2: elasticsearch 0.20
3: memcached 1.4
4: mongodb 2.2
5: mysql , via
6: mysql-ex , via
7: postgresql 9.3
8: rabbitmq 3.0
9: redis 2.6
10: user-provided , via
What kind?> 6

Name?> mysql-ex-5a8a7

1: default: Shared MySQL Server, 100mb persistent disk, 40 max concurrent connections
Which plan?> 1

Creating service mysql-ex-5a8a7... OK
サービスが作成され、特定のアプリケーションにバインドして使用できます.