PaaS-TA-5.5.0
Search…
WEB-IDE 설치 가이드

Table of Contents

1. 문서 개요

1.1. 목적

본 문서는 PaaS-TA에서 사용할 수 있는 WEB-IDE의 설치를 Bosh를 이용하여 설치 하는 방법과 PaaS-TA 포털에서 WEB-IDE 서비스를 사용하는 방법을 기술하였다. PaaS-TA 3.5 버전부터는 Bosh2.0 기반으로 deploy를 진행하며 기존 Bosh1.0 기반으로 설치를 원할경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2. 범위

설치 범위는 WEB-IDE 사용을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3. 시스템 구성도

본 장에서는 WEB-IDE의 시스템 구성에 대해 기술하였다. Browser(PaaS-TA Portal), WEB IDE Server, Workspace, Desktop IDE로 최소사항을 구성하였다.
구분
Resource Pool
스펙
paasta-web-ide1
resource_pools
1vCPU / 2GB RAM / 10GB Disk
paasta-web-ide2
resource_pools
1vCPU / 2GB RAM / 10GB Disk

1.4. 참고자료

2. WEB IDE 설치

2.1. Prerequisite

본 설치 가이드는 Linux 환경에서 설치하는 것을 기준으로 하였다. 서비스 설치를 위해서는 BOSH 2.0과 PaaS-TA 5.0, PaaS-TA 포털이 설치되어 있어야 한다.

2.2. Stemcell 확인

Stemcell 목록을 확인하여 서비스 설치에 필요한 Stemcell이 업로드 되어 있는 것을 확인한다. (PaaS-TA 5.5.1 과 동일 stemcell 사용)
$ bosh -e micro-bosh stemcells
1
Using environment '10.0.1.6' as client 'admin'
2
3
Name Version OS CPI CID
4
bosh-aws-xen-hvm-ubuntu-xenial-go_agent 621.94* ubuntu-xenial - ami-0297ff649e8eea21b
5
6
(*) Currently deployed
7
8
1 stemcells
9
10
Succeeded
Copied!

2.3. Deployment 다운로드

서비스 설치에 필요한 Deployment를 Git Repository에서 받아 서비스 설치 작업 경로로 위치시킨다.
1
# Deployment 다운로드 파일 위치 경로 생성 및 설치 경로 이동
2
$ mkdir -p ~/workspace/paasta-5.5.1/deployment
3
$ cd ~/workspace/paasta-5.5.1/deployment
4
5
# Deployment 파일 다운로드
6
$ git clone https://github.com/PaaS-TA/service-deployment.git -b v5.0.6
Copied!

2.4. Deployment 파일 수정

BOSH Deployment manifest는 Components 요소 및 배포의 속성을 정의한 YAML 파일이다. Deployment 파일에서 사용하는 network, vm_type, disk_type 등은 Cloud config를 활용하고, 활용 방법은 BOSH 2.0 가이드를 참고한다.
  • Cloud config 설정 내용을 확인한다.
$ bosh -e micro-bosh cloud-config
1
Using environment '10.0.1.6' as client 'admin'
2
3
azs:
4
- cloud_properties:
5
availability_zone: ap-northeast-2a
6
name: z1
7
- cloud_properties:
8
availability_zone: ap-northeast-2a
9
name: z2
10
11
... ((생략)) ...
12
13
disk_types:
14
- disk_size: 1024
15
name: default
16
- disk_size: 1024
17
name: 1GB
18
19
... ((생략)) ...
20
21
networks:
22
- name: default
23
subnets:
24
- az: z1
25
cloud_properties:
26
security_groups: paasta-security-group
27
subnet: subnet-00000000000000000
28
dns:
29
- 8.8.8.8
30
gateway: 10.0.1.1
31
range: 10.0.1.0/24
32
reserved:
33
- 10.0.1.2 - 10.0.1.9
34
static:
35
- 10.0.1.10 - 10.0.1.120
36
37
... ((생략)) ...
38
39
vm_types:
40
- cloud_properties:
41
ephemeral_disk:
42
size: 3000
43
type: gp2
44
instance_type: t2.small
45
name: minimal
46
- cloud_properties:
47
ephemeral_disk:
48
size: 10000
49
type: gp2
50
instance_type: t2.small
51
name: small
52
53
... ((생략)) ...
54
55
Succeeded
Copied!
  • Deployment YAML에서 사용하는 변수 파일을 서버 환경에 맞게 수정한다.
