로즈마리

글 작성자: daily_zi

사전준비

Openstack 환경에서의 bosh를 설치하기 위해서는 우선 환경설정이 필요합니다.

프로젝트 생성, 네트워크 및 보안그룹 등등.. 

 


1. 사용자 생성

관리자 권한을 가진 사용자일 경우 인증 -> 사용자 화면에서 사용자를 생성합니다.

최초 프로젝트는 비워두고, 역할을 admin으로 설정합니다.

[그림1] 사용자 생성 이미지

2. 프로젝트 생성

- 관리자 권한을 가진 사용자가 메뉴 -> 인증 -> 프로젝트 화면에서 프로젝트를 생성합니다.

- 프로젝트 멤버에는 위에 생성한 유저를 추가하여, user, admin 권한을 주며, Quota를 기본으로 설정했을 시 추후에 CF 설치 시 CPU 및 volume, instance quota 초과가 나서 어느정도 늘려줄 필요가 있습니다.

[그림2.1] 프로젝트 생성 - 프로젝트 정보
[그림2.2] 프로젝트 생성 - 프로젝트 멤버 설정

3. 오픈스택 로그인

사용자 및 프로젝트가 생성되었으면, 로그아웃 후 생성한 사용자로 로그인합니다.

[그림3] 로그인 화면

 

4. 네트워크 생성

- 메뉴 프로젝트 -> 네트워크 -> 네트워크 화면에서 [네트워크 생성] 버튼 클릭.

- bosh 인스턴스가 생성될 네트워크 및 서브넷을 생성합니다.

[그림4.1] 네트워크 정보
[그림 4.2] 서브넷 정보
[그림 4.3] 서브넷 세부 정보 - DNS 네임서버

5. 라우터 생성

- 메뉴 프로젝트 -> 네트워크 -> 라우터 화면에서 라우터를 생성합니다.

- 라우터는 public, internal 라우터 두개를 생성합니다.

[그림 4] 라우터 조회

5.1. public 인터페이스 연결 

- 메뉴 프로젝트 -> 네트워크 -> 라우터 조회 화면에서 public 라우터를 클릭하여 인터페이스 Tab 화면.

- [인터페이스 추가] 버튼을 클릭하여 위에 생성한 bosh 서브넷을 선택하고, IP 주소는 자동으로 bosh 서브넷의 게이트웨이와 연결되므로 입력하지 않도 [제출] 클릭.

[그림 5.1]  public 라우터 인터페이스 추가 

5.2. internal 인터페이스 연결

- 메뉴 프로젝트 -> 네트워크 -> 라우터 조회 화면에서 internal 라우터를 클릭하여 인터페이스 Tab 화면.
- [인터페이스 추가] 버튼을 클릭하여 bosh 서브넷을 선택하고, 이번엔 IP 주소를 '10.0.0.254' 값으로 입력.

[그림 5.2] internal 라우터 인터페이스 추가

5.3. 네트워크 토폴로지 확인

 

[그림 5.3] 네트워크 토폴로지

6. Key Pair 생성

메뉴 프로젝트 > Compute > Key Pair 화면에서 Key Pair 를 생성

[그림 6] KeyPair 생성

$ mv ~/Downloads/bosh.pem ~/.ssh/.
$ chmod 600 ~/.ssh/bosh.pem  

6.bosh-cli 설치 

1. BOSH CLI GitHub 릴리스 페이지로 이동하여 운영 체제에 맞는 파일을 다운로드

2. 다운받은 bosh 바이너리를 실행 가능하게 만들고 PATH를 옮긴다.


$ mv ~/Downloads/bosh-* ~/Downloads/bosh
$ chmod +x ~/Downloads/bosh
$ sudo mv ~/Downloads/bosh /usr/local/bin/bosh

3. 이제 bosh를 사용할 수 있으며, CLI에서 해당 버전을 확인한다.

$ bosh -v
version 5.3.1-8366c6fd-2018-09-25T18:25:51Z
Succeeded

4. Ubuntu에서 실행중인 경우 시스템에 다음 패키지가 설치되어 있는지 확인하세요.

(참고 자료: https://bosh.io/docs/cli-v2-install/)

$ sudo apt-get install -y build-essential zlibc zlib1g-dev ruby ruby-dev openssl libxslt-dev libxml2-dev libssl-dev libreadline6 libreadline6-dev libyaml-dev libsqlite3-dev sqlite3

7. bosh Deploy

1. git에서 bosh-deployment를 가져온다.

 

$ mkdir -p workspace/deployments/bosh
$ cd ~/workspace/deployments/bosh
$ git clone https://github.com/cloudfoundry/bosh-deployment

2. 설치 할 bosh의 VM 혹은 로컬 환경에서 route를 추가해준다.

gateway는 생성한 internal 라우터 인터페이스이며, net은 오픈스택 대시보드에 메뉴 프로젝트 -> Compute -> API 엑세스 화면에서 Identity 서비스 Endpoint를 확인 후 입력한다. 

[그림 7] api access

$ sudo route add -net 192.31.30.0/24 gw 10.0.0.254

3. openstack cpi 정보에 대한 vars.yml file 생성

vi vars.yml

---
director_name: bosh
director_name: bosh
internal_cidr: 10.0.0.0/24
internal_gw: 10.0.0.1
internal_ip: 10.0.0.15
auth_url: { Compute > API 엑세스 > Identity }
az: nova
default_key_name: bosh
default_security_groups: [bosh-security]
net_id: { openstack 네트워크 ID }
openstack_domain: { openstack 도메인(기본값 : default) }
openstack_username: { openstack 사용자 명 }
openstack_password: { openstack 프로젝트 패스워드 }
openstack_project: { openstack 프로젝트 명 }
region: { openstack region (기본값: RegionOne)  }

4. 배포

vi deploy.sh

#!/bin/bash
bosh create-env bosh-deployment/bosh.yml \
 --vars-store=./creds.yml \
 --vars-file=./vars.yml \
 --var-file=private_key=/home/ubuntu/.ssh/bosh.pem \
 --state=./state.json \
 -o bosh-deployment/openstack/cpi.yml \
 -o bosh-deployment/uaa.yml \
 -o bosh-deployment/credhub.yml \
 -o bosh-deployment/jumpbox-user.yml
$ . ./deploy.sh

5. Director 연결

$ vi ~/bosh_profile.sh

#!/bin/bash
# Configure local alias
bosh alias-env bosh -e  10.0.0.15 --ca-cert <(bosh int /home/heunji/workspace/deployments/bosh/creds.yml --path /director_ssl/ca)
 
# Log in to the Director
export BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET=`bosh int /home/heunji/workspace/deployments/bosh/creds.yml --path /admin_password`

# Query the Director for more info
bosh -e bosh env
bosh -e bosh login
$source ~/bosh_profile

6. bosh Director ssh 접속

$ cd ~/workspace/deployments/bosh
$ bosh int creds.yml --path /jumpbox_ssh/private_key > jumpbox.key
$ chmod 600 jumpbox.key
$ ssh jumpbox@10.0.0.15 -i jumpbox.key

7. bosh Director VM에 route 추가

$ sudo route add -net 172.31.30.0/24 gw 10.0.0.254
$ exit

 

다음에는 CF 배포하는 방법을 설명하겠습니다.

 

'클라우드 > CloudFoundry' 카테고리의 다른 글

[BOSH-LITE] CF 설치  (0) 2019.02.15
[BOSH-LITE] 릴리즈 생성  (0) 2019.02.11
BOSH-LITE 설치  (0) 2019.02.11