Stemcell 개발 가이드
Last updated
Was this helpful?
Last updated
Was this helpful?
사용자 정의의 스템셀을 생성하는 것이 목표이다.
가이드 범위는 BOSH 스템셀을 생성하기 위한 환경 구축과 BOSH 스템셀 및 BOSH Light 스템셀을 생성하는 내용을 기술하였다.
본 문서는 Cloud Foundry의 BOSH Document를 참고로 작성하였다.
본 설치 가이드는 Linux(Ubuntu 14.04 64bit) 환경에서 실행하는 것을 기준으로 설명하였다. 스템셀을 생성하기 위해서 Ruby 및 Bosh를 설치 한다. 또한 Ruby 및 Bosh를 설치하기 위한 추가 패키지 및 실행 환경을 구성 한다.
AWS 환경
rvm
Ruby (2.1.6 또는 1.9.3-p545)
Bundler
Bosh
Vagrant
스템셀을 생성하기 위해서는 인터넷과 연결이 가능해야 한다.
BOSH는 스템셀을 생성하는 VM을 AWS에 생성하고 관리한다. 스템셀을 생성하기 위해서는 AWS에 계정을 생성하고 스템셀을 생성하기 위한 환경을 구성해야 한다.
AWS 계정
Access Key 설정
화면 우측 상단의 계정을 선택하여 Security Credentials를 선택
'AWS IAM' 확인 팝업이 나타나면 'Continue to Security Credentials' 버튼을 선택하여 Security Credentials 화면으로 이동
Access Keys를 선택하여 Create New Access Key 버튼을 눌러 Access Key를 생성한다.
생성한 키 정보를 확인한다.
화면의 Access Key ID를 BOSH_AWS_ACCESS_KEY_ID에 설정한다.
화면의 Secret Access Key를 BOSH_AWS_SECRET_ACCESS_KEY에 설정한다.
다이얼로그 화면을 닫는다.
Virtual Private Cloud (VPC) 구성
화면 우측 상단의 지역메뉴를 선택한다. (현재 N. Virginia 지역에서만 light stemcell을 사용할 수 있다.)
AWS 콘솔 화면에서 VPC 메뉴를 선택한다.
VPC 마법사를 선택한다.
“VPC with a Single Public Subnet” 선택
네트워크 정보를 입력하고 VPC 생성 버튼을 눌러 VPC를 생성한다.
아래와 같이 생성한 VPC의 목록이 출력된다.
Subnet ID를 BOSH_AWS_SUBNET_ID에 설정한다.
Key Pair 생성
AWS 콘솔 화면에서 ‘EC2’ 메뉴를 선택하여 EC2 대시보드 화면으로 이동한다.
‘Key Pairs’와 ‘Create Key Pair’ 버튼을 차례로 선택한다.
Key Pair 생성 다이얼로그 화면에서 Key Pair명을 입력하여 Key Pair를 생성하고 다운로드 한다.
다운로드한 Key(예: bosh.pem)를 키 보관 디렉토리에 옮기고 권한을 변경한다.
시큐리티 그룹 생성
EC2 대시보드 화면에서 ‘Security Groups’과 ‘Create Security Group’ 버튼을 차례대로 누른다.
시큐리티 그룹 생성 팝업화면에서 다음과 같이 값을 입력하여 시큐리티 그룹을 생성한다.
항목
설정값
설명
Security group name
임의 (예: bosh_stemcell)
시큐리티 그룹명
Description
임의 (예: BOSH builds Stemcells)
시큐리티 그룹에 대한 설명
VPC
VPC 구성에서 생성한 VPC
시큐리티 그룹을 적용할 VPC
생성한 시큐리티 그룹에 보안정책을 설정하기 위해 ‘Inbound’ 탭의 ‘Edit’을 선택한다.
아래표와 같이 보안정책을 추가한다.
Type
Protocol
Port Range
Source
SSH
TCP
22
My IP
Ruby 설치 절차는 다음과 같다.
의존 패키지 설치
Ubuntu의 경우
CentOS의 경우
OSX의 경우
Ruby 설치 관리자 및 Ruby 설치
설치 확인
BOSH 설치 절차는 다음과 같다.
설치할 환경 생성
Bosh 설치 및 설정
Bosh 설치 확인
Vagrant는 가상 환경을 구축해 주는 오픈 소스이다. 스템셀을 생성 할 VM을 관리하기 위해 vagrant를 사용한다.
Vagrant 설치
Vagrant 플러그인 설치
스템셀 생성을 위한 가상 환경을 구성한다.
AWS 환경 변수 설정
VM 생성
기본으로 설정된 VM 크기는 m3.xlarge 타입으로 AWS 과금 대상이다.
원격 접속 확인
원격 파일 송수신
Source Code 수정 또는 업데이트한 gem 파일을 스템셀 생성 VM에 반영하는 경우
사용자 환경에 맞는 사용자 정의의 OS로 구성한 스템셀이 필요한 경우, 기본 OS 이미지부터 생성한다. 기본 OS 이미지는 스템셀이 요구하는 최소한의 OS 기능과 Bosh agent 및 bosh 모니터로 구성 되어 있다.
Ubuntu OS 이미지를 생성하는 절차를 기술한다.
Build_os_image 실행
입력 옵션 정보
옵션명
필수
설명
예시
Operating system name
O
OS 타입
ubuntu
Operating system version
O
OS 버전
trusty
OS image path
O
기본 OS 이미지가 생성되는 디렉토리 및 이름
/tmp/ubuntu_base_image.tgz
RHEL OS 이미지를 생성하는 절차를 기술한다.
RHEL 7.0 iso를 다운로드 받아서 스템셀 생성 VM에 업로드 한다.
※ 다운로드하기 위해서는 RedHat 계정이 있어야 한다.
실행 환경 구성
Build_os_image 실행
※ 기본 RHEL OS 이미지는 BOSH에서 제공하지 않는다.
※ 기본 RHEL OS 이미지 생성 시 오류가 발생할 경우, RHEL에서 기본 RHEL OS 이미지를 제공받아 스템셀을 생성한다.
PHOTON OS 이미지를 생성하는 절차를 기술한다.
PHOTON iso 이미지를 다운로드 받아서 스템셀 생성 VM에 업로드 한다. ※TP2버전 이상을 다운 받는다.
실행 환경 구성
Build_os_image 실행
※ 기본 Photon OS 이미지는 BOSH에서 제공하지 않는다.
생성한 기본 OS 이미지 확인
생성한 기본 OS 다운로드
원격지의 OS 이미지를 사용해서 스템셀을 생성하는 절차를 기술한다.
Build 실행
입력 옵션 정보
옵션명
필수
설명
예시
CANDIDATE_BUILD_NUMBER
O
현재 스템셀 버전
3147
Infrastructure
O
인프라 타입
Vsphere
Hypervisor
O
하이퍼 바이저 타입
Esxi
Operating system name
O
OS 타입
Centos
Operating system version
O
OS 버전
7
Agent type
X
에이전트 타입
Go
OS image s3 bucket name
O
Bosh용 OS 이미지 버킷명
Bosh-os-image
OS image key
O
OS 이미지명
Bosh-centos-7-os-image.tgz
설정 가능한 옵션 구성
Infrastructure
Hypervisor
OS
aws
Xen
ubuntu
aws
Xen
centos
openstack
Kvm
ubuntu
openstack
Kvm
centos
vcloud
Esxi
ubuntu
vsphere
Esxi
ubuntu
vsphere
Esxi
centos
※ 위와 다른 옵션을 지정하고 싶은 경우 Bosh source에서 필요한 부분을 수정하거나 개발 한다.
로컬의 OS 이미지를 사용해서 스템셀을 생성하는 절차를 기술한다.
기본 OS 이미지를 생성 또는 다운로드 받는다.
OS 명
URL
ubuntu
centos
사용자 생성 OS
기본 OS 이미지를 다운 받은 경우, 스템셀 생성 VM에 업로드 한다.
build_with_local_os_image 실행
※ STEMCELL_BUILD_NUMBER을 생략할 경우, 생성되는 스템셀의 버전은 0000으로 고정된다.
입력 옵션 정보
옵션명
필수
설명
예시
Infrastructure
O
인프라 타입
Aws
Hypervisor
O
하이퍼 바이저 타입
Xen
Operating system name
O
OS 타입
Ubuntu
Operating system version
O
OS 버전
Trusty
Agent type
X
에이전트 타입
Go
Local os image path
O
스템셀 생성 VM에 있는 OS 이미지 경로
/tmp/ubuntu_base_image.tgz
설정 가능한 옵션 구성
Infrastructure
Hypervisor
OS
aws
Xen
ubuntu
aws
Xen
centos
openstack
Kvm
ubuntu
openstack
Kvm
centos
vcloud
Esxi
ubuntu
vsphere
Esxi
ubuntu
vsphere
Esxi
centos
생성한 스템셀 확인
생성한 스템셀 다운로드
Bosh light 스템셀은 AWS (N. Virgina region 한정)에서만 사용가능한 경량 스템셀이다. 스템셀을 AWS에 AMI로 등록하고 등록한 이미지 아이디, 스템셀 정보 등을 기록한 파일을 생성하여 tgz로 압축한다.
다운로드 받았거나 생성한 스템셀을 스템셀 생성 VM에 업로드한다.
build_light 실행
입력 옵션 정보
옵션명
필수
설명
예시
Local stemcell path
O
로컬의 stemcell 경로
/tmp/bosh-stemcell.tgz
Virtualization type
X
가상화 타입
Hvm
※ 필수 항목이 아닌 곳에 대해서는 ‘’을 입력한다.
사용자의 요구사항에 맞는 스템셀을 생성하기 위해서는 스템셀 생성 소스를 수정 해야 할 경우가 있다. 스템셀 생성을 구성하는 대부분의 파일은 아래의 디렉토리에 있다.
수정한 내용을 스템셀 생성 VM에 적용한다.
스템셀을 생성한다. (필요한 경우 기본 OS 이미지부터 생성한다.)
스템셀 생성 중 오류가 발생한 경우, 해당 오류를 조치한 후 오류가 발생한 stage부터 진행 할 수 있다. 이 경우, resume_from=<스템셀 생성 stage>를 생성 명령어에 추가한다. ※ 단, resume 옵션으로 스템셀을 생성할 경우, 이전에 정상적으로 진행된 스테이지에서 오류가 발생하는 경우도 있다. 이런 경우, resume_from옵션을 사용하지 않는다.
Bosh 스템셀 생성:
AWS 웹사이트:
AWS에 로그인: