Fuel 9.0 to 9.1 업그레이드

Oct 15, 2016



Fuel Master 준비

Step 1) Fuel CLI 접속

Step 2) mos-update YUM Repository가 존재하는지 확인

[root@fuel ~] cat /etc/yum.repos.d/mos-updates.repo

존재하지 않는다면 추가

[root@fuel ~] yum-config-manager --add-repo=http://mirror.fuel-infra.org/mos-repos/centos/mos9.0-centos7/updates/x86_64/
[root@fuel ~] rpm --import http://mirror.fuel-infra.org/mos-repos/centos/mos9.0-centos7/updates/RPM-GPG-KEY-mos9.0

Step 3) YUM 캐쉬 클린

[root@fuel ~] yum clean all

Step 4) python-cudet (code-based integrity check tool) 설치

[root@fuel ~] yum install python-cudet

Step 5) cudet 설정

[root@fuel ~] cd /usr/share/cudet
[root@fuel cudet] ll
total 16
-rw-r--r--. 1 root root  454 Oct 15 01:16 cudet-config.yaml
drwxr-xr-x. 4 root root 4096 Oct 15 01:12 db
drwxr-xr-x. 3 root root 4096 Oct 15 01:12 rq
-rw-r--r--. 1 root root  209 Sep 21 12:03 rq.yaml

[root@fuel cudet] vi cudet-config.yaml
-->
fuel_user: 'admin'
fuel_pass: 'PASSWORD!'
fuel_ip: '127.0.0.1'
rqdir: './rq'
rqfile: './rq.yaml'
cudet_db_dir: './db'
outdir: '/tmp/cudet/info'
filters:
    check_master: False
    status: ['ready']
    online: True
    # you can filter by roles
    roles: []
    # you can filter by node ids
    id: []
    # you can filter by env ids
    cluster: []
# timeout is seconds for data collection (per command) - increase if needed
timeout: 600
clean: False

Step 6) cudet 실행

[root@fuel cudet] cudet -d -e 1 -c ./cudet-config.yaml

이 후, 각 노드별로 업데이트될 팩키지 리스트가 출력된다.

Fuel Master 업그레이드

Step 1) nailgun 및 astute 팩키지 업데이트 + dbsync + 재시작

[root@fuel ~] update-prepare prepare master

Step 2) YUM 팩키지, 서비스, 설정 업데이트

[root@fuel ~] update-prepare update master

Slave 노드 준비

Step 1) 노드 APT 인덱스 업데이트

[root@fuel ~] update-prepare prepare env <ENV_ID>

업데이트 중, 기존에 설치했다 지웠던 플러그인 팩키지가 필요없는데도 문제를 일으키면 해당 노드로 접속하여 지워준다.

[root@controller001:~] rm /etc/apt/sources.list.d/influxdb_grafana-0.10.0.list

Step 2) 노드 재배포 테스트 (실제 배포되지는 않음)

[root@fuel ~] fuel2 env redeploy --noop <ENV_ID>

이 후 Fuel UI에서 진행 및 결과 확인

Slave 노드 업그레이드

Step 1) 업그레이드 및 재배포 수행

[root@fuel ~] fuel2 update --env <ENV_ID> install --restart-rabbit --restart-mysql

이 후, Fuel UI에서 진행 및 결과 확인

Step 2) 다음 명령어로 각 노드별로 팩키지가 업데이트되었는지 확인해본다.

[root@fuel cudet] cudet -d -e 1 -c ./cudet-config.yaml
...
DONE
Results:
  Versions verification analysis: OK
  Built-in md5 verification analysis: OK
  Potential updates: ALL NODES UP-TO-DATE

References