個人かつローカルで使ってるALMinium環境があるんですが、いい加減古いのでバージョンアップ。

宝の持ち腐れですが、ALMinium環境は完全に一人で使ってます。

チームで使うと効果的なんでしょうけど、一人でもExcelで課題管理するより数倍効率良いです。

参考サイト

ALMiniumをバックアップ、バージョンアップ、リストア

環境

旧環境

OS: VirtualBox上でCentOS6.2(どうやってインストールしたかは忘れた。ISOからかなぁ?)

ALMinium: バージョンはよくわからず、2013年9月頃にインストールしたものらしいです。

Redmine: 2.3.1.stable

Host OS:Winodws 7

VMからHostOS(win7)のフォルダをマウントしてバックアップ先としています。

新環境

OS: Vagrant + VirtualBox(on Windows 7) + Ubuntu16.04

ALMinium: ayapapa版ALMiniumの最新版を使います。

Redmine: 3.4

Host OS:Winodws 7

いまどきDockerじゃねーの?って気もしますが、Win7でDocker tools使って(一人用とはいえ)本番環境作るのはちょっと怖い気がします。

バージョンアップ方法

まっさらな環境(VM)を作ってデータを移行します。

出来ればプロビジョンでさっくり再構築できるようにしたいので、なるべくコマンドラインで作業します。

新環境構築(OS)

VirtualBoxやVagrantは事前にインストール済み。

ssh接続できるツールがあると良いと思います。git bashが入ってたのでこちらを利用。

Ubuntu16.04

vagrantでさっくり作ります。

1
2
3
$ mkdir c:\var\alm
$ cd c:\var\alm
c:\var\alm$ vagrant init bento/ubuntu-16.04

gitで構成管理します。.gitignoreを追加して。

1
2
3
c:\var\alm$ git init
c:\var\alm$ git add .
c:\var\alm$ git commit -am "Init"

後は随時コミットしていきます。

ネットワーク(暫定)

旧環境と同じIPを使いたいところですが、セットアップ中はプライベートアドレスを使います。

Vagrantfileに

1
config.vm.network "private_network", ip: "192.168.33.18"

を追記。

IPアドレスはプライベートアドレスならなんでもいいんじゃないすかね。

起動と確認

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
c:\var\alm$ vagrant up
c:\var\alm$ vagrant ssh
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-116-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 packages can be updated.
0 updates are security updates.

#ネットワークが外までつながってるか確認
vagrant@vagrant:~$ curl  www.google.com
<!doctype html><html itemscope="" itemtype
... だー ...
vagrant@vagrant:~$

sshでもチェック。

1
2
3
4
$ ssh vagrant@192.168.33.18
vagrant@192.168.33.18's password: #初期パスワードは vagrant
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-116-generic x86_64)
...

作業用ユーザー追加

旧環境ではadminというユーザー名で作業したたんで、同じに作ります。

1
2
3
vagrant@vagrant:~$ PASSWORD=$(perl -e 'print crypt("some_password", "\$6\$". crypt(rand, rand 100));')
vagrant@vagrant:~$ sudo useradd -m -s /bin/bash -k /etc/skel -p $PASSWORD admin
vagrant@vagrant:~$ sudo gpasswd -a admin sudo

ssh接続の設定

旧環境から /home/admin/.ssh/authorized_keysの内容をVagrantフォルダ以下の適当なファイル(c:\var\alm\admin\authorized_keysにしました)にコピーします。

今回は $cat /home/admin/.ssh/authorized_keys して、PC上のエディタでコピペ。

そしたら新環境に取り込みます。

1
2
3
4
vagrant@vagrant:~$ sudo -u admin mkdir /home/admin/.ssh
vagrant@vagrant:~$ sudo -u admin cp /vagrant/admin/authorized_keys /home/admin/.ssh/
vagrant@vagrant:~$ sudo chmod 600 /home/admin/.ssh/authorized_keys
vagrant@vagrant:~$ sudo chmod 700 /home/admin/.ssh

その後sshクライアントで、旧環境の設定をコピーして接続できるはず。

ssh コマンドだったら ~/.ssh/configを編集ですな。

sshdサーバの設定

鍵認証必須にします。

1
2
3
4
5
6
#バックアップ
vagrant@vagrant:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.`date +%s`.bck
#変更
vagrant@vagrant:~$ sudo sed -r -i "s/^#?(PasswordAuthentication) yes/\1 no/" /etc/ssh/sshd_config
#反映 sshD じゃないのね
vagrant@vagrant:~$ sudo service ssh restart

スクリプト

ここまでの作業をスクリプト化しました。

Vagrantfileに

1
config.vm.provision "shell", path: "provision.sh"

すると、プロビジョン時に実行されます。

次にALMiniumのインストールになります。

長くなったんで次に書きます