PaaS-TA-5.5.0
Search…
PaaS-TA Migration

Table of Contents

1. 문서 개요

1.1. 목적

본 문서(설치가이드)는 파스타를 3.1 버전 이하에서 4.0으로 버전 업그레이드 하는데 있다.

1.2. 범위

본 문서(설치가이드)는 파스타를 3.1 버전 이하에서 4.0으로 버전 업그레이드 방법을 가이드 하는데 있다.

2. Paasta 4.0 version upgrade

Paasta 4.0에서는 3.1이전 버전과 배포 방식 및 version upgrade하는 방식이 바뀌 었다. Paasta 3.1 까지는 cf-release 를 기준으로 version upgrade가 되었다. 하지만 cf-release 287을 마지막으로 cloud-foundry의 bosh 및 cf deploy방식이 바뀌었다. Bosh는 bosh-deployment를 기반으로 bosh를 배포 하였으며, cloud-foundry는 cf-deployment를 기반으로 cf 를 배포 하게 되었다. Cli도 bosh-cli1 에서 bosh-cli2로 변경 되었다. Bosh-cli2에서는 기존 bosh cli명령어도 변경 되었다.
이런 이유에서 paasta-3.1에서 4.0로 upgrade할 때 기존 방식으로 는 upgrade가 불가능 하다. 본 가이드는 paasta-3.1에서 4.0로 upgrade시 기존 App과 사용자/조직 정보를 migration 하는데 그 목적이 있다.
Paasta 4.0으로 migration하기위해서는 ccdb, uaadb 및 blobstore data를 bakcup하여 restore해야 한다.

2.1. pre-requsite

  1. 1.
    Backup and restore를 진행하는 동안 paasta를 사용하는 사용자가 없어야 한다.
  2. 2.
    3.1과 4.0는 System domain이 동일해야 한다.
  3. 3.
    cf_admin_password가 3.1 버전과 동일해야 한다.
  4. 4.
    Paasta-3.1 Paasta-controller.yml에 db_encryption_key에 있는 값이 paasta-4.0 설치시 동일해야 한다.
  5. 5.
    paasta-3.1 Backup 은 bosh cli 기준은 bosh1 이며, paasta-4.0 recovery bosh cli 기준은 bosh2 이다.

2.2. paasta-3.1 backup

paasta-3.1 설치된 vm에서 database data와 blobstore data를 backup 한다.

2.2.1. ccdb, uaadb backup (bosh cli 1 기준)

1
$ bosh ssh postgres_z1/0 #postgres database vm 접근
2
$ sudo su –
3
$ cd /var/vcap/packages/postgres_x.x.x/bin/
4
$ ./pg_dump -U ccadmin -p 5524 -d ccdb --data-only --column-inserts > /tmp/ccdb-data.sql # ccdb database backup (사용자, 조직, 스페이스, app meta data)
5
./pg_dump -U uaaadmin -p 5524 -d uaadb --data-only --column-inserts > /tmp/uaadb-data.sql # uaadb database backup (사용자 정보 meta data)
6
7
$ exit
8
$ exit # postgres vm 에서 나온다.
9
10
$ bosh scp postgres_z1/0 --download /tmp/ccdb-data.sql {download_path}
11
$ bosh scp postgres_z1/0 --download /tmp/uaadb-data.sql {download_path}
12
$ cd {download_path}
13
$ mv ccdb-data.sql.postgres_z1.0 ccdb-data.sql
14
$ mv uaadb-data.sql.postgres_z1.0 uaadb-data.sql
Copied!

2.2.2. blobstore backup

1
$ bosh ssh blobstore_z1/0 #blobstore_z1 vm 접근
2
$ sudo su -
3
$ cd /var/vcap/store
4
$ sudo tar cvf blobstore.tar shared/
5
$ sudo mv blobstore.tar /tmp/
6
7
$ exit
8
$ exit # blobstore vm 에서 나온다.
9
10
$ bosh scp blobstore_z1/0 /tmp/blobstore.tar {download_path} –download (app 용량에 따라 시간이 걸림)
11
12
$ mv blobstore.tar.blobstore_z1.o blobstore.tar
Copied!

