RabbitMQ 설치 가이드

1. 문서 개요

1.1. 목적

본 문서(RabbitMQ서비스팩 설치 가이드)는 전자정부표준프레임워크 기반의 PaaS-TA에서 제공되는 서비스팩인 RabbitMQ 서비스팩을 Bosh를 이용하여 설치 하는 방법과 PaaS-TA의 SaaS 형태로 제공하는 Application에서 RabbitMQ 서비스를 사용하는 방법을 기술하였다. PaaS-TA 3.5 버전부터는 Bosh2.0 기반으로 deploy를 진행하며 기존 Bosh1.0 기반으로 설치를 원할경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2. 범위

설치 범위는 RabbitMQ 서비스팩을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3. 시스템 구성도

본 문서의 설치된 시스템 구성도이다. RabbitMQ(1대), RabbitMQ 서비스 브로커, haproxy로 최소사항을 구성하였다.
구분
스펙
paasta-rmq-broker
1vCPU / 1GB RAM / 8GB Disk
haproxy
1vCPU / 1GB RAM / 8GB Disk
rmq
1vCPU / 1GB RAM / 8GB Disk

1.4. 참고자료

2. RabbitMQ 서비스팩 설치

2.1. 설치전 준비사항

본 설치 가이드는 Linux 환경에서 설치하는 것을 기준으로 하였다. 서비스팩 설치를 위해서는 먼저 BOSH CLI v2 가 설치 되어 있어야 하고 BOSH 에 로그인이 되어 있어야 한다. BOSH CLI v2 가 설치 되어 있지 않을 경우 먼저 BOSH2.0 설치 가이드 문서를 참고 하여 BOSH CLI v2를 설치를 하고 사용법을 숙지 해야 한다.
  • PaaS-TA에서 제공하는 압축된 릴리즈 파일들을 다운받는다. (PaaSTA-Deployment.zip, PaaSTA-Sample-Apps.zip, PaaSTA-Services.zip)
  • 다운로드 위치

2.2. RabbitMQ 서비스 릴리즈 업로드

  • 업로드 되어 있는 릴리즈 목록을 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh releases
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Name Version Commit Hash
    5
    binary-buildpack 1.0.21* d714741
    6
    bpm 0.9.0* c9b7136
    7
    caas-release 1.0* empty+
    8
    capi 1.62.0* 22a608c
    9
    cf-networking 2.8.0* 479f4a66
    10
    cf-smoke-tests 40.0.5* d6aaf1f
    11
    cf-syslog-drain 7.0* 71b995a
    12
    cflinuxfs2 1.227.0* 60128e1
    13
    consul 195* 67cdbcd
    14
    diego 2.13.0* b5644d9
    15
    dotnet-core-buildpack 2.1.3* 46a41cd
    16
    garden-runc 1.15.1* 75107e7+
    17
    go-buildpack 1.8.25* 40c60a0
    18
    haproxy 8.8.0* 9292573
    19
    java-buildpack 4.13* c2749d3
    20
    loggregator 103.0* 05da4e3d
    21
    loggregator-agent 2.0* 2382c90
    22
    nats 24* 30e7a82
    23
    nodejs-buildpack 1.6.28* 4cfdb7b
    24
    paas-ta-portal-release 2.0* non-git
    25
    paasta-delivery-pipeline-release 1.0* b3ee8f48+
    26
    paasta-pinpoint 2.0* 2dbb8bf3+
    27
    php-buildpack 4.3.57* efc48f3
    28
    postgres 29* 5de4d63d+
    29
    python-buildpack 1.6.18* bcc4f26
    30
    routing 0.179.0* 18155a5
    31
    ruby-buildpack 1.7.21* 9d69600
    32
    silk 2.9.0* eebed55
    33
    staticfile-buildpack 1.4.29* 8a82e63
    34
    statsd-injector 1.3.0* 39e5179
    35
    uaa 60.2* ebb5895
    36
    37
    (*) Currently deployed
    38
    (+) Uncommitted changes
    39
    40
    31 releases
    41
    42
    Succeeded
    Copied!
  • RabbitMQ 서비스 릴리즈가 업로드 되어 있지 않은 것을 확인
  • RabbitMQ 서비스 릴리즈 파일을 업로드한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh upload-release paasta-rabbitmq-2.0.tgz
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    ######################################################## 100.00% 152.97 MiB/s 1s
    5
    Task 8066
    6
    7
    Task 8066 | 06:14:13 | Extracting release: Extracting release (00:00:03)
    8
    Task 8066 | 06:14:16 | Verifying manifest: Verifying manifest (00:00:00)
    9
    Task 8066 | 06:14:16 | Resolving package dependencies: Resolving package dependencies (00:00:00)
    10
    Task 8066 | 06:14:16 | Creating new packages: cf-cli/68cbd378bc91c97fd0847075d71528c3eb1f7928 (00:00:00)
    11
    Task 8066 | 06:14:16 | Creating new packages: cf-rabbitmq-smoke-tests/b674b591adfffa72e6ddbe9eaa202f3dfae45b80 (00:00:01)
    12
    Task 8066 | 06:14:17 | Creating new packages: erlang/d689b1d899513421b211ded55d614407a1b51ad6 (00:00:01)
    13
    Task 8066 | 06:14:18 | Creating new packages: golang-1.6.1/7c83e83f822259c6324742e3dfc5d4aaae25e9e6 (00:00:02)
    14
    Task 8066 | 06:14:20 | Creating new packages: haproxy/f0f2335dc5e7cab5c8a7232fd4aa9d92cbc8dba8 (00:00:00)
    15
    Task 8066 | 06:14:20 | Creating new packages: java/4cc1119c49707a07d69b3863914b6f1307e611b5 (00:00:01)
    16
    Task 8066 | 06:14:21 | Creating new packages: rabbitmq-broker/66260363d9b0ee0c671adc4a9b5e38453652fc06 (00:00:02)
    17
    Task 8066 | 06:14:23 | Creating new packages: rabbitmq-cluster-migration-tool/aa2db9b54d0d87e67b4b7ef7ae1854ebe6cef867 (00:00:00)
    18
    Task 8066 | 06:14:23 | Creating new packages: rabbitmq-common/a1ceb4166602035b5e8783f2d90a2048a654875f (00:00:00)
    19
    Task 8066 | 06:14:23 | Creating new packages: rabbitmq-server/c93764197128c6e731899062f1cc33aef9cef053 (00:00:00)
    20
    Task 8066 | 06:14:23 | Creating new packages: rabbitmq-syslog-aggregator/a1662acacf8b2ef2ff54707681b125370544c824 (00:00:00)
    21
    Task 8066 | 06:14:23 | Creating new packages: rabbitmq-upgrade-preparation/3ef7571fb3896b0c2260fd8063e47dfd4802a81c (00:00:00)
    22
    Task 8066 | 06:14:23 | Creating new jobs: broker-deregistrar/57c1e5bf6e59618fa4c5d13efd7f8420cabeba2a (00:00:00)
    23
    Task 8066 | 06:14:23 | Creating new jobs: broker-registrar/e354968e46093de4e61d825a875bb33bffef79e3 (00:00:01)
    24
    Task 8066 | 06:14:24 | Creating new jobs: rabbitmq-broker/4d344fde68bcf2712b60c3369137a970d2c6116c (00:00:00)
    25
    Task 8066 | 06:14:24 | Creating new jobs: rabbitmq-haproxy/a7c6a8a87a15f3fb40382a282d6075a4baf0f24f (00:00:00)
    26
    Task 8066 | 06:14:24 | Creating new jobs: rabbitmq-server/b7871ae1cce45589a135f6bab459d2a5c4dd3bc9 (00:00:00)
    27
    Task 8066 | 06:14:24 | Creating new jobs: smoke-tests/a9230370cc5954574231962a0f7e2233daabf1e4 (00:00:00)
    28
    Task 8066 | 06:14:24 | Release has been created: paasta-rabbitmq/2.0 (00:00:00)
    29
    30
    Task 8066 Started Thu Sep 13 06:14:13 UTC 2018
    31
    Task 8066 Finished Thu Sep 13 06:14:24 UTC 2018
    32
    Task 8066 Duration 00:00:11
    33
    Task 8066 done
    34
    35
    Succeeded
    Copied!
  • 업로드 된 RabbitMQ 릴리즈를 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh releases
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Name Version Commit Hash
    5
    binary-buildpack 1.0.21* d714741
    6
    bpm 0.9.0* c9b7136
    7
    caas-release 1.0* empty+
    8
    capi 1.62.0* 22a608c
    9
    cf-networking 2.8.0* 479f4a66
    10
    cf-smoke-tests 40.0.5* d6aaf1f
    11
    cf-syslog-drain 7.0* 71b995a
    12
    cflinuxfs2 1.227.0* 60128e1
    13
    consul 195* 67cdbcd
    14
    diego 2.13.0* b5644d9
    15
    dotnet-core-buildpack 2.1.3* 46a41cd
    16
    garden-runc 1.15.1* 75107e7+
    17
    go-buildpack 1.8.25* 40c60a0
    18
    haproxy 8.8.0* 9292573
    19
    java-buildpack 4.13* c2749d3
    20
    loggregator 103.0* 05da4e3d
    21
    loggregator-agent 2.0* 2382c90
    22
    nats 24* 30e7a82
    23
    nodejs-buildpack 1.6.28* 4cfdb7b
    24
    paas-ta-portal-release 2.0* non-git
    25
    paasta-delivery-pipeline-release 1.0* b3ee8f48+
    26
    paasta-rabbitmq 2.0 21516d49+
    27
    paasta-pinpoint 2.0* 2dbb8bf3+
    28
    php-buildpack 4.3.57* efc48f3
    29
    postgres 29* 5de4d63d+
    30
    python-buildpack 1.6.18* bcc4f26
    31
    routing 0.179.0* 18155a5
    32
    ruby-buildpack 1.7.21* 9d69600
    33
    silk 2.9.0* eebed55
    34
    staticfile-buildpack 1.4.29* 8a82e63
    35
    statsd-injector 1.3.0* 39e5179
    36
    uaa 60.2* ebb5895
    37
    38
    (*) Currently deployed
    39
    (+) Uncommitted changes
    40
    41
    32 releases
    42
    43
    Succeeded
    Copied!
  • RabbitMQ 서비스 릴리즈가 업로드 되어 있는 것을 확인
  • Deploy시 사용할 Stemcell을 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh stemcells
    2
    Name Version OS CPI CID
    3
    bosh-vsphere-esxi-ubuntu-trusty-go_agent 3586.26* ubuntu-trusty - sc-109fbdb0-f663-49e8-9c30-8dbdd2e5b9b9
    4
    ~ 3445.2* ubuntu-trusty - sc-025c70b5-7d6e-4ba3-a12b-7e71c33dad24
    5
    ~ 3309* ubuntu-trusty - sc-22429dba-e5cc-4469-ab3a-882091573277
    6
    7
    (*) Currently deployed
    8
    9
    3 stemcells
    10
    11
    Succeeded
    Copied!