$ vi ~/workspace/paasta-5.5.1/deployment/service-deployment/web-ide/vars.yml
1
# STEMCELL
2
stemcell_os: "ubuntu-xenial" # stemcell os
3
stemcell_version: "621.94" # stemcell version
4
5
# NETWORK
6
private_networks_name: "default" # private network name
7
public_networks_name: "vip" # public network name
8
9
# ECLIPSE-CHE
10
eclipse_che_azs: [z7] # eclipse-che : azs
11
eclipse_che_instances: 1 # eclipse-che : instances (1)
12
eclipse_che_vm_type: "large" # eclipse-che : vm type
13
eclipse_che_public_ips: "<ECLIPSE_CHE_PUBLIC_IPS>" # eclipse-che : public ips (e.g. ["00.00.00.00" , "11.11.11.11"])
14
15
# MARIA_DB
16
mariadb_azs: [z3] # mariadb : azs
17
mariadb_instances: 1 # mariadb : instances (1)
18
mariadb_vm_type: "small" # mariadb : vm type
19
mariadb_persistent_disk_type: "10GB" # mariadb : persistent disk type
20
mariadb_port: "<MARIADB_PORT>" # mariadb : database port (e.g. 31306) -- Do Not Use "3306"
21
mariadb_admin_password: "<MARIADB_ADMIN_PASSWORD>" # mariadb : database admin password (e.g. "[email protected]")
22
23
# SERVICE-BROKER
24
broker_azs: [z3] # service-broker : azs
25
broker_instances: 1 # service-broker : instances (1)
26
broker_vm_type: "medium" # service-broker : vm type
27
broker_port: "<BROKER_PORT>" # service-broker : broker port (e.g. "8080")
28
broker_services_id: "<BROKER_SERVICES_ID>" # service-broker : service guid (e.g. "af86588c-6212-11e7-907b-b6006ad3webide0")
29
broker_services_plans_id: "<BROKER_SERVICES_PLANS_ID>" # service-broker : service plan id (e.g. "a5930564-6212-11e7-907b-b6006ad3webide1")
Copied!

2.5. 서비스 설치

  • 서버 환경에 맞추어 Deploy 스크립트 파일의 VARIABLES 설정을 수정하고, Option file을 추가할지 선택한다.
    (선택) -o operations/use-compiled-releases.yml (ubuntu-xenial/621.94로 컴파일 된 릴리즈 사용)
$ vi ~/workspace/paasta-5.5.1/deployment/service-deployment/web-ide/deploy.sh
1
#!/bin/bash
2
3
# VARIABLES
4
COMMON_VARS_PATH="<COMMON_VARS_FILE_PATH>" # common_vars.yml File Path (e.g. ../../common/common_vars.yml)
5
CURRENT_IAAS="${CURRENT_IAAS}" # IaaS Information (PaaS-TA에서 제공되는 create-bosh-login.sh 미 사용시 aws/azure/gcp/openstack/vsphere 입력)
6
BOSH_ENVIRONMENT="${BOSH_ENVIRONMENT}" # bosh director alias name (PaaS-TA에서 제공되는 create-bosh-login.sh 미 사용시 bosh envs에서 이름을 확인하여 입력)
7
8
# DEPLOY
9
bosh -e ${BOSH_ENVIRONMENT} -n -d web-ide deploy --no-redact web-ide.yml \
10
-o operations/${CURRENT_IAAS}-network.yml \
11
-l ${COMMON_VARS_PATH} \
12
-l vars.yml
Copied!
  • 서비스를 설치한다.
    1
    $ cd ~/workspace/paasta-5.5.1/deployment/service-deployment/web-ide
    2
    $ sh ./deploy.sh
    Copied!