2.2.3. ccdb, uaadb datafile edit

1) uaadb-data.sql 파일을 열어 identity_zone, identity_provider, schema_migrations Table insert 문장 삭제
2) ccdb-data.sql 파일을 열어 schema_migrations Table insert 문장 삭제

2.3. paasta-4.0 restore (bosh2 cli 기준)

2.3.1. pre-requisite

  • recover에서 사용하는 bosh cli는 bosh2 이다.
  • paasta-4.0가 설치 되어 있어야 한다.
  • System domain이 이전과 동일해야 한다.
  • Cf_admin_password가 이전과 동일해야 한다.
  • Paasta-controller.yml에 db_encryption_key에 있는 값이 paasta-4.0 설치시 동일해야 한다.
  • paasta-4.0 설치 한 상태에서 recovery해야 한다.(app, 사용자 없어야 함)
  • recovery시 아래 순서를 그대로 따라 해야 한다.

2.3.2. blob-store recovery

bosh cli 로그인 후 아래 명령어를 실행한다.
1
$ bosh -e {director_name} -d paasta scp {blob_file_path}/blobstore.tar singleton-blobstore:/tmp #blob file upload
2
3
$ bosh -e {director_name} -d paasta ssh singleton-blobstore #blobstore vm 접속
4
$ sudo su -
5
$ cd /tmp/
6
$ mv blobstore.tar /var/vcap/store
7
$ cd /var/vcap/store
8
$ rm -rf shared/cc-buildpacks/
9
$ tar xvf blobstore.tar
10
$ cd shared
11
12
$ mv xx.xxx.xx.xx.xip.io-cc-buildpacks/ cc-buildpacks (디렉토리명 변경)
13
$ mv xx.xxx.xx.xx.xip.io-cc-resources cc-resources
14
$ mv xx.xxx.xx.xx.xip.io-cc-packages cc-packages
15
$ mv xx.xxx.xx.xx.xip.io-cc-droplets cc-droplets
16
$ exit
17
$ exit # blobstore vm 에서 나온다.
Copied!

2.3.3. uaa database recovery

uaa는 사용자 정보 및 인증정보를 보관하고 있다.
1
$ bosh -e {director_name} -d paasta ssh database #database vm 접속
2
$ cd /var/vcap/packages/postgres-x.x.x/bin/
3
$ ./psql -h 127.0.0.1 -p 5524 -U uaa -W uaa (password는 paasta deploy시 설정한 uaa_database_password)
4
5
Database login
6
# delete from external_group_mapping;
7
# delete from groups;
8
# delete from group_membership;
9
# delete from oauth_client_details;
10
# delete from users where username = 'admin';
11
12
13
수정한 uaadb-data.sql 에 있는 내용을 실행한다.
14
# \q (postgres exit)
15
16
$ exit
17
$ exit
Copied!

2.3.4. cloud_controller database recovery

1
$ bosh -d paasta ssh database
2
$ cd /var/vcap/packages/postgres-x.x.x/bin/
3
$ ./psql -h 127.0.0.1 -p 5524 -U cloud_controller -W cloud_controller (password는 paasta deploy시 설정한 cc_database_password)
4
5
Database login
6
# delete from buildpacks;
7
# delete from clock_jobs;
8
# delete from domains;
9
# delete from isolation_segments;
10
# delete from env_groups;
11
# delete from lockings;
12
# delete from spaces;
13
# delete from organizations;
14
# delete from quota_definitions;
15
# delete from stacks;
16
# delete from users;
17
# delete from security_groups;
18
19
# 수정한 ccdb-data.sql 에 있는 내용을 실행한다.
20
# \q (postgres exit)
21
$ exit
22
$ exit
Copied!
환경에 따라 기존 Application이 start 되는데 시간이 걸 릴 수 있다.

2.3.5. 사용자 및 App 확인

1
$ cf login
2
$ cf apps
Copied!
Last modified 8mo ago