Stemcell 목록이 존재 하지 않을 경우 BOSH 설치 가이드 문서를 참고 하여 Stemcell을 업로드를 해야 한다. (RabbitMQ는 stemcell 3309 버전을 사용)

2.3. RabbitMQ 서비스 Deployment 파일 수정 및 배포

BOSH Deployment manifest 는 components 요소 및 배포의 속성을 정의한 YAML 파일이다. Deployment manifest 에는 sotfware를 설치 하기 위해서 어떤 Stemcell (OS, BOSH agent) 을 사용할것이며 Release (Software packages, Config templates, Scripts) 이름과 버전, VMs 용량, Jobs params 등을 정의가 되어 있다.
deployment 파일에서 사용하는 network, vm_type 등은 cloud config 를 활용하고 해당 가이드는 Bosh2.0 가이드를 참고한다.
  • cloud config 내용 조회
  • 사용 예시
    1
    bosh -e micro-bosh cloud-config
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    azs:
    5
    - cloud_properties:
    6
    datacenters:
    7
    - clusters:
    8
    - BD-HA:
    9
    resource_pool: CF_BOSH2_Pool
    10
    name: BD-HA
    11
    name: z1
    12
    - cloud_properties:
    13
    datacenters:
    14
    - clusters:
    15
    - BD-HA:
    16
    resource_pool: CF_BOSH2_Pool
    17
    name: BD-HA
    18
    name: z2
    19
    - cloud_properties:
    20
    datacenters:
    21
    - clusters:
    22
    - BD-HA:
    23
    resource_pool: CF_BOSH2_Pool
    24
    name: BD-HA
    25
    name: z3
    26
    - cloud_properties:
    27
    datacenters:
    28
    - clusters:
    29
    - BD-HA:
    30
    resource_pool: CF_BOSH2_Pool
    31
    name: BD-HA
    32
    name: z4
    33
    - cloud_properties:
    34
    datacenters:
    35
    - clusters:
    36
    - BD-HA:
    37
    resource_pool: CF_BOSH2_Pool
    38
    name: BD-HA
    39
    name: z5
    40
    - cloud_properties:
    41
    datacenters:
    42
    - clusters:
    43
    - BD-HA:
    44
    resource_pool: CF_BOSH2_Pool
    45
    name: BD-HA
    46
    name: z6
    47
    compilation:
    48
    az: z1
    49
    network: default
    50
    reuse_compilation_vms: true
    51
    vm_type: large
    52
    workers: 5
    53
    disk_types:
    54
    - disk_size: 1024
    55
    name: default
    56
    - disk_size: 1024
    57
    name: 1GB
    58
    - disk_size: 2048
    59
    name: 2GB
    60
    - disk_size: 4096
    61
    name: 4GB
    62
    - disk_size: 5120
    63
    name: 5GB
    64
    - disk_size: 8192
    65
    name: 8GB
    66
    - disk_size: 10240
    67
    name: 10GB
    68
    - disk_size: 20480
    69
    name: 20GB
    70
    - disk_size: 30720
    71
    name: 30GB
    72
    - disk_size: 51200
    73
    name: 50GB
    74
    - disk_size: 102400
    75
    name: 100GB
    76
    - disk_size: 1048576
    77
    name: 1TB
    78
    networks:
    79
    - name: default
    80
    subnets:
    81
    - azs:
    82
    - z1
    83
    - z2
    84
    - z3
    85
    - z4
    86
    - z5
    87
    - z6
    88
    cloud_properties:
    89
    name: Internal
    90
    dns:
    91
    - 8.8.8.8
    92
    gateway: 10.30.20.23
    93
    range: 10.30.0.0/16
    94
    reserved:
    95
    - 10.30.0.0 - 10.30.111.40
    96
    - name: public
    97
    subnets:
    98
    - azs:
    99
    - z1
    100
    - z2
    101
    - z3
    102
    - z4
    103
    - z5
    104
    - z6
    105
    cloud_properties:
    106
    name: External
    107
    dns:
    108
    - 8.8.8.8
    109
    gateway: 115.68.46.177
    110
    range: 115.68.46.176/28
    111
    reserved:
    112
    - 115.68.46.176 - 115.68.46.188
    113
    static:
    114
    - 115.68.46.189 - 115.68.46.190
    115
    type: manual
    116
    - name: service_private
    117
    subnets:
    118
    - azs:
    119
    - z1
    120
    - z2
    121
    - z3
    122
    - z4
    123
    - z5
    124
    - z6
    125
    cloud_properties:
    126
    name: Internal
    127
    dns:
    128
    - 8.8.8.8
    129
    gateway: 10.30.20.23
    130
    range: 10.30.0.0/16
    131
    reserved:
    132
    - 10.30.0.0 - 10.30.106.255
    133
    static:
    134
    - 10.30.107.1 - 10.30.107.255
    135
    - name: service_public
    136
    subnets:
    137
    - azs:
    138
    - z1
    139
    - z2
    140
    - z3
    141
    - z4
    142
    - z5
    143
    - z6
    144
    cloud_properties:
    145
    name: External
    146
    dns:
    147
    - 8.8.8.8
    148
    gateway: 115.68.47.161
    149
    range: 115.68.47.160/24
    150
    reserved:
    151
    - 115.68.47.161 - 115.68.47.174
    152
    static:
    153
    - 115.68.47.175 - 115.68.47.185
    154
    type: manual
    155
    - name: portal_service_public
    156
    subnets:
    157
    - azs:
    158
    - z1
    159
    - z2
    160
    - z3
    161
    - z4
    162
    - z5
    163
    - z6
    164
    cloud_properties:
    165
    name: External
    166
    dns:
    167
    - 8.8.8.8
    168
    gateway: 115.68.46.209
    169
    range: 115.68.46.208/28
    170
    reserved:
    171
    - 115.68.46.216 - 115.68.46.222
    172
    static:
    173
    - 115.68.46.214
    174
    type: manual
    175
    vm_extensions:
    176
    - cloud_properties:
    177
    ports:
    178
    - host: 3306
    179
    name: mysql-proxy-lb
    180
    - name: cf-router-network-properties
    181
    - name: cf-tcp-router-network-properties
    182
    - name: diego-ssh-proxy-network-properties
    183
    - name: cf-haproxy-network-properties
    184
    - cloud_properties:
    185
    disk: 51200
    186
    name: small-50GB
    187
    - cloud_properties:
    188
    disk: 102400
    189
    name: small-highmem-100GB
    190
    vm_types:
    191
    - cloud_properties:
    192
    cpu: 1
    193
    disk: 8192
    194
    ram: 1024
    195
    name: minimal
    196
    - cloud_properties:
    197
    cpu: 1
    198
    disk: 10240
    199
    ram: 2048
    200
    name: default
    201
    - cloud_properties:
    202
    cpu: 1
    203
    disk: 30720
    204
    ram: 4096
    205
    name: small
    206
    - cloud_properties:
    207
    cpu: 2
    208
    disk: 20480
    209
    ram: 4096
    210
    name: medium
    211
    - cloud_properties:
    212
    cpu: 2
    213
    disk: 20480
    214
    ram: 8192
    215
    name: medium-memory-8GB
    216
    - cloud_properties:
    217
    cpu: 4
    218
    disk: 20480
    219
    ram: 8192
    220
    name: large
    221
    - cloud_properties:
    222
    cpu: 8
    223
    disk: 20480
    224
    ram: 16384
    225
    name: xlarge
    226
    - cloud_properties:
    227
    cpu: 2
    228
    disk: 51200
    229
    ram: 4096
    230
    name: small-50GB
    231
    - cloud_properties:
    232
    cpu: 2
    233
    disk: 51200
    234
    ram: 4096
    235
    name: small-50GB-ephemeral-disk
    236
    - cloud_properties:
    237
    cpu: 4
    238
    disk: 102400
    239
    ram: 8192
    240
    name: small-100GB-ephemeral-disk
    241
    - cloud_properties:
    242
    cpu: 4
    243
    disk: 102400
    244
    ram: 8192
    245
    name: small-highmem-100GB-ephemeral-disk
    246
    - cloud_properties:
    247
    cpu: 8
    248
    disk: 20480
    249
    ram: 16384
    250
    name: small-highmem-16GB
    251
    - cloud_properties:
    252
    cpu: 1
    253
    disk: 4096
    254
    ram: 2048
    255
    name: caas_small
    256
    - cloud_properties:
    257
    cpu: 1
    258
    disk: 4096
    259
    ram: 1024
    260
    name: caas_small_api
    261
    - cloud_properties:
    262
    cpu: 1
    263
    disk: 4096
    264
    ram: 4096
    265
    name: caas_medium
    266
    - cloud_properties:
    267
    cpu: 2
    268
    disk: 8192
    269
    ram: 4096
    270
    name: service_medium
    271
    - cloud_properties:
    272
    cpu: 2
    273
    disk: 10240
    274
    ram: 2048
    275
    name: service_medium_2G
    276
    277
    Succeeded
    Copied!
  • Deployment 파일을 서버 환경에 맞게 수정한다.