2.6. 서비스 설치 - 다운로드 된 PaaS-TA Release 파일 이용 방식

  • 서비스 설치에 필요한 릴리즈 파일을 다운로드 받아 Local machine의 서비스 설치 작업 경로로 위치시킨다.
1
# 릴리즈 다운로드 파일 위치 경로 생성
2
$ mkdir -p ~/workspace/paasta-5.5.1/release/service
3
4
# 릴리즈 파일 다운로드 및 파일 경로 확인
5
$ ls ~/workspace/paasta-5.5.1/release/service
6
paas-ta-webide-release-1.1.0.tgz
Copied!
  • 서버 환경에 맞추어 Deploy 스크립트 파일의 VARIABLES 설정을 수정하고 Option file 및 변수를 추가한다.
    (추가) -o operations/use-offline-releases.yml (미리 다운받은 offline 릴리즈 사용)
    (추가) -v releases_dir=""
$ vi ~/workspace/paasta-5.5.1/deployment/service-deployment/web-ide/deploy.sh
1
#!/bin/bash
2
3
# VARIABLES
4
COMMON_VARS_PATH="<COMMON_VARS_FILE_PATH>" # common_vars.yml File Path (e.g. ../../common/common_vars.yml)
5
CURRENT_IAAS="${CURRENT_IAAS}" # IaaS Information (PaaS-TA에서 제공되는 create-bosh-login.sh 미 사용시 aws/azure/gcp/openstack/vsphere 입력)
6
BOSH_ENVIRONMENT="${BOSH_ENVIRONMENT}" # bosh director alias name (PaaS-TA에서 제공되는 create-bosh-login.sh 미 사용시 bosh envs에서 이름을 확인하여 입력)
7
8
# DEPLOY
9
bosh -e ${BOSH_ENVIRONMENT} -n -d web-ide deploy --no-redact web-ide.yml \
10
-o operations/${CURRENT_IAAS}-network.yml \
11
-l ${COMMON_VARS_PATH} \
12
-l vars.yml \
13
-v releases_dir="/home/ubuntu/workspace/paasta-5.5.1/release"
Copied!
  • 서비스를 설치한다.
    1
    $ cd ~/workspace/paasta-5.5.1/deployment/service-deployment/web-ide
    2
    $ sh ./deploy.sh
    Copied!

2.7. 서비스 설치 확인

설치 완료된 서비스를 확인한다.
$ bosh -e micro-bosh -d web-id vms
1
Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
2
3
Task 7872. Done
4
5
Deployment 'web-id'
6
7
Instance Process State AZ IPs VM CID VM Type Active
8
eclipse-che/ed136540-c650-47a2-918b-bb7f6020469d running z7 10.30.56.54 vm-5a3a2b10-d0c9-47c8-97f0-6ea64c339df8 large true
9
115.68.46.178
10
mariadb/ec34aa5b-c7cc-4297-9e2d-babf05d83832 running z3 10.30.56.55 vm-9e1631af-b6c8-481e-aad3-3fd713f106a9 small true
11
webide-broker/a641df99-d36a-49ee-8329-018fe10fa23d running z3 10.30.56.56 vm-eb784964-48cd-4e4c-b080-53675d3738c2 medium true
12
13
3 vms
14
15
Succeeded
Copied!

3. WEB-IDE의 PaaS-TA 포털사이트 연동

3.1. WEB-IDE 서비스 브로커 등록

