배포 파이프라인 설치 가이드

1. 문서 개요

1.1 목적

본 문서(배포 파이프라인 서비스팩 설치 가이드)는 개방형 PaaS 플랫폼 고도화 및 개발자 지원 환경 기반의 Open PaaS에서 제공되는 서비스팩인 배포 파이프라인 서비스팩을 Bosh를 이용하여 설치 및 서비스 등록하는 방법을 기술하였다. PaaS-TA 3.5 버전부터는 Bosh2.0 기반으로 deploy를 진행하며 기존 Bosh1.0 기반으로 설치를 원할경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2 범위

설치 범위는 배포 파이프라인 서비스팩을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3 시스템 구성도

본 문서의 설치된 시스템 구성도입니다. 배포 파이프라인 Server, 형상관리 서비스 브로커로 최소사항을 구성하였다.
VM 명
인스턴스 수
vCPU 수
메모리(GB)
디스크(GB)
HAProxy
1
1
2
Root 4G
WEB UI
N
1
2
Root 4G
Service broker
1
1
2
Root 4G
Common API
N
1
2
Root 4G
DeliveryPipeline API
N
1
2
Root 4G
Inspection API
N
1
2
Root 4G
Storage API
1
1
2
Root 4G
Scheduler
1
1
2
Root 4G
DeliveryPipeline
N
1
2
Root 8G + 영구디스크 10G
Inspection
1
1
2
Root 4G
Storage
1
1
4
Root 4G + 영구디스크 50G
DBMS(mariadb)
1
1
4
Root 6G + 영구디스크 4G
Postgres
1
1
2
Root 6G + 영구디스크 4G

1.4 참고 자료

2. 배포 파이프라인 서비스팩 설치

2.1 설치 전 준비사항