1
# paasta-rabbitmq-service 설정 파일 내용
2
---
3
name: paasta-rabbitmq-service # 서비스 배포이름(필수)
4
5
releases:
6
- name: paasta-rabbitmq # 서비스 릴리즈 이름(필수)
7
version: "2.0" # 서비스 릴리즈 버전(필수): latest 시 업로드된 서비스 릴리즈 최신버전
8
9
stemcells:
10
- alias: default
11
os: ((stemcell_os))
12
version: "((stemcell_version))"
13
14
update:
15
canaries: 1 # canary 인스턴스 수(필수)
16
canary_watch_time: 30000-180000 # canary 인스턴스가 수행하기 위한 대기 시간(필수)
17
max_in_flight: 6 # non-canary 인스턴스가 병렬로 update 하는 최대 개수(필수)
18
update_watch_time: 30000-180000 # non-canary 인스턴스가 수행하기 위한 대기 시간(필수)
19
20
instance_groups:
21
- name: rmq # 작업 이름(필수): rabbitmq 서버
22
azs:
23
- z5
24
instances: 1 # job 인스턴스 수(필수)
25
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
26
stemcell: default
27
networks:
28
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
29
static_ips:
30
- 10.30.107.193 # 사용할 IP addresses 정의(필수): rabbitmq-server IP
31
templates:
32
- name: rabbitmq-server # job template 이름(필수)
33
release: paasta-rabbitmq # 릴리즈 이름(필수)
34
syslog_aggregator: null
35
36
- name: haproxy # 작업 이름(필수): rabbitmq haproxy
37
azs:
38
- z5
39
instances: 1 # job 인스턴스 수(필수)
40
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
41
stemcell: default
42
networks:
43
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
44
static_ips:
45
- 10.30.107.192 # 사용할 IP addresses 정의(필수): rabbitmq haproxy IP
46
templates:
47
- name: rabbitmq-haproxy # job template 이름(필수)
48
release: paasta-rabbitmq # 릴리즈 이름(필수)
49
syslog_aggregator: null
50
51
- name: paasta-rmq-broker # 작업 이름(필수): rabbit mq broker
52
azs:
53
- z5
54
instances: 1 # job 인스턴스 수(필수)
55
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
56
stemcell: default
57
networks:
58
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
59
static_ips:
60
- 10.30.107.191 # 사용할 IP addresses 정의(필수): rabbitmq broker
61
templates:
62
- name: rabbitmq-broker # job template 이름(필수)
63
release: paasta-rabbitmq # 릴리즈 이름(필수)
64
syslog_aggregator: null
65
66
- name: broker-registrar
67
lifecycle: errand # bosh deploy시 vm에 생성되어 설치 되지 않고 bosh errand 로 실할때 설정, 주로 테스트 용도에 쓰임
68
azs:
69
- z5
70
instances: 1 # job 인스턴스 수(필수)
71
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
72
stemcell: default
73
networks:
74
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
75
properties:
76
broker:
77
host: 10.30.107.191
78
name: rabbitmq-sb
79
password: admin
80
username: admin
81
protocol: http
82
port: 4567
83
templates:
84
- name: broker-registrar
85
release: paasta-rabbitmq
86
87
- name: broker-deregistrar
88
lifecycle: errand # bosh deploy시 vm에 생성되어 설치 되지 않고 bosh errand 로실행할때 설정, 주로 테스트 용도에 쓰임
89
azs:
90
- z5
91
instances: 1 # job 인스턴스 수(필수)
92
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
93
stemcell: default
94
networks:
95
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
96
properties:
97
broker:
98
host: 10.30.107.191
99
name: rabbitmq-sb
100
password: admin
101
username: admin
102
protocol: http
103
port: 4567
104
templates:
105
- name: broker-deregistrar
106
release: paasta-rabbitmq
107
108
properties:
109
cf: # CF 환경 정보
110
admin_password: admin # CF 어드민 아이디 비밀번호(필수)
111
admin_username: admin_test # CF 어드민 아이디 (필수)
112
api_url: http://api.115.68.46.189.xip.io # CF API url(필수)
113
domain: 115.68.46.189.xip.io # CF 도메인(필수)
114
rabbitmq-server:
115
restart_statsdb_cron_schedule: "42 */4 * * *"
116
plugins: # rabbitmq 플러그인 정보(필수)
117
- rabbitmq_management
118
- rabbitmq_mqtt
119
- rabbitmq_stomp
120
ports: # rabbitmq haproxy 에서 허용하는 포트 목록(필수)
121
- 5672
122
- 5671
123
- 1883
124
- 8883
125
- 61613
126
- 61614
127
- 15672
128
- 15674
129
administrators:
130
management: # rabbitmq management 사용자 및 패스워드 정보
131
username: admin
132
password: admin
133
broker: # rabbitmq service broker 아이디 및 패스워드 정보
134
username: admin
135
password: admin
136
rabbitmq-haproxy: # rabbitmq service broker 아이디 및 패스워드 정보
137
stats:
138
username: admin
139
password: admin
140
broker: # rabbitmq service broker 아이디 및 패스워드 정보
141
host: 10.30.107.181
142
protocol: http
143
name: p-rabbitmq
144
username: "admin"
145
password: "admin"
146
rabbitmq-broker:
147
route: paasta-rabbitmq-broker
148
cc_endpoint: http://api.115.68.46.189.xip.io
149
service: # 서비스 이름및 uuid 플랜 Id 정보
150
username: "admin"
151
password: "admin"
152
name: p-rabbitmq
153
uuid: 163b47c6-a2f3-43b1-97f7-b83b37ecabcd
154
plan_uuid: 4e816145-4e71-4e24-a402-0c686b868e2d
155
logging:
156
level: debug
157
print_stack_traces: false
158
rabbitmq:
159
operator_set_policy:
160
enabled: true
161
policy_name: "operator_set_policy"
162
policy_definition: "{\"ha-mode\":\"exactly\",\"ha-params\":2,\"ha-sync-mode\":\"automatic\"}"
163
policy_priority: 50
164
management_domain: 115.68.46.189.xip.io
165
ssl: |
166
-----BEGIN CERTIFICATE-----
167
MIIC+zCCAeOgAwIBAgIBAjANBgkqhkiG9w0BAQUFADAnMRUwEwYDVQQDEwxNeVRl
168
c3RSb290Q0ExDjAMBgNVBAcTBTY0MTAzMB4XDTE0MDkwNDA3MjIwOFoXDTI0MDkw
169
MTA3MjIwOFowKjEXMBUGA1UEAxMObWVyY3VyaW8ubG9jYWwxDzANBgNVBAoTBnNl
170
cnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxxSzf958VIm8lp
171
qQ4BHSmz1z8yU/KEKSbuEfIqpGwpVx6TZ+ZYiXa0cMV2pE7UKR4OyJiuvtvv9kzu
172
6g+HTXmJo2cqVonGCAMp6d9TkCAMaMF76IrbLyGmvXQDcjOmWarvsGHW/w6gJpw9
173
svDP9EXyXTBUfaJq3T8+9UQBfMsL4dHwAt79YgvSQLsYiIi2rzQixK/4PHFeHf3G
174
I/UDgjG0YG9iCWp2g1Sc3Z6hYB/0pOCBxE7LCrSGS6/M/7c2569yK7NqSSNN7Lqz
175
ZoQSF1NYE6KRd2MK2A0QaKrn9v8K5/Lp0fk70bvwtLxTWtp3wq3bYQg8UdqY/6R8
176
UATS/aMCAwEAAaMvMC0wCQYDVR0TBAIwADALBgNVHQ8EBAMCBSAwEwYDVR0lBAww
177
CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAHC89mK1HJgDqwxjsGpa3V7t
178
Nuqe/XxEIUUN3Lm4gBLKq4wed4c6z4csv16f3uL9cypyHPSrQmMPV7CDgWLX4F7g
179
YN9PGaVfIp/rGNsDWJEVNU2rfIEDIUfcL+o844jE8CtmzZ4bGVrCHqKW5pAraai1
180
o5h3JaU4yDLo49rqPeRft2n/gj+5E3gi/1TsnuLuzB7kK1gaTTOrV3GASiGokCEN
181
4v1ZjaqMSGMcwA/esaLv2N6UYJgd5lyJ7PEL4ddE8QCTo2EPhYyltLxRqOjrxa+5
182
KONA94PDj14gOSSsoXkoj7gWQsuHT2RXmurYXk4/PkS+k1j0+ZCzKi/ZxF5jt50=
183
-----END CERTIFICATE-----
184
administrator:
185
username: admin
186
password: admin
Copied!
  • deploy-rabbitmq-bosh2.0.sh 파일을 서버 환경에 맞게 수정한다.
