본문 바로가기

VMware/운영(TAS)

[Tanzu 운영 ] (6) spring-music 과 mysql binding

[Tanzu 운영 ] (6) spring-music과 mysql binding

spring-music은 cloud-foundry 에서 제공하는 테스트 앱이다.

유명세에 맞게 각 smoke-test에서도 해당 테스트 앱을 통해 스모크 테스트를 진행하는데, mysql DB 까지 연결하는

방법에 대해서 포스팅 하겠다.

 

우선 github source를 먼저 클론 받겠다.

$ git clone https://github.com/cloudfoundry-samples/spring-music.git

 

$ cd spring-music
ubuntu@ip-10-0-0-238:~/Downloads/spring-music$ ls
LICENSE    build         gradle             gradlew      manifest.yml
README.md  build.gradle  gradle.properties  gradlew.bat  src

다음과 같이 파일들이 clone 되었는데, 여기서 gradle 라는것에 설명이 필요할것 같다.

gradle은 Maven과 같은 오픈소스 빌드 도구이다.

Gradle은 앞서 살펴본 Ant와 Maven이 가진 장점을 모아 만들었다. 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다.

그루비(Groovy)는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.

 

gradelw는 gradle의 실행파일을 wrapper 형태로 구현해 둔것이며, gradle이 설치 되지 않은 시스템에서도 프로젝트를 빌드 할수 있다.

 

$ ./gradlew clean assemble

gradle wrapper을 통해 소스를 빌드하면, 변경사항도 같이 적용된다.

 

$ cf push
$ cf apps 

ubuntu@ip-10-0-0-238:~$ cf apps
Getting apps in org dev / space test as admin...

name           requested state   processes           routes
spring-music   started           web:1/1, task:0/0   spring-music-sweet-dingo-un.apps.lui.monster

app을 배포한 후에  service를 배포합니다.

$ cf services
ubuntu@ip-10-0-0-238:~$ cf services
Getting services in org dev / space test as admin...

name      service              plan       bound apps     last operation       broker                   upgrade available
test      p.service-registry   standard   spring-music   update succeeded     scs-service-broker       
test2     p.mysql              db-small   spring-music   create succeeded     dedicated-mysql-broker   no
ttttttt   p.mysql              db-small                  create in progress   dedicated-mysql-broker   no

$ cf create-service p.mysql db-small testkoo

ubuntu@ip-10-0-0-238:~$ cf services
Getting services in org dev / space test as admin...

name      service              plan       bound apps     last operation       broker                   upgrade available
test      p.service-registry   standard   spring-music   update succeeded     scs-service-broker       
test2     p.mysql              db-small   spring-music   create succeeded     dedicated-mysql-broker   no
testkoo   p.mysql              db-small                  create in progress   dedicated-mysql-broker   no
ttttttt   p.mysql              db-small                  create in progress   dedicated-mysql-broker   no

 

여기서의 service는 mysql DB를 binding 하기 위해서 서비스 instance로 배포한 것입니다.

해당 VM에 접속하면 mysql에 접근 가능

/var/vcap/jobs/mysql/config

 

# vim mylogin.cnf

 

mysql -u admin -p 로 로그인

 

$ bosh vms 
Deployment 'service-instance_20f7dea6-1bd1-43c1-b3b5-559e82af510b'

Instance                                    Process State  AZ               IPs        VM CID               VM Type   Active  Stemcell  
mysql/53c9e718-4ea9-416f-82aa-13cff006195b  running        ap-northeast-1d  10.0.6.61  i-05b00319b79bbe9cf  m5.large  true    bosh-aws-xen-hvm-ubuntu-xenial-go_agent/621.211
$ cf bind-service spring-music testkoo 

Binding service testkoo to app spring-music in org dev / space test as admin...
OK

ubuntu@ip-10-0-0-238:~$ cf services
Getting services in org dev / space test as admin...

name      service              plan       bound apps     last operation     broker                   upgrade available
test      p.service-registry   standard   spring-music   update succeeded   scs-service-broker       
test2     p.mysql              db-small   spring-music   create succeeded   dedicated-mysql-broker   no
testkoo   p.mysql              db-small   spring-music   create succeeded   dedicated-mysql-broker   no
ttttttt   p.mysql              db-small                  create succeeded   dedicated-mysql-broker   no