사전준비
Openstack 환경에서의 bosh를 설치하기 위해서는 우선 환경설정이 필요합니다.
프로젝트 생성, 네트워크 및 보안그룹 등등..
1. 사용자 생성
관리자 권한을 가진 사용자일 경우 인증 -> 사용자 화면에서 사용자를 생성합니다.
최초 프로젝트는 비워두고, 역할을 admin으로 설정합니다.
2. 프로젝트 생성
- 관리자 권한을 가진 사용자가 메뉴 -> 인증 -> 프로젝트 화면에서 프로젝트를 생성합니다.
- 프로젝트 멤버에는 위에 생성한 유저를 추가하여, user, admin 권한을 주며, Quota를 기본으로 설정했을 시 추후에 CF 설치 시 CPU 및 volume, instance quota 초과가 나서 어느정도 늘려줄 필요가 있습니다.
3. 오픈스택 로그인
사용자 및 프로젝트가 생성되었으면, 로그아웃 후 생성한 사용자로 로그인합니다.
4. 네트워크 생성
- 메뉴 프로젝트 -> 네트워크 -> 네트워크 화면에서 [네트워크 생성] 버튼 클릭.
- bosh 인스턴스가 생성될 네트워크 및 서브넷을 생성합니다.
5. 라우터 생성
- 메뉴 프로젝트 -> 네트워크 -> 라우터 화면에서 라우터를 생성합니다.
- 라우터는 public, internal 라우터 두개를 생성합니다.
5.1. public 인터페이스 연결
- 메뉴 프로젝트 -> 네트워크 -> 라우터 조회 화면에서 public 라우터를 클릭하여 인터페이스 Tab 화면.
- [인터페이스 추가] 버튼을 클릭하여 위에 생성한 bosh 서브넷을 선택하고, IP 주소는 자동으로 bosh 서브넷의 게이트웨이와 연결되므로 입력하지 않도 [제출] 클릭.
5.2. internal 인터페이스 연결
- 메뉴 프로젝트 -> 네트워크 -> 라우터 조회 화면에서 internal 라우터를 클릭하여 인터페이스 Tab 화면.
- [인터페이스 추가] 버튼을 클릭하여 bosh 서브넷을 선택하고, 이번엔 IP 주소를 '10.0.0.254' 값으로 입력.
5.3. 네트워크 토폴로지 확인
6. Key Pair 생성
메뉴 프로젝트 > Compute > Key Pair 화면에서 Key Pair 를 생성
$ 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를 확인 후 입력한다.
$ 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 |