1
#!/bin/bash
2
# stemcell 버전은 3309 버전으로 사용하시고 https://github.com/PaaS-TA/Guide-2.0-Linguine-/blob/master/Download_Page.md 에서 다운받아 쓰십시요.
3
4
bosh -e micro-bosh -d paasta-rabbitmq-service deploy paasta_rabbitmq_bosh2.0.yml \
5
-v default_network_name=service_private \
6
-v stemcell_os=ubuntu-trusty \
7
-v stemcell_version=3309 \
8
-v vm_type_small=minimal
Copied!
  • RabbitMQ 서비스팩을 배포한다.
  • 사용 예시
    1
    $ ./deploy-rabbitmq-bosh2.0.sh
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Using deployment 'paasta-rabbitmq-service'
    5
    6
    + azs:
    7
    + - cloud_properties:
    8
    + datacenters:
    9
    + - clusters:
    10
    + - BD-HA:
    11
    + resource_pool: CF_BOSH2_Pool
    12
    + name: BD-HA
    13
    + name: z1
    14
    + - cloud_properties:
    15
    + datacenters:
    16
    + - clusters:
    17
    + - BD-HA:
    18
    + resource_pool: CF_BOSH2_Pool
    19
    + name: BD-HA
    20
    + name: z2
    21
    + - cloud_properties:
    22
    + datacenters:
    23
    + - clusters:
    24
    + - BD-HA:
    25
    + resource_pool: CF_BOSH2_Pool
    26
    + name: BD-HA
    27
    + name: z3
    28
    + - cloud_properties:
    29
    + datacenters:
    30
    + - clusters:
    31
    + - BD-HA:
    32
    + resource_pool: CF_BOSH2_Pool
    33
    + name: BD-HA
    34
    + name: z4
    35
    + - cloud_properties:
    36
    + datacenters:
    37
    + - clusters:
    38
    + - BD-HA:
    39
    + resource_pool: CF_BOSH2_Pool
    40
    + name: BD-HA
    41
    + name: z5
    42
    + - cloud_properties:
    43
    + datacenters:
    44
    + - clusters:
    45
    + - BD-HA:
    46
    + resource_pool: CF_BOSH2_Pool
    47
    + name: BD-HA
    48
    + name: z6
    49
    50
    + vm_types:
    51
    + - cloud_properties:
    52
    + cpu: 1
    53
    + disk: 8192
    54
    + ram: 1024
    55
    + name: minimal
    56
    + - cloud_properties:
    57
    + cpu: 1
    58
    + disk: 10240
    59
    + ram: 2048
    60
    + name: default
    61
    + - cloud_properties:
    62
    + cpu: 1
    63
    + disk: 30720
    64
    + ram: 4096
    65
    + name: small
    66
    + - cloud_properties:
    67
    + cpu: 2
    68
    + disk: 20480
    69
    + ram: 4096
    70
    + name: medium
    71
    + - cloud_properties:
    72
    + cpu: 2
    73
    + disk: 20480
    74
    + ram: 8192
    75
    + name: medium-memory-8GB
    76
    + - cloud_properties:
    77
    + cpu: 4
    78
    + disk: 20480
    79
    + ram: 8192
    80
    + name: large
    81
    + - cloud_properties:
    82
    + cpu: 8
    83
    + disk: 20480
    84
    + ram: 16384
    85
    + name: xlarge
    86
    + - cloud_properties:
    87
    + cpu: 2
    88
    + disk: 51200
    89
    + ram: 4096
    90
    + name: small-50GB
    91
    + - cloud_properties:
    92
    + cpu: 2
    93
    + disk: 51200
    94
    + ram: 4096
    95
    + name: small-50GB-ephemeral-disk
    96
    + - cloud_properties:
    97
    + cpu: 4
    98
    + disk: 102400
    99
    + ram: 8192
    100
    + name: small-100GB-ephemeral-disk
    101
    + - cloud_properties:
    102
    + cpu: 4
    103
    + disk: 102400
    104
    + ram: 8192
    105
    + name: small-highmem-100GB-ephemeral-disk
    106
    + - cloud_properties:
    107
    + cpu: 8
    108
    + disk: 20480
    109
    + ram: 16384
    110
    + name: small-highmem-16GB
    111
    + - cloud_properties:
    112
    + cpu: 1
    113
    + disk: 4096
    114
    + ram: 2048
    115
    + name: caas_small
    116
    + - cloud_properties:
    117
    + cpu: 1
    118
    + disk: 4096
    119
    + ram: 1024
    120
    + name: caas_small_api
    121
    + - cloud_properties:
    122
    + cpu: 1
    123
    + disk: 4096
    124
    + ram: 4096
    125
    + name: caas_medium
    126
    + - cloud_properties:
    127
    + cpu: 2
    128
    + disk: 8192
    129
    + ram: 4096
    130
    + name: service_medium
    131
    + - cloud_properties:
    132
    + cpu: 2
    133
    + disk: 10240
    134
    + ram: 2048
    135
    + name: service_medium_2G
    136
    + - cloud_properties:
    137
    + cpu: 1
    138
    + disk: 4096
    139
    + ram: 512
    140
    + name: portal_small
    141
    + - cloud_properties:
    142
    + cpu: 1
    143
    + disk: 4096
    144
    + ram: 1024
    145
    + name: portal_medium
    146
    + - cloud_properties:
    147
    + cpu: 1
    148
    + disk: 4096
    149
    + ram: 2048
    150
    + name: portal_large
    151
    152
    + vm_extensions:
    153
    + - cloud_properties:
    154
    + ports:
    155
    + - host: 3306
    156
    + name: mysql-proxy-lb
    157
    + - name: cf-router-network-properties
    158
    + - name: cf-tcp-router-network-properties
    159
    + - name: diego-ssh-proxy-network-properties
    160
    + - name: cf-haproxy-network-properties
    161
    + - cloud_properties:
    162
    + disk: 51200
    163
    + name: small-50GB
    164
    + - cloud_properties:
    165
    + disk: 102400
    166
    + name: small-highmem-100GB
    167
    168
    + compilation:
    169
    + az: z1
    170
    + network: default
    171
    + reuse_compilation_vms: true
    172
    + vm_type: large
    173
    + workers: 5
    174
    175
    + networks:
    176
    + - name: default
    177
    + subnets:
    178
    + - azs:
    179
    + - z1
    180
    + - z2
    181
    + - z3
    182
    + - z4
    183
    + - z5
    184
    + - z6
    185
    + cloud_properties:
    186
    + name: Internal
    187
    + dns:
    188
    + - 8.8.8.8
    189
    + gateway: 10.30.20.23
    190
    + range: 10.30.0.0/16
    191
    + reserved:
    192
    + - 10.30.0.0 - 10.30.111.40
    193
    + - name: public
    194
    + subnets:
    195
    + - azs:
    196
    + - z1
    197
    + - z2
    198
    + - z3
    199
    + - z4
    200
    + - z5
    201
    + - z6
    202
    + cloud_properties:
    203
    + name: External
    204
    + dns:
    205
    + - 8.8.8.8
    206
    + gateway: 115.68.46.177
    207
    + range: 115.68.46.176/28
    208
    + reserved:
    209
    + - 115.68.46.176 - 115.68.46.188
    210
    + static:
    211
    + - 115.68.46.189 - 115.68.46.190
    212
    + type: manual
    213
    + - name: service_private
    214
    + subnets:
    215
    + - azs:
    216
    + - z1
    217
    + - z2
    218
    + - z3
    219
    + - z4
    220
    + - z5
    221
    + - z6
    222
    + cloud_properties:
    223
    + name: Internal
    224
    + dns:
    225
    + - 8.8.8.8
    226
    + gateway: 10.30.20.23
    227
    + range: 10.30.0.0/16
    228
    + reserved:
    229
    + - 10.30.0.0 - 10.30.106.255
    230
    + static:
    231
    + - 10.30.107.1 - 10.30.107.255
    232
    + - name: service_public
    233
    + subnets:
    234
    + - azs:
    235
    + - z1
    236
    + - z2
    237
    + - z3
    238
    + - z4
    239
    + - z5
    240
    + - z6
    241
    + cloud_properties:
    242
    + name: External
    243
    + dns:
    244
    + - 8.8.8.8
    245
    + gateway: 115.68.47.161
    246
    + range: 115.68.47.160/24
    247
    + reserved:
    248
    + - 115.68.47.161 - 115.68.47.174
    249
    + static:
    250
    + - 115.68.47.175 - 115.68.47.185
    251
    + type: manual
    252
    + - name: portal_service_public
    253
    + subnets:
    254
    + - azs:
    255
    + - z1
    256
    + - z2
    257
    + - z3
    258
    + - z4
    259
    + - z5
    260
    + - z6
    261
    + cloud_properties:
    262
    + name: External
    263
    + dns:
    264
    + - 8.8.8.8
    265
    + gateway: 115.68.46.209
    266
    + range: 115.68.46.208/28
    267
    + reserved:
    268
    + - 115.68.46.216 - 115.68.46.222
    269
    + static:
    270
    + - 115.68.46.214
    271
    + type: manual
    272
    273
    + disk_types:
    274
    + - disk_size: 1024
    275
    + name: default
    276
    + - disk_size: 1024
    277
    + name: 1GB
    278
    + - disk_size: 2048
    279
    + name: 2GB
    280
    + - disk_size: 4096
    281
    + name: 4GB
    282
    + - disk_size: 5120
    283
    + name: 5GB
    284
    + - disk_size: 8192
    285
    + name: 8GB
    286
    + - disk_size: 10240
    287
    + name: 10GB
    288
    + - disk_size: 20480
    289
    + name: 20GB
    290
    + - disk_size: 30720
    291
    + name: 30GB
    292
    + - disk_size: 51200
    293
    + name: 50GB
    294
    + - disk_size: 102400
    295
    + name: 100GB
    296
    + - disk_size: 1048576
    297
    + name: 1TB
    298
    299
    + stemcells:
    300
    + - alias: default
    301
    + os: ubuntu-trusty
    302
    + version: '3309'
    303
    304
    + releases:
    305
    + - name: paasta-rabbitmq
    306
    + version: '2.0'
    307
    308
    + update:
    309
    + canaries: 1
    310
    + canary_watch_time: 30000-180000
    311
    + max_in_flight: 6
    312
    + update_watch_time: 30000-180000
    313
    314
    + instance_groups:
    315
    + - azs:
    316
    + - z5
    317
    + instances: 1
    318
    + name: rmq
    319
    + networks:
    320
    + - name: service_private
    321
    + static_ips:
    322
    + - 10.30.107.193
    323
    + stemcell: default
    324
    + syslog_aggregator:
    325
    + templates:
    326
    + - name: rabbitmq-server
    327
    + release: paasta-rabbitmq
    328
    + vm_type: minimal
    329
    + - azs:
    330
    + - z5
    331
    + instances: 1
    332
    + name: haproxy
    333
    + networks:
    334
    + - name: service_private
    335
    + static_ips:
    336
    + - 10.30.107.192
    337
    + stemcell: default
    338
    + syslog_aggregator:
    339
    + templates:
    340
    + - name: rabbitmq-haproxy
    341
    + release: paasta-rabbitmq
    342
    + vm_type: minimal
    343
    + - azs:
    344
    + - z5
    345
    + instances: 1
    346
    + name: paasta-rmq-broker
    347
    + networks:
    348
    + - name: service_private
    349
    + static_ips:
    350
    + - 10.30.107.191
    351
    + stemcell: default
    352
    + syslog_aggregator:
    353
    + templates:
    354
    + - name: rabbitmq-broker
    355
    + release: paasta-rabbitmq
    356
    + vm_type: minimal
    357
    + - azs:
    358
    + - z5
    359
    + instances: 1
    360
    + lifecycle: errand
    361
    + name: broker-registrar
    362
    + networks:
    363
    + - name: service_private
    364
    + properties:
    365
    + broker:
    366
    + host: "<redacted>"
    367
    + name: "<redacted>"
    368
    + password: "<redacted>"
    369
    + port: "<redacted>"
    370
    + protocol: "<redacted>"
    371
    + username: "<redacted>"
    372
    + stemcell: default
    373
    + templates:
    374
    + - name: broker-registrar
    375
    + release: paasta-rabbitmq
    376
    + vm_type: minimal
    377
    + - azs:
    378
    + - z5
    379
    + instances: 1
    380
    + lifecycle: errand
    381
    + name: broker-deregistrar
    382
    + networks:
    383
    + - name: service_private
    384
    + properties:
    385
    + broker:
    386
    + host: "<redacted>"
    387
    + name: "<redacted>"
    388
    + password: "<redacted>"
    389
    + port: "<redacted>"
    390
    + protocol: "<redacted>"
    391
    + username: "<redacted>"
    392
    + stemcell: default
    393
    + templates:
    394
    + - name: broker-deregistrar
    395
    + release: paasta-rabbitmq
    396
    + vm_type: minimal
    397
    398
    + name: paasta-rabbitmq-service
    399
    400
    + properties:
    401
    + broker:
    402
    + host: "<redacted>"
    403
    + name: "<redacted>"
    404
    + password: "<redacted>"
    405
    + protocol: "<redacted>"
    406
    + username: "<redacted>"
    407
    + cf:
    408
    + admin_password: "<redacted>"
    409
    + admin_username: "<redacted>"
    410
    + api_url: "<redacted>"
    411
    + domain: "<redacted>"
    412
    + rabbitmq-broker:
    413
    + cc_endpoint: "<redacted>"
    414
    + logging:
    415
    + level: "<redacted>"
    416
    + print_stack_traces: "<redacted>"
    417
    + rabbitmq:
    418
    + administrator:
    419
    + password: "<redacted>"
    420
    + username: "<redacted>"
    421
    + management_domain: "<redacted>"
    422
    + operator_set_policy:
    423
    + enabled: "<redacted>"
    424
    + policy_definition: "<redacted>"
    425
    + policy_name: "<redacted>"
    426
    + policy_priority: "<redacted>"
    427
    + ssl: "<redacted>"
    428
    + route: "<redacted>"
    429
    + service:
    430
    + name: "<redacted>"
    431
    + password: "<redacted>"
    432
    + plan_uuid: "<redacted>"
    433
    + username: "<redacted>"
    434
    + uuid: "<redacted>"
    435
    + rabbitmq-haproxy:
    436
    + stats:
    437
    + password: "<redacted>"
    438
    + username: "<redacted>"
    439
    + rabbitmq-server:
    440
    + administrators:
    441
    + broker:
    442
    + password: "<redacted>"
    443
    + username: "<redacted>"
    444
    + management:
    445
    + password: "<redacted>"
    446
    + username: "<redacted>"
    447
    + plugins:
    448
    + - "<redacted>"
    449
    + - "<redacted>"
    450
    + - "<redacted>"
    451
    + ports:
    452
    + - "<redacted>"
    453
    + - "<redacted>"
    454
    + - "<redacted>"
    455
    + - "<redacted>"
    456
    + - "<redacted>"
    457
    + - "<redacted>"
    458
    + - "<redacted>"
    459
    + - "<redacted>"
    460
    + restart_statsdb_cron_schedule: "<redacted>"
    461
    462
    Continue? [yN]: y
    463
    464
    Task 8070
    465
    466
    Task 8070 | 06:16:40 | Preparing deployment: Preparing deployment (00:00:02)
    467
    Task 8070 | 06:16:43 | Preparing package compilation: Finding packages to compile (00:00:00)
    468
    Task 8070 | 06:16:43 | Compiling packages: cf-cli/68cbd378bc91c97fd0847075d71528c3eb1f7928
    469
    Task 8070 | 06:16:43 | Compiling packages: java/4cc1119c49707a07d69b3863914b6f1307e611b5
    470
    Task 8070 | 06:16:43 | Compiling packages: rabbitmq-common/a1ceb4166602035b5e8783f2d90a2048a654875f
    471
    Task 8070 | 06:16:43 | Compiling packages: rabbitmq-broker/66260363d9b0ee0c671adc4a9b5e38453652fc06
    472
    Task 8070 | 06:16:43 | Compiling packages: haproxy/f0f2335dc5e7cab5c8a7232fd4aa9d92cbc8dba8
    473
    Task 8070 | 06:19:23 | Compiling packages: cf-cli/68cbd378bc91c97fd0847075d71528c3eb1f7928 (00:02:40)
    474
    Task 8070 | 06:19:23 | Compiling packages: rabbitmq-syslog-aggregator/a1662acacf8b2ef2ff54707681b125370544c824
    475
    Task 8070 | 06:19:25 | Compiling packages: rabbitmq-common/a1ceb4166602035b5e8783f2d90a2048a654875f (00:02:42)
    476
    Task 8070 | 06:19:25 | Compiling packages: golang-1.6.1/7c83e83f822259c6324742e3dfc5d4aaae25e9e6
    477
    Task 8070 | 06:19:34 | Compiling packages: java/4cc1119c49707a07d69b3863914b6f1307e611b5 (00:02:51)
    478
    Task 8070 | 06:19:34 | Compiling packages: rabbitmq-server/c93764197128c6e731899062f1cc33aef9cef053
    479
    Task 8070 | 06:19:35 | Compiling packages: rabbitmq-broker/66260363d9b0ee0c671adc4a9b5e38453652fc06 (00:02:52)
    480
    Task 8070 | 06:19:35 | Compiling packages: erlang/d689b1d899513421b211ded55d614407a1b51ad6
    481
    Task 8070 | 06:19:51 | Compiling packages: rabbitmq-syslog-aggregator/a1662acacf8b2ef2ff54707681b125370544c824 (00:00:28)
    482
    Task 8070 | 06:20:04 | Compiling packages: rabbitmq-server/c93764197128c6e731899062f1cc33aef9cef053 (00:00:30)
    483
    Task 8070 | 06:20:20 | Compiling packages: haproxy/f0f2335dc5e7cab5c8a7232fd4aa9d92cbc8dba8 (00:03:37)
    484
    Task 8070 | 06:20:28 | Compiling packages: golang-1.6.1/7c83e83f822259c6324742e3dfc5d4aaae25e9e6 (00:01:03)
    485
    Task 8070 | 06:20:28 | Compiling packages: rabbitmq-cluster-migration-tool/aa2db9b54d0d87e67b4b7ef7ae1854ebe6cef867
    486
    Task 8070 | 06:20:28 | Compiling packages: rabbitmq-upgrade-preparation/3ef7571fb3896b0c2260fd8063e47dfd4802a81c (00:00:27)
    487
    Task 8070 | 06:20:57 | Compiling packages: rabbitmq-cluster-migration-tool/aa2db9b54d0d87e67b4b7ef7ae1854ebe6cef867 (00:00:29)
    488
    Task 8070 | 06:29:01 | Compiling packages: erlang/d689b1d899513421b211ded55d614407a1b51ad6 (00:09:26)
    489
    Task 8070 | 06:30:08 | Creating missing vms: rmq/a4ef4c7e-4776-411d-8317-b2b059e416dd (0)
    490
    Task 8070 | 06:30:08 | Creating missing vms: haproxy/a30fb543-000d-4f74-b62d-7418da0e6101 (0)
    491
    Task 8070 | 06:30:08 | Creating missing vms: paasta-rmq-broker/52629ddb-32c9-4097-b9f6-e5dc0aff55ce (0) (00:01:28)
    492
    Task 8070 | 06:31:38 | Creating missing vms: rmq/a4ef4c7e-4776-411d-8317-b2b059e416dd (0) (00:01:30)
    493
    Task 8070 | 06:31:39 | Creating missing vms: haproxy/a30fb543-000d-4f74-b62d-7418da0e6101 (0) (00:01:31)
    494
    Task 8070 | 06:31:40 | Updating instance rmq: rmq/a4ef4c7e-4776-411d-8317-b2b059e416dd (0) (canary) (00:01:00)
    495
    Task 8070 | 06:32:40 | Updating instance haproxy: haproxy/a30fb543-000d-4f74-b62d-7418da0e6101 (0) (canary) (00:00:55)
    496
    Task 8070 | 06:33:35 | Updating instance paasta-rmq-broker: paasta-rmq-broker/52629ddb-32c9-4097-b9f6-e5dc0aff55ce (0) (canary) (00:01:07)
    497
    498
    Task 8070 Started Thu Sep 13 06:16:40 UTC 2018
    499
    Task 8070 Finished Thu Sep 13 06:34:42 UTC 2018
    500
    Task 8070 Duration 00:18:02
    501
    Task 8070 done
    502
    503
    Succeeded
    Copied!
  • 배포된 RabbitMQ 서비스팩을 확인한다.
  • 사용 예시
    1
    $bosh -e micro-bosh -d paasta-rabbitmq-service vms
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Task 8077. Done
    5
    6
    Deployment 'paasta-rabbitmq-service'
    7
    8
    Instance Process State AZ IPs VM CID VM Type Active
    9
    haproxy/a30fb543-000d-4f74-b62d-7418da0e6101 running z5 10.30.107.192 vm-fbd4a04a-5346-4e00-b793-17c327f90aa7 minimal true
    10
    paasta-rmq-broker/52629ddb-32c9-4097-b9f6-e5dc0aff55ce running z5 10.30.107.191 vm-5238f05b-ec4f-449c-ab1d-a1a5b932d76e minimal true
    11
    rmq/a4ef4c7e-4776-411d-8317-b2b059e416dd running z5 10.30.107.193 vm-f8d8a62d-bfc4-442e-8306-9f133ebfc518 minimal true
    12
    13
    3 vms
    14
    15
    Succeeded
    Copied!