$ cf create-service-broker {서비스팩 이름} {서비스팩 사용자ID} {서비스팩 사용자비밀번호} http://{서비스팩 URL(IP)}
서비스팩 이름 : 서비스 팩 관리를 위해 PaaS-TA에서 보여지는 명칭이다. 서비스 Marketplace에서는 각각의 API 서비스 명이 보여지니 여기서 명칭은 서비스팩 리스트의 명칭이다. 서비스팩 사용자ID / 비밀번호 : 서비스팩에 접근할 수 있는 사용자 ID입니다. 서비스팩도 하나의 API 서버이기 때문에 아무나 접근을 허용할 수 없어 접근이 가능한 ID/비밀번호를 입력한다. 서비스팩 URL : 서비스팩이 제공하는 API를 사용할 수 있는 URL을 입력한다.
$ cf create-service-broker webide-service-broker admin cloudfoundry http://10.30.56.56:8080
1
$ cf create-service-broker webide-service-broker admin cloudfoundry http://10.30.56.56:8080
2
Creating service broker webide-service-broker as admin...
3
OK
Copied!
등록된 WEB-IDE 서비스 브로커를 확인한다.
$ cf service-brokers
1
$ cf service-brokers
2
Getting service brokers as admin...
3
4
name url
5
webide-service-broker http://10.30.56.56:8080
Copied!

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

$ cf service-access
1
$ cf service-access
2
Getting service access as admin...
3
broker: webide-service-broker
4
service plan access orgs
5
webide webide-shared none
Copied!
  • 서비스 브로커 등록시 최초에는 접근을 허용하지 않는다. 따라서 access는 none으로 설정된다.

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

$ cf enable-service-access webide $ cf service-access
1
$ cf enable-service-access webide
2
Enabling access to all plans of service webide for all orgs as admin...
3
OK
4
5
$ cf service-access
6
Getting service access as admin...
7
8
broker: webide-service-broker
9
service plan access orgs
10
webide webide-shared all
Copied!

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

$ cf marketplace
1
$ cf marketplace
2
Getting services from marketplace in org system / space dev as admin...
3
OK
4
5
service plans description broker
6
webide webide-shared A paasta web ide service for application development.provision parameters webide-service-broker
Copied!

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

$ cf create-service {서비스명} {서비스 플랜} {내 서비스명}
  • 서비스명 : webide로 Marketplace에서 보여지는 서비스 명칭이다.
  • 서비스플랜 : 서비스에 대한 정책으로 plans에 있는 정보 중 하나를 선택한다. webide 서비스는 standard plan만 지원한다.
  • 내 서비스명 : 내 서비스에서 보여지는 명칭이다. 이 명칭을 기준으로 환경 설정 정보를 가져온다.
$ cf create-service webide webide-shared webide-service
1
$ cf create-service webide webide-shared paasta-webide-service
2
Creating service instance paasta-webide-service in org system / space dev as admin...
3
OK
Copied!

생성된 WEB-IDE 서비스 인스턴스를 확인한다.

$ cf services
1
$ cf services
2
Getting services in org system / space dev as admin...
3
4
name service plan bound apps last operation broker upgrade available
5
paasta-webide-service webide webide-shared create succeeded webide-service-broker
Copied!

4. WEB-IDE 에서 CF CLI 사용법

4.1. WEB-IDE New Project 화면

  • 사용할 언어를 선택하고 Create workspace and project 로 새로운 프로젝트를 시작한다.
  • Workspace를 구성하기 위해 Docker 관련 자료를 다운로드한다.

4.2. WEB-IDE Workspace 화면

  • Open Project를 누르면 Workspace 화면이 열린다.
  • 실제로 소스를 개발해서 빌드하거나 GIT이나 SVN에서 IMPORT 한다.

4.3. WEB-IDE Teminal에서의 CF CLI 실행

-cf api 명령을 이용해 endpoint를 지정한다.
cf login 명령어로 로그인하고 조직과 공간을 선택한다.
cf push 를 이용해 cf에 앱을 업로드한다.
Last modified 8mo ago