Rancher をバージョンアップしようとしていつもいつもデータを吹っ飛ばしてしまうので、ミスらないようにシェルスクリプトを書きましたとさ。
1. 前提
Rancher シングルインストールが前提(HAとかMultiの場合はドキュメント読んで)
コンテナーIDは自分で埋め込み。
そのうち自動で取得するようにしてもいいかも。
バージョンも埋め込み(適当に誰かいい具合にして)。
2. シェルスクリプト
Upgrades and Rollbacks | Rancher Labs
https://rancher.com/docs/rancher/v2.x/en/upgrades/
このドキュメントそのままだけど、それでも、まあ失敗する奴もいるってことさ。
#!/bin/bash
export RANCHER_CONTAINER_ID=<>
export RANCHER_CURRENT_VERSION_TAG=v2.0.2
export UPCOMING_VERSION=v2.0.6
docker ps
docker stop $RANCHER_CONTAINER_ID
docker create --volumes-from $RANCHER_CONTAINER_ID \
--name rancher-data rancher/rancher:$RANCHER_CURRENT_VERSION_TAG
docker run --volumes-from rancher-data -v $PWD:/backup \
alpine tar zcvf /backup/rancher-data-backup-$RANCHER_CURRENT_VERSION_TAG.tar.gz /var/lib/rancher
docker pull rancher/rancher:$UPCOMING_VERSION
docker run -d --volumes-from rancher-data --restart=unless-stopped \
-p 80:80 -p 443:443 rancher/rancher:$UPCOMING_VERSION
gistに貼ったので適当にご利用ください。
https://gist.github.com/ynott/5c53809549a254f675baa00372499e70
3. 使い方
3.1 RANCHER_CONTAINER_ID
docker ps してもいいし、
sudo docker ps --filter ancestor=rancher/rancher --format "{{.ID}}"}
とかしてもいいかもね。
3.2 RANCHER_CURRENT_VERSION_TAG
適当に入れてください。
3.3 UPCOMING_VERSION
exportのところを Docker Store から探して
rancher/rancher Tags - Docker Store
https://store.docker.com/community/images/rancher/rancher/tags
バージョン指定する
例:v2.0.7
3.4 実行
$ bash ./rancher-upgrade.sh
でよかろうかと