2.4. RabbitMQ 서비스 브로커 등록

RabbitMQ 서비스팩 배포가 완료 되었으면 Application에서 서비스 팩을 사용하기 위해서 먼저 RabbitMQ 서비스 브로커를 등록해 주어야 한다. 서비스 브로커 등록시에는 PaaS-TA에서 서비스 브로커를 등록할 수 있는 사용자로 로그인 하여야 한다
서비스 브로커 목록을 확인한다.
$ cf service-brokers
rabbitmq 서비스 브로커를 등록한다.
$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩 URL(IP)}
서비스팩 이름 : 서비스 팩 관리를 위해 PaaS-TA에서 보여지는 명칭이다. 서비스 Marketplace에서는 각각의 API 서비스 명이 보여지니 여기서 명칭은 서비스팩 리스트의 명칭이다. 서비스팩 사용자ID / 비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID입니다. 서비스팩도 하나의 API 서버이기 때문에 아무나 접근을 허용할 수 없어 접근이 가능한 ID/비밀번호를 입력한다. 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL을 입력한다.
$ cf create-service-broker rabbitmq-service-broker admin admin http://10.30.107.191:4567}
등록된 RabbitMQ 서비스 브로커를 확인한다.
$ cf service-brokers

접근 가능한 서비스 목록을 확인한다.

$ cf service-access
  • 서비스 브로커 등록시 최초에는 접근을 허용하지 않는다. 따라서 access는 none으로 설정된다.

특정 조직에 해당 서비스 접근 허용을 할당하고 접근 서비스 목록을 다시 확인한다. (전체 조직)

$ cf enable-service-access p-rabbitmq $ cf service-access

3. RabbitMQ 연동 Sample App 설명

본 Sample App은 PaaS-TA에 배포되며 RabbitMQ의 서비스를 Provision과 Bind를 한 상태에서 사용이 가능하다.

3.1. Sample App 구조

Sample App은 PaaS-TA에 App으로 배포가 된다. 배포 완료 후 정상적으로 App이 구동되면 curl 명령어로 App url를 입력하면 RabbitMQ 환경정보(서비스 연결 정보)를 보여주는 url 페이지를 제공한다.
Sample App 구조는 다음과 같다.
이름
설명
lib
Sample 소스디렉토리
manifest.yml
PaaS-TA에 app 배포시 필요한 설정을 저장하는 파일
Gemfile
Sample App 구동시 필요한 ruby gem 설정 파일
config.ru
Sample App 구동 파일

PaaSTA-Sample-Apps.zip 파일 압축을 풀고 Service 폴더안에 있는 RabbitMQ Sample Web App인 rabbit-labrat을 복사한다.

