それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

gitlabのリストアのお試しにmultipassでgitlabをインストール

gitlab の初回インストール

データの書き戻し(リストア)やバックアップ(取得)の練習用・実験用に、サクッとGitlabを立ち上げる。

docker 使うより楽だと思う。

multipass 上に作ってみる。

multipass でインスタンス生成

multipass launch --name sample01 -d 20G

仮想マシンの中に入る

multipass shell sample01

update install

sudo apt update && sudo apt upgrade -y

apt を軽量化

echo -e  "APT::Install-Suggests 0;\nAPT::Install-Recommends 0;" | sudo tee /etc/apt/apt.conf.d/00-no-install-recommends

レポジトリ取得元を変える

URL=http://ftp.jaist.ac.jp/pub/Linux/ubuntu/
sudo sed -i.back "s|http://archive.ubuntu.com/ubuntu/\?|${URL}|" /etc/apt/sources.list

プロキシを使ってローカルキャッシュ

echo 'Acquire::HTTP::Proxy "http://192.168.100.5:3142";' |sudo tee  /etc/apt/apt.conf.d/01proxy

man なしにして無駄を省略

cat <<EOF > 01-nodoc
# Delete locales
path-exclude=/usr/share/locale/*

# Delete man pages
path-exclude=/usr/share/man/*

# Delete docs
path-exclude=/usr/share/doc/*
path-include=/usr/share/doc/*/copyrigh

EOF
sudo mv 01-nodoc /etc/dpkg/dpkg.cfg.d/01-nodoc

作業に必要なものを入れる。

sudo apt update && \
sudo apt-get install -y curl vim-nox

ロケールを初期設定

sudo locale-gen --purge "ja_JP.UTF-8"
sudo dpkg-reconfigure --frontend noninteractive locales

gitlab をインストール

sudo apt-get install -y curl openssh-server ca-certificates tzdata perl && \
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash && \
apt update 
sudo apt install  gitlab-ce=15.3.0-ce.0
sudo gitlab-ctl reconfigure # 初期化

バックアップのテスト

インストールが終わったらバックアップの書き戻し練習

マシン・インスタンスにバックアップをコピー・またはマウント

バックアップをコピー(小さい場合)

multipass transfer backups-gitlab.tgz sample01:/home/ubuntu/backups-gitlab.tgz

バックアップをマウント(でかい場合)

mkdir backups 
mv 1662684239_2022_09_09_15.3.3.tar backups

multipass stop sample01
multipass mount  ./backups sample01:/var/opt/gitlab/backups
multipass start sample01

設定をリストア

sudo rsync -av my_gitlab-etc/  /etc/gitlab/
sudo gitlab-ctl reconfigure # DB初期化

バックアップをリストア

NAME=1655916823_2022_06_23_15.0.3
sudo cp 1655916823_2022_06_23_15.0.3_gitlab_backup.tar /var/opt/gitlab/backups/
sudo gitlab-backup restore BACKUP=$NAME # 書き戻し
sudo gitlab-ctl reconfigure 

バックアップからリストアでうまくいかないときは、gitlab をきれいに消してあげる。

sudo apt purge gitlab
## 完全に消すので注意
sudo rm -rfi /opt/gitlab/ 
sudo rm -rfi /etc/gitlab/
sudo rm -rfi /var/opt/gitlab/ 
sudo rm -rfi /var/log/gitlab/

確認

sudo gitlab-backup create STRATEGY=copy

後片付け

おわったら、仮想マシンインスタンスを消す。

multipass stop sample01
multipass delete sample01
multipass purge

multipass お手軽でいい

multipass は、lxcとコマンドがほぼ同じ。覚えることが少ない。

また、multipassが動けばあとはおなじになるので、WindowsMacOSLinuxでも問題なく使えるのが嬉しい。