bosh sample release를 개발하기 위해 사전 테스트 작업으로 apache를 bosh를 통해 배포하여 보자
1. Release 생성
# bosh init release test-release
root@jenkins:~/workspace/test-release# tree ├── blobs ├── config │ └── blobs.yml ├── jobs ├── packages └── src |
2. Package 생성 : 배포에 필요한 binary file과 job에서 사용할 src 및 dependency file 제공
# bosh generate package apache2
root@jenkins:~/workspace/bosh_install_test/packages# tree └── apache2 ├── packaging ├── pre_packaging └── spec |
또.. 여러개 파일이 default로 생성된다...
1) spec 파일 수정
- name : package name
- dependencies : Package's dependencies
- files :The location where BOSH can find the binaries and other files that the package needs at compile time
--- name: apache2 dependencies: files:
- apache2/httpd-2.2.25.tar.gz |
2) src 디렉토리에시 필요한 파일 download
# mkdir src/apache2
# cd src/apache2
# wget 'http://apache.tradebit.com/pub/httpd/httpd-2.2.25.tar.gz'
3) packaging (compilation script) 작성
echo "Extracting apache https..." tar xzf apache2/httpd-2.2.25.tar.gz echo "Building apache https..." ( cd httpd-2.2.25 ./configure \ --prefix=${BOSH_INSTALL_TARGET} \ --enable-so make make install } EOF |
release의 package 설정을 대강 마무리 됬고 pre_packaging의 용도는 모르겠다.
아래로 대망의 job 생성
3. job 생성
# bosh generate job apache2
create jobs/apache2 create jobs/apache2/templates create jobs/apache2/spec create jobs/apache2/monit |
또 이것저것 만들고...
1) spec : spec 파일은 job의 metadata를 정의한 파일로 bosh를 통해 deploy 시 해석되어 사용된다
name, description, templates, package, properties로 구성 되어 있음
spec 파일의 자세한 schema는 https://bosh.io/docs/jobs.html 참조
- Compile 단계에 BOSH는 template들을 file로 변환하여 JOB VM에 복사함
- Key/value 형식으로 선언되며, key는 template 폴더의 파일 name, value는 JOB VM의 복사되는 PATH와 파일 이름
/var/vcap/jobs/<job_name>/bin/ctl on the job VM
--- name: apache2
description: This job runs a simple HTTP server.
templates: httpd.conf.erb: config/httpd.conf
packages: - apache2
properties: name: description: name set test age: description: age deafult set test default: 99 |
너무 길어지니.. 우선 여기까지~
'CloudFoundry' 카테고리의 다른 글
[bosh] job lifecycle (0) | 2016.06.02 |
---|---|
[bosh] release, job (0) | 2016.06.02 |
bosh-lite 이용한 CloudFoundry deploy (0) | 2016.04.20 |
[CloudFoundry] cf push process(application 배포) (0) | 2016.04.20 |
CloudFoundry user-provide-service setting (0) | 2016.04.20 |