본 설치 가이드는 Linux 환경에서 설치하는 것을 기준으로 하였다. 서비스팩 설치를 위해서는 BOSH 2.0과 PaaS-TA 5.0, PaaS-TA 포털이 설치되어 있어야 한다.
  • PaaS-TA에서 제공하는 압축된 릴리즈 파일들을 다운받는다. (PaaSTA-Deployment.zip, PaaSTA-Sample-Apps.zip, PaaSTA-Services.zip)
  • 다운로드 위치
    ```

    Deployment 다운로드 파일 위치 경로

    ~/workspace/paasta-5.0/deployment/service-deployment/paasta-delivery-pipeline-service

릴리즈 다운로드 파일 위치 경로

~/workspace/paasta-5.0/release/service
1
### <div id='22'/> 2.2 배포 파이프라인 서비스 릴리즈 업로드
2
3
- 업로드 되어 있는 릴리즈 목록을 확인한다.
4
5
- **사용 예시**
Copied!
$ bosh -e micro-bosh releases Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
Name Version Commit Hash binary-buildpack 1.0.32 2399a07 bosh-dns 1.12.0 5d607ed bosh-dns-aliases 0.0.3 eca9c5a bpm 1.1.0 27e1c8f capi 1.83.0 6b3cd37 cf-cli 1.16.0 05d9348 cf-networking 2.23.0 eb7f9459 cf-smoke-tests 40.0.112 627f266 cf-syslog-drain 10.2 684147e cflinuxfs3 0.113.0 567e67d credhub 2.4.0 7d6110b+ diego 2.34.0 c91f86b dotnet-core-buildpack 2.2.12 668dfe2 garden-runc 1.19.3 a560db3+ go-buildpack 1.8.40 b4dedb6 haproxy 9.6.1 5754ced java-buildpack 4.19.1 180acdd log-cache 2.2.2 0a03032 loggregator 105.5 d5153da3 loggregator-agent 3.9 d344140 nats 27 bf8cb86 nginx-buildpack 1.0.13 cf17b33 nodejs-buildpack 1.6.51 7cc80a9 paasta-portal-api-release 2.0 c4da869+ paasta-portal-ui-release 2.0 3d1096b+ php-buildpack 4.3.77 ca96e60 postgres 38 b4926da pxc 0.18.0 acdf39f python-buildpack 1.6.34 e7b7e15 r-buildpack 1.0.10 a9a0a9f routing 0.188.0 db449e4 ruby-buildpack 1.7.40 fa9e7c5 silk 2.23.0 cdb44d5 staticfile-buildpack 1.4.43 aeef141 statsd-injector 1.10.0 b81ab23 uaa 72.0 804589c
(*) Currently deployed (+) Uncommitted changes
36 releases
Succeeded
1
- 배포 파이프라인 서비스 릴리즈가 업로드 되어 있지 않은 것을 확인
2
3
- 배포 파이프라인 서비스 릴리즈 파일을 업로드한다.
4
5
- **사용 예시**
Copied!
$ bosh -e micro-bosh upload-release paasta-delivery-pipeline-release.tgz Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)

################################################## 100.00% 191.88 MiB/s 6s

Task 1422
Task 1422 | 01:32:50 | Extracting release: Extracting release (00:00:14) Task 1422 | 01:33:04 | Verifying manifest: Verifying manifest (00:00:00) Task 1422 | 01:33:05 | Resolving package dependencies: Resolving package dependencies (00:00:00) Task 1422 | 01:33:05 | Creating new packages: cf-cli/64b4059c9661381ffa65fbebaf187beb2d40b4e047d2f331a40237c4b89ef70d (00:00:00) Task 1422 | 01:33:05 | Creating new packages: ci-server/cbbf6f8cadc68f882b4191d3b53cd6b4d459b64f6ce4d120b19a897a290c3bfa (00:00:11) Task 1422 | 01:33:16 | Creating new packages: delivery-pipeline-api/2be471625f419734585533258ee9d8779c73ba60aa9db2ba235415b2a068ed7a (00:00:00) Task 1422 | 01:33:16 | Creating new packages: delivery-pipeline-binary-storage-api/f5b2bf1fd3a5ece26a3f853606af0ab5fbc6449341e9044b8d8c6ce1db920e50 (00:00:01) Task 1422 | 01:33:17 | Creating new packages: delivery-pipeline-common-api/42028f373b0dc6c8c27aa0db430544f8793e9a5695c126f558f083d7dfb4dcfe (00:00:01) Task 1422 | 01:33:18 | Creating new packages: delivery-pipeline-inspection-api/c938e8bcc80f61b8beb4e42cdda8207ba3cd6eeee3f4f85e4efb9c1220d3d00d (00:00:00) Task 1422 | 01:33:18 | Creating new packages: delivery-pipeline-scheduler/f66ad1272053f4f438c9aaa95620a2e2d3a559cc4b97ccaf1e8eafe146402a07 (00:00:01) Task 1422 | 01:33:19 | Creating new packages: delivery-pipeline-service-broker/a9e64ede4b009e670520812ceafcf15a174b0fb302c12d9fa48f86af4dcc906d (00:00:01) Task 1422 | 01:33:20 | Creating new packages: delivery-pipeline-ui/28bab03f5f2cfab7229ba36644e3661aa6b6c555b26af333f40580a73cb88ed4 (00:00:00) Task 1422 | 01:33:20 | Creating new packages: git/cc74c2d92a23b93ec3eec74bddc256e2e150c8c0d215c103ae7287c87091704f (00:00:01) Task 1422 | 01:33:21 | Creating new packages: gradle-2.14.1/7b6f5313b841250951f00abd67d2d400b608818170ebd61bd1b1b1c0da954e36 (00:00:00) Task 1422 | 01:33:21 | Creating new packages: gradle-3.5/4abbbda03f3dd5305bd9b098fc164e91d8cb56b06acac75653d1beecc1036478 (00:00:02) Task 1422 | 01:33:23 | Creating new packages: haproxy/bb90d8f2bd0b933565b1a5e19a7be768202a96888e37ffa496aca32601914e27 (00:00:00) Task 1422 | 01:33:23 | Creating new packages: java/3a86c4255298566216c2ffe755c72f4d9149ec407af4da5ece2c36aaa68d700c (00:00:05) Task 1422 | 01:33:28 | Creating new packages: mariadb/467dceb9fb6dbc9df546c837c92895243c3a173d9dae773ae7ff9518ee3eac0d (00:00:25) Task 1422 | 01:33:53 | Creating new packages: maven/d97755a5b48de92dc84bd1adeb9d0e95cc8de2852330cfcd2a07e11409d29a7f (00:00:00) Task 1422 | 01:33:53 | Creating new packages: postgres/637cedb59d1293307ee045703ce7c29e2a7ac43ee4c2dae11cde54124c1893b1 (00:00:03) Task 1422 | 01:33:56 | Creating new packages: python/6ecc99084b929c8382f8a81410e1b9f13728b57c684bcb13c4f5e490f4ad9620 (00:00:01) Task 1422 | 01:33:57 | Creating new packages: sonarqube/f406d1521ae046f47ec307a55b993cdd5b92e662acae12133ec7b69ec5ebe90b (00:00:04) Task 1422 | 01:34:01 | Creating new packages: sshpass/8827aae6cf59a494d61f7ff4242948b89399717295848b4bf9e789fe8d573ba6 (00:00:00) Task 1422 | 01:34:01 | Creating new packages: swift-all-in-one/18bf9d0780d9c4b978424bfda05e7c8494b53af7fbd7bd1f8a3bf65ed0ae1ea1 (00:00:09) Task 1422 | 01:34:10 | Creating new jobs: binary_storage/38577751f0371880bdaac74f0e41cbb7bd3593864a4cb59de3b99373c72c8d5e (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: ci_server/5f344680ba5ac7d9be67945cdf90b67022d015e150e5a0fffc92cb46c61b1708 (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-api/9ec74e0402ef6e85fc210a1387f24b144794a5a80939358f4116e3683bb8928c (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-binary-storage-api/049de0ae8e0fa4dc49f89ffcd6c7bf4ac010f1964c1bb1b6fb96674ab844e816 (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-common-api/a8036d1a5d0058443fb22d3fe83969dafc61b6ba16adb89bded895b138319eb3 (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-inspection-api/0268b94de5192de2b45b499fba5b9d2846a152c1579073fd4ec0892dc947c36d (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-scheduler/35b099743586f35258a4193a9f4614264bac1c24a03ed788b1b148680ac87cc0 (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-service-broker/e1c1bdc26af41e52e3b65ebb9d314b13141dc41b1ebb412c93c2d56bbe5a09c0 (00:00:00) Task 1422 | 01:34:10 | Creating new jobs: delivery-pipeline-ui/fb3c2a669a6461dea746898103b38529caf7c5586e01b03d4fa34fc39d8da30b (00:00:01) Task 1422 | 01:34:11 | Creating new jobs: haproxy/431ff2a761051ed514d6d9db2e0992872ec185b891b122d5a544452371199cf8 (00:00:00) Task 1422 | 01:34:11 | Creating new jobs: inspection/0dab247603ad6559232bb3fe2e0c271825786f0e66b738cccd993c75dd9fff20 (00:00:00) Task 1422 | 01:34:11 | Creating new jobs: mariadb/056f49979e3f6be18d4d0a599261facc99fcb9eb6a5e68c67295fcf1c2abb8fd (00:00:00) Task 1422 | 01:34:11 | Creating new jobs: postgres/1c0feb5d550e86a1c81d56b96e40b5bb9d3f0dd085f3ed012deb21e8c55a38d5 (00:00:00) Task 1422 | 01:34:11 | Release has been created: paasta-delivery-pipeline-release/1.0 (00:00:00)
Task 1422 Started Fri Nov 22 01:32:50 UTC 2019 Task 1422 Finished Fri Nov 22 01:34:11 UTC 2019 Task 1422 Duration 00:01:21 Task 1422 done
Succeeded
1
- 업로드 된 배포 파이프라인 서비스 릴리즈를 확인한다.
2
3
- **사용 예시**
Copied!
$ bosh -e micro-bosh releases Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
Name Version Commit Hash binary-buildpack 1.0.32 2399a07 bosh-dns 1.12.0 5d607ed bosh-dns-aliases 0.0.3 eca9c5a bpm 1.1.0 27e1c8f capi 1.83.0 6b3cd37 cf-cli 1.16.0 05d9348 cf-networking 2.23.0 eb7f9459 cf-smoke-tests 40.0.112 627f266 cf-syslog-drain 10.2 684147e cflinuxfs3 0.113.0 567e67d credhub 2.4.0 7d6110b+ diego 2.34.0 c91f86b dotnet-core-buildpack 2.2.12 668dfe2 garden-runc 1.19.3 a560db3+ go-buildpack 1.8.40 b4dedb6 haproxy 9.6.1 5754ced java-buildpack 4.19.1 180acdd log-cache 2.2.2 0a03032 loggregator 105.5 d5153da3 loggregator-agent 3.9 d344140 nats 27 bf8cb86 nginx-buildpack 1.0.13 cf17b33 nodejs-buildpack 1.6.51 7cc80a9 paasta-delivery-pipeline-release 1.0 2da5df3 paasta-portal-api-release 2.0 c4da869+ paasta-portal-ui-release 2.0 3d1096b+ php-buildpack 4.3.77 ca96e60 postgres 38 b4926da pxc 0.18.0 acdf39f python-buildpack 1.6.34 e7b7e15 r-buildpack 1.0.10 a9a0a9f routing 0.188.0 db449e4 ruby-buildpack 1.7.40 fa9e7c5 silk 2.23.0 cdb44d5 staticfile-buildpack 1.4.43 aeef141 statsd-injector 1.10.0 b81ab23 uaa 72.0 804589c
(*) Currently deployed (+) Uncommitted changes
37 releases
Succeeded
1
- 배포 파이프라인 서비스 릴리즈가 업로드 되어 있는 것을 확인
2
3
- Deploy시 사용할 Stemcell을 확인한다.
4
5
- **사용 예시**
Copied!
$ bosh -e micro-bosh stemcells Name Version OS CPI CID bosh-vsphere-esxi-ubuntu-xenial-go_agent 315.64* ubuntu-xenial - sc-70ca5138-65f1-4b83-9a7a-87d959a3b5d9
(*) Currently deployed
1 stemcells
Succeeded
1
>Stemcell 목록이 존재 하지 않을 경우 BOSH 설치 가이드 문서를 참고 하여 Stemcell을 업로드를 해야 한다.
2
3
### <div id='23'/> 2.3 배포 파이프라인 서비스 Deployment 파일 수정 및 배포
4
5
BOSH Deployment manifest 는 components 요소 및 배포의 속성을 정의한 YAML 파일이다.
6
Deployment manifest 에는 sotfware를 설치 하기 위해서 어떤 Stemcell (OS, BOSH agent) 을 사용할것이며 Release (Software packages, Config templates, Scripts) 이름과 버전, VMs 용량, Jobs params 등을 정의가 되어 있다.
7
8
deployment 파일에서 사용하는 network, vm_type 등은 cloud config 를 활용하고 해당 가이드는 Bosh2.0 가이드를 참고한다.
9
10
- cloud config 내용 조회
11
12
- **사용 예시**
Copied!
$ bosh -e micro-bosh cloud-config Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
azs:
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z1
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z2
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z3
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z4
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z5
  • cloud_properties:
    datacenters:
    • clusters:
      • BD-HA:
        resource_pool: CF_BOSH2_Pool
        name: BD-HA
        name: z6
        compilation:
        az: z1
        network: default
        reuse_compilation_vms: true
        vm_type: large
        workers: 5
        disk_types:
  • disk_size: 1024
    name: default
  • disk_size: 1024
    name: 1GB
  • disk_size: 2048
    name: 2GB
  • disk_size: 4096
    name: 4GB
  • disk_size: 5120
    name: 5GB
  • disk_size: 8192
    name: 8GB
  • disk_size: 10240
    name: 10GB
  • disk_size: 20480
    name: 20GB
  • disk_size: 30720
    name: 30GB
  • disk_size: 51200
    name: 50GB
  • disk_size: 102400
    name: 100GB
  • disk_size: 1048576
    name: 1TB
    networks:
  • name: default
    subnets:
    • azs:
      • z1
      • z2
      • z3
      • z4
      • z5
      • z6
        cloud_properties:
        name: Internal
        dns:
      • 8.8.8.8
        gateway: 10.30.20.23
        range: 10.30.0.0/16
        reserved:
      • 10.30.0.0 - 10.30.111.40
  • name: public
    subnets:
    • azs:
      • z1
      • z2
      • z3
      • z4
      • z5
      • z6
        cloud_properties:
        name: External
        dns:
      • 8.8.8.8
        gateway: 115.68.46.177
        range: 115.68.46.176/28
        reserved:
      • 115.68.46.176 - 115.68.46.188
        static:
      • 115.68.46.189 - 115.68.46.190
        type: manual
  • name: service_private
    subnets:
    • azs:
      • z1
      • z2
      • z3
      • z4
      • z5
      • z6
        cloud_properties:
        name: Internal
        dns:
      • 8.8.8.8
        gateway: 10.30.20.23
        range: 10.30.0.0/16
        reserved:
      • 10.30.0.0 - 10.30.106.255
        static:
      • 10.30.107.1 - 10.30.107.255
  • name: service_public
    subnets:
    • azs:
      • z1
      • z2
      • z3
      • z4
      • z5
      • z6
        cloud_properties:
        name: External
        dns:
      • 8.8.8.8
        gateway: 115.68.47.161
        range: 115.68.47.160/24
        reserved:
      • 115.68.47.161 - 115.68.47.174
        static:
      • 115.68.47.175 - 115.68.47.185
        type: manual
  • name: portal_service_public
    subnets:
    • azs:
      • z1
      • z2
      • z3
      • z4
      • z5
      • z6
        cloud_properties:
        name: External
        dns:
      • 8.8.8.8
        gateway: 115.68.46.209
        range: 115.68.46.208/28
        reserved:
      • 115.68.46.216 - 115.68.46.222
        static:
      • 115.68.46.214
        type: manual
        vm_extensions:
  • cloud_properties:
    ports:
    • host: 3306
      name: mysql-proxy-lb
  • name: cf-router-network-properties
  • name: cf-tcp-router-network-properties
  • name: diego-ssh-proxy-network-properties
  • name: cf-haproxy-network-properties
  • cloud_properties:
    disk: 51200
    name: small-50GB
  • cloud_properties:
    disk: 102400
    name: small-highmem-100GB
    vm_types:
  • cloud_properties:
    cpu: 1
    disk: 8192
    ram: 1024
    name: minimal
  • cloud_properties:
    cpu: 1
    disk: 10240
    ram: 2048
    name: default
  • cloud_properties:
    cpu: 1
    disk: 30720
    ram: 4096
    name: small
  • cloud_properties:
    cpu: 2
    disk: 20480
    ram: 4096
    name: medium
  • cloud_properties:
    cpu: 2
    disk: 20480
    ram: 8192
    name: medium-memory-8GB
  • cloud_properties:
    cpu: 4
    disk: 20480
    ram: 8192
    name: large
  • cloud_properties:
    cpu: 8
    disk: 20480
    ram: 16384
    name: xlarge
  • cloud_properties:
    cpu: 2
    disk: 51200
    ram: 4096
    name: small-50GB
  • cloud_properties:
    cpu: 2
    disk: 51200
    ram: 4096
    name: small-50GB-ephemeral-disk
  • cloud_properties:
    cpu: 4
    disk: 102400
    ram: 8192
    name: small-100GB-ephemeral-disk
  • cloud_properties:
    cpu: 4
    disk: 102400
    ram: 8192
    name: small-highmem-100GB-ephemeral-disk
  • cloud_properties:
    cpu: 8
    disk: 20480
    ram: 16384
    name: small-highmem-16GB
  • cloud_properties:
    cpu: 1
    disk: 4096
    ram: 2048
    name: caas_small
  • cloud_properties:
    cpu: 1
    disk: 4096
    ram: 1024
    name: caas_small_api
  • cloud_properties:
    cpu: 1
    disk: 4096
    ram: 4096
    name: caas_medium
  • cloud_properties:
    cpu: 2
    disk: 8192
    ram: 4096
    name: service_medium
  • cloud_properties:
    cpu: 2
    disk: 10240
    ram: 2048
    name: service_medium_2G
Succeeded
1
- Deployment 파일을 서버 환경에 맞게 수정한다.
2
3
```yml
4
# paasta-delivery-pipeline-service 설정 파일 내용
5
name: paasta-delivery-pipeline-service # 서비스 배포이름(필수)
6
7
releases:
8
- name: paasta-delivery-pipeline-release # 서비스 릴리즈 이름(필수)
9
version: "latest" # 서비스 릴리즈 버전(필수):latest 시 업로드된 서비스 릴리즈 최신버전
10
11
stemcells:
12
- alias: default
13
os: ((stemcell_os))
14
version: "((stemcell_version))"
15
16
update:
17
canaries: 1 # canary 인스턴스 수(필수)
18
canary_watch_time: 30000-120000 # canary 인스턴스가 수행하기 위한 대기 시간(필수)
19
max_in_flight: 1 # non-canary 인스턴스가 병렬로 update 하는 최대 개수(필수)
20
update_watch_time: 30000-120000 # non-canary 인스턴스가 수행하기 위한 대기 시간(필수)
21
22
instance_groups:
23
- name: mariadb
24
azs:
25
- z5
26
instances: 1
27
persistent_disk_type: 2GB
28
vm_type: ((vm_type_small))
29
stemcell: default
30
networks:
31
- name: ((default_network_name))
32
static_ips:
33
- 10.30.107.68
34
templates:
35
- name: mariadb
36
release: paasta-delivery-pipeline-release
37
38
- name: postgres
39
azs:
40
- z5
41
instances: 1
42
persistent_disk_type: 2GB
43
vm_type: ((vm_type_small))
44
stemcell: default
45
networks:
46
- name: ((default_network_name))
47
static_ips:
48
- 10.30.107.82
49
templates:
50
- name: postgres
51
release: paasta-delivery-pipeline-release
52
53
- name: inspection
54
azs:
55
- z5
56
instances: 1
57
vm_type: ((vm_type_small))
58
stemcell: default
59
networks:
60
- name: ((default_network_name))
61
static_ips:
62
- 10.30.107.69
63
templates:
64
- name: inspection
65
release: paasta-delivery-pipeline-release
66
67
- name: haproxy
68
azs:
69
- z5
70
instances: 1
71
vm_type: ((vm_type_small))
72
stemcell: default
73
networks:
74
- name: ((default_network_name))
75
static_ips:
76
- 10.30.107.70
77
- name: ((public_network_name))
78
static_ips:
79
- 115.68.47.175
80
templates:
81
- name: haproxy
82
release: paasta-delivery-pipeline-release
83
84
- name: ci_server
85
azs:
86
- z5
87
instances: 2
88
persistent_disk_type: 4GB
89
vm_type: ((vm_type_small))
90
stemcell: default
91
networks:
92
- name: ((default_network_name))
93
static_ips:
94
- 10.30.107.71
95
- 10.30.107.72
96
templates:
97
- name: ci_server
98
release: paasta-delivery-pipeline-release
99
env:
100
bosh:
101
password: $6$4gDD3aV0rdqlrKC$2axHCxGKIObs6tAmMTqYCspcdvQXh3JJcvWOY2WGb4SrdXtnCyNaWlrf3WEqvYR2MYizEGp3kMmbpwBC6jsHt0
102
103
- name: binary_storage
104
azs:
105
- z5
106
instances: 1
107
persistent_disk_type: 4GB
108
vm_type: ((vm_type_small))
109
stemcell: default
110
networks:
111
- name: ((default_network_name))
112
static_ips:
113
- 10.30.107.39
114
templates:
115
- name: binary_storage
116
release: paasta-delivery-pipeline-release
117
118
- name: delivery-pipeline-common-api
119
azs:
120
- z5
121
instances: 1
122
vm_type: ((vm_type_small))
123
stemcell: default
124
networks:
125
- name: ((default_network_name))
126
static_ips:
127
- 10.30.107.66
128
templates:
129
- name: delivery-pipeline-common-api
130
release: paasta-delivery-pipeline-release
131
132
- name: delivery-pipeline-inspection-api
133
azs:
134
- z5
135
instances: 1
136
vm_type: ((vm_type_small))
137
stemcell: default
138
networks:
139
- name: ((default_network_name))
140
static_ips:
141
- 10.30.107.62
142
templates:
143
- name: delivery-pipeline-inspection-api
144
release: paasta-delivery-pipeline-release
145
146
- name: delivery-pipeline-binary-storage-api
147
azs:
148
- z5
149
instances: 1
150
vm_type: ((vm_type_small))
151
stemcell: default
152
networks:
153
- name: ((default_network_name))
154
static_ips:
155
- 10.30.107.61
156
templates:
157
- name: delivery-pipeline-binary-storage-api
158
release: paasta-delivery-pipeline-release
159
160
- name: delivery-pipeline-api
161
azs:
162
- z5
163
instances: 1
164
vm_type: ((vm_type_small))
165
stemcell: default
166
networks:
167
- name: ((default_network_name))
168
static_ips:
169
- 10.30.107.65
170
templates:
171
- name: delivery-pipeline-api
172
release: paasta-delivery-pipeline-release
173
174
- name: delivery-pipeline-service-broker
175
azs:
176
- z5
177
instances: 1
178
vm_type: ((vm_type_small))
179
stemcell: default
180
networks:
181
- name: ((default_network_name))
182
static_ips:
183
- 10.30.107.64
184
templates:
185
- name: delivery-pipeline-service-broker
186
release: paasta-delivery-pipeline-release
187
188
- name: delivery-pipeline-ui
189
azs:
190
- z5
191
instances: 1
192
vm_type: ((vm_type_small))
193
stemcell: default
194
networks:
195
- name: ((default_network_name))
196
static_ips:
197
- 10.30.107.67
198
templates:
199
- name: delivery-pipeline-ui
200
release: paasta-delivery-pipeline-release
201
202
- name: delivery-pipeline-scheduler
203
azs:
204
- z5
205
instances: 1
206
vm_type: ((vm_type_small))
207
stemcell: default
208
networks:
209
- name: ((default_network_name))
210
static_ips:
211
- 10.30.107.63
212
templates:
213
- name: delivery-pipeline-scheduler
214
release: paasta-delivery-pipeline-release
215
216
properties:
217
cf: # CLOUD FOUNDRY 설정 정보
218
uaa:
219
oauth:
220
info:
221
uri: https://uaa.<DOMAIN>.xip.io/userinfo
222
token:
223
check:
224
uri: https://uaa.<DOMAIN>.xip.io/check_token
225
access:
226
uri: https://uaa.<DOMAIN>.xip.io/oauth/token
227
logout:
228
uri: https://uaa.<DOMAIN>.xip.io/logout.do
229
authorization:
230
uri: https://uaa.<DOMAIN>.xip.io/oauth/authorize
231
client:
232
id: pipeclient
233
secret: clientsecret
234
api:
235
url: https://api.<DOMAIN>.xip.io/v2/service_instances/[SUID]/permissions
236
237
ci_server: # CI SERVER 설정 정보
238
password: '!paas_ta202'
239
admin_user:
240
username: 'admin'
241
password: '!paas_ta202'
242
http_url: '10.30' # CI SERVER 내부 IP 앞 두자리 입력 (e.g. 10.110.10.10 의 경우, "10.110" 입력)
243
http_port: 8088
244
ajp13_port: 8009
245
ssh:
246
username: vcap
247
password: c1oudc0w
248
port: 22
249
identity: "null" # PERM KEY 경로
250
key: "null"
251
credentials:
252
scope: "GLOBAL"
253
url: "/credentials/store/system/domain/_"
254
class_name: "com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl"
255
job:
256
name: "ci_server" # JOB 이름과 동일하게 설정
257
shared: # Shared 서비스 설정 정보
258
urls:
259
- http://10.30.107.71:8088
260
dedicated: # Dedicated 서비스 설정 정보
261
urls:
262
- http://10.30.107.72:8088
263
264
mariadb: # MARIA DB SERVER 설정 정보
265
port: 3306
266
admin_user:
267
password: "!paas_ta202"
268
host: 10.30.107.68
269
host_names:
270
- mariadb0
271
host_ips:
272
- 10.30.107.68
273
datasource:
274
url: jdbc:mysql://10.30.107.68:3306/delivery_pipeline?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Seoul&useLegacyDatetimeCode=false
275
username: root
276
password: "!paas_ta202"
277
driver_class_name: com.mysql.cj.jdbc.Driver
278
jpa:
279
database:
280
name: mysql
281
282
postgres: # POSTGRESQL SERVER 설정 정보
283
port: 5432
284
host: 10.30.107.82
285
vcap_password: c1oudc0w
286
datasource:
287
url: jdbc:postgresql://10.30.107.82:5432/sonar
288
username: "sonar"
289
password: "sonar"
290
database: "sonar"
291
292
inspection: # INSPECTION SERVER 설정 정보
293
url: 10.30.107.69
294
http_url: 'http://10.30.107.69'
295
http_port: 9000
296
admin:
297
username: admin
298
password: admin
299
300
binary_storage: # BINARY STORAGE SERVER 설정 정보
301
proxy_ip: 10.30.107.39 # 프록시 서버 IP(swift-keystone job의 static_ip, Object Storage 접속 IP)
302
proxy_port: 10008 # 프록시 서버 Port(Object Storage 접속 Port)
303
default_username: paasta-pipeline # 최초 생성되는 유저이름(Object Storage 접속 유저이름)
304
default_password: paasta-pipeline # 최초 생성되는 유저 비밀번호(Object Storage 접속 유저 비밀번호)
305
default_tenantname: paasta-pipeline # 최초 생성되는 테넌트 이름(Object Storage 접속 테넌트 이름)
306
default_email: [email protected] # 최소 생성되는 유저의 이메일
307
container: delivery-pipeline-container
308
auth_port: 5000
309
310
common_api: # COMMON API 설정 정보
311
url: http://10.30.107.70
312
server:
313
port: 8081
314
authorization:
315
id: admin
316
password: PaaS-TA
317
logging:
318
level: INFO
319
haproxy:
320
urls:
321
- 10.30.107.66
322
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
323
324
pipeline_api: # CI API 설정 정보
325
url: http://10.30.107.70
326
server:
327
port: 8082
328
authorization:
329
id: admin
330
password: PaaS-TA
331
http:
332
multipart:
333
max_file_size: 1000Mb
334
max_request_size: 1000Mb
335
logging:
336
level: INFO
337
haproxy:
338
urls:
339
- 10.30.107.65
340
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
341
342
inspection_api: # INSPECTION API 설정 정보
343
url: http://10.30.107.70
344
server:
345
port: 8083
346
http:
347
multipart:
348
max_file_size: 1000Mb
349
max_request_size: 1000Mb
350
logging:
351
level: INFO
352
authorization:
353
id: admin
354
password: PaaS-TA
355
haproxy:
356
urls:
357
- 10.30.107.62
358
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
359
360
binary_storage_api: # BINARY STORAGE API 설정 정보
361
http:
362
multipart:
363
max_file_size: 1000Mb
364
max_request_size: 1000Mb
365
server:
366
port: 8080
367
logging:
368
level: INFO
369
url: http://10.30.107.61
370
authorization:
371
id: admin
372
password: PaaS-TA
373
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
374
375
pipeline_ui: # UI 설정 정보
376
url: http://10.30.107.70
377
server:
378
port: 8084
379
http:
380
multipart:
381
max_file_size: 1000Mb
382
max_request_size: 1000Mb
383
logging:
384
level: INFO
385
haproxy:
386
urls:
387
- 10.30.107.67
388
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
389
390
pipeline_scheduler: # SCHEDULER 설정 정보
391
server:
392
port: 8080
393
logging:
394
level: INFO
395
quartz:
396
scheduler:
397
instance_name: paastaDeliveryPipelineScheduler
398
instance_id: AUTO
399
thread_pool:
400
thread_count: 5
401
job:
402
start_delay: 0
403
repeat_interval: 5000
404
description: PaaS-TA Delivery Pipeline Scheduler
405
key: StatisticsJob
406
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
407
408
pipeline_service_broker: # SERVICE BROKER 설정 정보
409
server:
410
port: 8080
411
logging:
412
controller:
413
level: INFO
414
service:
415
level: INFO
416
dashboard:
417
url: http://115.68.47.175:8084/dashboard/[SUID]/ # DASHBOARD URL : http://<HAPROXY>:<UI-PORT>/dashboard/[SUID]/
418
java_opts: '-XX:MaxMetaspaceSize=104857K -Xss349K -Xms681574K -XX:MetaspaceSize=104857K -Xmx681574K'
419
420
haproxy: # HAPROXY 설정 정보
421
url: 10.30.107.70
422
http_port: 8080
Copied!
  • deploy-delivery_pipeline-bosh2.0.sh 파일을 서버 환경에 맞게 수정한다.
    = vSphere : -o use-public-network-vsphere.yml
    = AWS : -o use-public-network-aws.yml
    = OpenStack : -o use-public-network-openstack.yml
    = Azure : -o use-public-network-azure.yml
    = GCP : -o use-public-network-gcp.yml