$ ls -all

3.2. PaaS-TA에서 서비스 신청

Sample App에서 RabbitMQ 서비스를 사용하기 위해서는 서비스 신청(Provision)을 해야 한다. *참고: 서비스 신청시 PaaS-TA에서 서비스를 신청 할 수 있는 사용자로 로그인이 되어 있어야 한다.

먼저 PaaS-TA Marketplace에서 서비스가 있는지 확인을 한다.

$ cf marketplace

Marketplace에서 원하는 서비스가 있으면 서비스 신청(Provision)을 한다.

$ cf create-service {서비스명} {서비스 플랜} {내 서비스명}
  • 서비스명 : p-rabbitmq로 Marketplace에서 보여지는 서비스 명칭이다.
  • 서비스플랜 : 서비스에 대한 정책으로 plans에 있는 정보 중 하나를 선택한다. RabbitMQ 서비스는 standard plan만 지원한다.
  • 내 서비스명 : 내 서비스에서 보여지는 명칭이다. 이 명칭을 기준으로 환경 설정 정보를 가져온다.
$ cf create-service p-rabbitmq standard rabbitmq-service-instance

생성된 rabbitmq 서비스 인스턴스를 확인한다.

$ cf services

3.3. Sample App에 서비스 바인드 신청 및 App 확인

서비스 신청이 완료되었으면 Sample App 에서는 생성된 서비스 인스턴스를 Bind 하여 App에서 RabbitMQ 서비스를 이용한다.
  • 참고: 서비스 Bind 신청시 PaaS-TA에서 서비스 Bind 신청 할 수 있는 사용자로 로그인이 되어 있어야 한다.

Sample App 디렉토리로 이동하여 manifest 파일을 확인한다.

$ cd rabbit-labrat
$ vi manifest.yml
applications:
  • name: lab-rat # 배포할 App 이름
  • command: puma # 배포시 명령어

--no-start 옵션으로 App을 배포한다.

--no-start: App 배포시 구동은 하지 않는다.
$cf push --no-start

배포된 Sample App을 확인하고 로그를 수행한다.

$cf apps
$ cf logs lab-rat} // cf logs {배포된 App명}}

Sample App에서 생성한 서비스 인스턴스 바인드 신청을 한다.

cf bind-service lab-rat rabbitmq-service-instance

바인드가 적용되기 위해서 App을 재기동한다.

cf restart lab-rat

App이 정상적으로 RabbitMQ 서비스를 사용하는지 확인한다.

curl lab-rat.115.68.46.186.xip.io //- curl 로 확인
Last modified 1yr ago