1
#!/bin/bash
2
3
bosh -e micro-bosh -d paasta-delivery-pipeline-service deploy paasta_delivery_pipeline_bosh2.0.yml \
4
-o use-public-network-vsphere.yml \
5
-v default_network_name=service_private \
6
-v public_network_name=service_public \
7
-v stemcell_os=ubuntu-xenial \
8
-v stemcell_version=latest \
9
-v vm_type_small=minimal
Copied!
  • 배포 파이프라인 서비스팩을 배포한다.
  • 사용 예시
    ``` $ sh deploy_delivery_pipeline_bosh2.0.sh Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
Using deployment 'paasta-delivery-pipeline-service' Task 4506
  • azs:
    • cloud_properties:
  • datacenters:
    • clusters:
    • BD-HA:
  • resource_pool: PaaS_TA_46_Pools
  • name: BD-HA
  • name: z1
    • cloud_properties:
  • datacenters:
    • clusters:
    • BD-HA:
  • resource_pool: PaaS_TA_46_Pools
  • name: BD-HA
... ((생략)) ...
  • vm_types:
    • cloud_properties:
  • cpu: 1
  • disk: 8192
  • ram: 1024
  • name: minimal
    • cloud_properties:
  • cpu: 1
  • disk: 10240
  • ram: 2048
  • name: default
    • cloud_properties:
  • cpu: 1
  • disk: 20480
  • ram: 4096
  • name: small
    • cloud_properties:
  • cpu: 2
  • disk: 20480
  • ram: 4096
  • name: medium
    • cloud_properties:
  • cpu: 2
  • disk: 20480
  • ram: 8192
  • name: medium-memory-8GB
    • cloud_properties:
  • cpu: 4
  • disk: 20480
  • ram: 8192
  • name: large
    • cloud_properties:
  • cpu: 8
  • disk: 20480
  • ram: 16384
  • name: xlarge
    • cloud_properties:
  • cpu: 2
  • disk: 51200
  • ram: 4096
  • name: small-50GB
    • cloud_properties:
  • cpu: 2
  • disk: 51200
  • ram: 4096
  • name: small-50GB-ephemeral-disk
    • cloud_properties:
  • cpu: 4
  • disk: 102400
  • ram: 8192
  • name: small-100GB-ephemeral-disk
    • cloud_properties:
  • cpu: 4
  • disk: 102400
  • ram: 8192
  • name: small-highmem-100GB-ephemeral-disk
    • cloud_properties:
  • cpu: 8
  • disk: 20480
  • ram: 16384
  • name: small-highmem-16GB
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 2048
  • name: caas_small
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 1024
  • name: caas_small_api
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 4096
  • name: caas_medium
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 256
  • name: service_tiny
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 512
  • name: service_small
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 1024
  • name: service_medium
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 2048
  • name: service_medium_1CPU_2G
    • cloud_properties:
  • cpu: 2
  • disk: 8192
  • ram: 4096
  • name: service_medium_4G
    • cloud_properties:
  • cpu: 2
  • disk: 10240
  • ram: 2048
  • name: service_medium_2G
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 256
  • name: portal_tiny
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 512
  • name: portal_small
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 1024
  • name: portal_medium
    • cloud_properties:
  • cpu: 1
  • disk: 4096
  • ram: 2048
  • name: portal_large
... ((생략)) ...
  • networks:
    • name: default
  • subnets:
    • azs: