2019年11月30日土曜日

【44】AtoMアップグレードの練習(続編)

前回AtoMのアップグレードを失敗。師範の教えに従いその続きをやります。
師範が示した本日のシナリオは次の通り。
(1)AtoMの再構築
(2)WEBでAtoMに適当にデータを入力する
(3)バックアップの作成
(4)再びAtoMを新規構築
(5)バックアップしたデータの移動
師範の指南書(スクリプト集)を、師範代の力を借りて解読しながら1行ずつ実行。

(1)前回壊してしまったので、新しくAtoM2.5.1を入れます。
次の命令文で再構築。
mysql - h localhost -u root -p -e 'DROP database atom; CREATE DATABASE atom CHARACTER SET uft8 COLLATE ytf8_unicode_ci;'
 atomというデータベースを壊して、同じ名前の新しいデータベースを作る。
sudo rm -r /usr/share/nginx/atom
 昔インストールしたatomファイルを廃棄します。
sudo cp -r /home/.../atom251 /usr/share/nginx/atom
 過去にどこかに入れておいたatom2.5.1を所定のnginx以下のatomにコピー
sudo chown -R www-data:www-data /usr/share/nginx/atom
 Nginxから動かせるように、権限を初期のrootからwww-dataに変更

続いてAtoMのブラウザ画面で初期設定を行う。
以下コマンドで最終調整。
sudo php /usr/share/nginx/atom/symfony cc  (キャッシュ消す)
sudo php /usr/share/nginx/atom/symfony search:populate   (AtoM内のインデクスを再構成)
sudo php systemctl restart php7.2-fpm
systemctlコマンドはsystemdの制御に使います。systemdはLinuxの起動処理やシステム管理を行う仕組みです。https://dev.classmethod.jp/cloud/aws/systemd-getting-started/を見てください。
sudo php systemctl restart memcached
https://www.accesstomemory.org/fr/docs/2.5/adminmanual/maintenance/troubleshooting/#troubleshooting-restart-memcached を参照。memcachedは、分散型メモリキャッシュシステムでして、Webサイトの反応を速くします。そいつをリスタート。
sudo systemctl restart atom-worker

(2)ウェブブラウザでATOMデータを入力する
ll /usr/share/nginx/atom/uploads
ll /usr/share/nginx/atom/downloads
を見て、空であることを確認
その後、目録記述を入力した上で画像をアップロード。
ll /usr/share/nginx/atom/uploads
上の命令文でアップロードしたデータがあることを確認。
目録プリント(AtoMウェブサイトのインターフェースの右側にある機能)でcsvファイルでアイテムリストをダウンロード。
ll /usr/share/nginx/atom/downloadsにあるcsvファイルを命令文catで見て、確かに存在していることを確認。

(3)バックアップを作る
cp -r /usr/share/nginx/atom/uploads /.../uploads
cp -r /usr/share/nginx/atom/downloads /.../downloads
アップロードしたデータ、ダウンロードしたデータを、バックアップするために別の場所(上記の事例ではどこかに"uploads""downloads"というディレクトリを作成)にコピー。前回はうっかり/tmpに入れたので、シャットダウンした時点で全部消えました。自分の恥ずかしい過去もtmpファイルに入れて、寝た(シャットダウン)時点で消えてくれてたらどれだけ嬉しいでしょう。僕は、はるか昔に合コンで女性に枝豆を投げつけたことが...いや本題に戻りましょう。
ls -lR /.../uploads/
ls -lR /.../downloads/
で、きちんとコピーできていることを確認しました。
引数の-lで各ファイルの詳細を、-Rでディレトリに含まれる内容を全部含めて表示します。
mysqldump -u atom -p atom > /.../atomdb.sql
もともとつかっていたAtoMのデータベース登録分を別のところに出力しました。
llでバックアップしたファイルatomdb.sqlに容量があることを確認。

(4)再びATOMを新規構築
最新版AtoM2.5.3に差し替えて、(1)と同じ作業を行います。
AtoM2.5.3のインストールはhttps://www.accesstomemory.org/en/docs/2.5/admin-manual/installation/linux/ubuntu-bionic/#download-atomを参照。今回はoption1です。
sudo mkdir /usr/share/nginx/atom
sudo tar xzf atom-2.5.3.tar.gz -C /usr/share/nginx/atom --strip 1
--strip 1は、https://kakakakakku.hatenablog.com/entry/2018/06/13/220940によれば、
展開後のディレクトリを切り捨てて,第2階層をフラットに展開することができるようです。
atom-2.5.3.tar.gzファイルの第1階層を無視して/usr/share/nginx/atomに展開しとるようです。
それで、(1)「AtoMのブラウザ画面で初期設定を行う以下」同様の処理。
で所定の場所にatom2.5.3を入れました。



(5)バックアップしたデータの移動
sudo cp -r /コピー保存したところ/.../uploads /usr/share/nginx/atom/.
sudo cp -r /コピー保存したところ/.../downloads /usr/share/nginx/atom/.
sudo rm -f /usr/share/nginx/atom/downloads/jobs/*
 過去のexportファイルを消去する。

mysql - h localhost -u root -p -e 'DROP database atom; CREATE DATABASE atom CHARACTER SET uft8 COLLATE utf8_unicode_ci;'
mysql -u atom -p atom < atoms.sql
 バックアップしておいたデータベースファイルをSQLに入れる。
cd /usr/share/nginx/atom
sudo php symfony tools:upgrades-sql 
 最新のAtoMにデータベースをくっつける。ミスしたら過去はサヨナラ、あなたのAtoMは赤ん坊です。
sudo php symfony digitalobject:regen-derivatives 
 デジタルファイルとそのアクセス用ファイル、サムネイルを再構成。


以下は以前と同文。

sudo php symfony search:populate
sudo php symfony ccsudo php systemctl restart php7.2-fpm
sudo php systemctl 
restart memcached
sudo systemctl restart atom-worker
はい、今回はうまくいきました。今後は師範のアップデート用の命令文集を今の環境に合わせて少し更新してもよさそうです。
次回はArchivematicaを弟子たちが自力で構築し、AtoMとRsyncです。
日程は、

12/20(金)
です。
皆さん来てください。



2019年11月23日土曜日

【43】AtoMインストール、アップグレードの練習

今日は師匠の力を借りず、自力でAtoMのアップグレード&インストールができるように練習します!できるだけ多くの作業を体験するために、以下の作業をします。

1)AtoM2.5.1を2.5.3にアップグレードする
2)アップグレードしたものを消す
3)AtoM2.5.3をインストールしする

入れたり消したり、ちょっとバカみたいですが、皆がわかるようにやってみましょう!

作業のログを記録する方法
今日はTera Termを使って、道場君(AtoMサーバ)にリモートで操作します。Tera Termの「file」 メニューから「log」をクリックして、 logの保存場所とファイル名を指定しておくと今日の作業記録のログが残ります。作業の開始と同時にデスクトップにテキストファイルが生成されます。

では、作業に入りましょう。

まずは、AtoM マニュアルからadministrator manualのUpgradingを読みながら進めます。
https://www.accesstomemory.org/en/docs/2.5/admin-manual/installation/upgrading/#installation-upgrading

以下の3つは飛ばします。
Check minimum requirements
Read the release notes
Make sure the dependencies are updated

ここから本格的なアップグレード作業になりますが、大まかな手順は、

  1. 既存データのバックアップをとる
  2. AtoM2.5.3をインストールする
  3. バックアップを取ったデータをコピーする
  4. アップグレードを実施する

です。

1.バックアップを作成
AtoMのuploads、downloadsのディレクトリ、そしてMySQLのデータベースが対象です。
#cp コピー元 コピー先
$ cp  /usr/share/nginx/atom/uploads/ /tmp/uploads/
$ cp  /usr/share/nginx/atom/uploads/ /tmp/downloads/
cpではなくrsync -avでもOKです。rsync=同期は以下を参照。
今回はrsyncを使いました。

#mysqldump -u ユーザー名 -p 古いDB名 > /tmp/database.sql
$ sudo mysql -u atom -p atom > /tmp/database.sql
私たちの場合、ユーザー名=atom、古いDB名=atomだったので、上記の命令文になっとります。

この部分は、マニュアルと若干違いますが、解釈が難しかったです。要するの、マニュアルでは、uploadsとdownloadsの二つのディレクトリのバックアップを取るのですが、rsync(二つを同期)または、cp(必要なファイルだけコピー)の二つの方法が紹介されています。cpは指定のものをコピーするだけですので、コピー先にすでにあったものに影響はありません。rsyncは、同期先が同期元と一緒の状態になるので、同期先にだけあったものは削除されます。

また、$ rsync -av /var/www/icaatom_old/uploads/ /usr/share/nginx/atom/uploads/ で、/var/www/icaatom_old/uploads/ は古いAtoMの情報なので、もしこれがすでに/usr/share/nginx/atom/uploads/ であれば、二つは同じになる。

しかし、私たちは、uploadsディレクトリの場合、/tmp/uploadsにバックアップを取っているので、これを/usr/share/nginx/atom/uploads/ に入れればOKです。downloadsも同じです。

2.AtoM2.5.3をインストール

方法は2つありますが、今日はGithubを利用します。

#2.5.xは2.5.3にしないで、このままにする。
$ sudo git clone -b stable/2.5.x http://github.com/artefactual/atom.git /usr/share/nginx/atom

3.バックアップしたデータを移動
# cp コピー元 コピー先 $ cp -r /tmp/uploads/ /usr/share/nginx/atom/uploads/
$ cp  /tmp/downloads/ /usr/share/nginx/atom/downloads/
rsync -avでも可。今回はrsyncを使用しました。

JobsはAtoMを動かすと生成されるものなので、Jobs下にある過去の記録は消します。
$ rm -r /usr/share/nginx/atom/downloads/jobs/*
ちなみに-rでも-Rでも一緒。

古いデータベースを消して、新しいデータベースを作成します。
(マニュアルでは、この作業の直前にDBのバックアップを取りますが、バックアップはすべての作業をする前に取っておきましたので、すぐこの作業をはいります。)
$ sudo mysql -u username -p -e 'drop database atom; create database atom character set utf8 collate utf8_unicode_ci;'

次はバックアップを新しく作成したDBへコピーします。
$ sudo mysql -u atom -p atom < /tmp/database.sql

以下のようにコマンドを打つとDBが作成されたか確認できます。
#llは、「ls -l」と同じ
$ ll /tmp/database.sql

4.アップグレードを実施
まず、AtoMのディレクトリへ移動します。
$ cd /usr/share/nginx/atom

そして、アップグレード実施
$ sudo php symfony tools:upgrade-sql

しかし、Database 'propel' does not exist. とういうエラーがでました。

ヒューここまで来るのに、かなりの時間がかかりましたが、結局アップグレードは失敗しました。しかも、今日やろうとしていたことの一つもできていません。そして、既存のAtoMはデータベースをけしたり、ディレクトリを消したりといじったので、めちゃくちゃになりました〜〜ハハハハハハハハハハハハ (^O^;) 

もう帰ります~(ToT) 

===================
次回は、11月29日(金)です。
皆来てね〜

次回はエラーを直してみるところから続けます。エラーについては、ユーザーフォーラムを参考にしましょう。ここにあるようにconfigファイルを少しいじってみます。

後日師匠のコメント

やりたかったことは、ATOMのアップグレードだと思いました。
ブログの
1.(バックアップの作成:backup.sh)
2.(ATOM2.5.3をインストール:rebuild.sh)
3.(バックアップしたデータを移動:upgradeatom.sh)

の2.の段階の詳細が無いので正確ではないのですが、この(2.の)段階で処理を省略した部分があったのではないでしょうか?

2.でATOMのセットアップを一旦完了する必要があります。例えばデータベース名や、その持ち主のパスワード等を設定する必要があります。
この設定がなされていると/usr/share/nginx/atom/config/config.php
ファイルが作られ、settings.ymlやpropel.ini等が設定されます。
他にもATOMの初期設定が行われているかもしれません。
もし、2.で設定を完了せずに3.へ進むと指摘されたエラーなると思います。

上記の場合:

1.で保存すべきデータ(ディレクトリー)が/tmpに保存した場合はシステムをリブートするとなくなっているので、以下の手順でやってみてはいかがでしょうか。

(1)ATOMの再構築:参考:rebiuld.sh
(2)WEBでATOMに適当にデータを入力する
(3)バックアップの作成:参考:backup.sh
(4)再びATOMを新規構築:rebiuld.sh
(5)バックアップしたデートの移動:upgradeatom.sh

各スクリプトに書かれていることを理解してください。
なお、ブログ内でcpコマンドとrsyncコマンドが少し説明されていましたが、cpでディレクトリー以下全体をコピーするには、
「cp -r」で再帰的(-r)にコピーする必要があり、UBUNTUでは
チェックなしに上書きコピーされます。





2019年11月18日月曜日

【42】Reborn: AtoMインストールまで。

少しずつ、寒さが忍び寄っている気がします(これを書いている部屋はストーブを焚いています。)。
皆さま体調にお気をつけください。

前回話した内容を踏まえ、今回は自分たちで独自に
ゼロから(Ubuntuのインストールから)システムを構築することを想定して、
技術的にわからないことを置き去りにせずに確認していく、内容となりました。
実際にPCを操作された小澤さん、お疲れ様でした。
箇条書きになってしまいますが、設定項目は以下の通りです。

VirtualBoxにて立ち上げる仮想マシン
- ディスプレイ
- プロセッサの数
- メモリサイズ (8GB/16GB 選べるメモリはマシン依存)
- ハードディスク (画像/映像を入れる場合には多めに設定、今は50GBくらい)
- ネットワーク ブリッジに設定

OSをUbuntu desktopとUbuntu serverどちらにする問題
→グラフィカルユーザーインターフェイス(GUI)の有る無しによる違い、isoファイルのサイズは全然違います。
→操作性の良さから、今回もUbuntu desktopをインストールします。

AtoM(2.5.3)のダウンロードとインストール
以下サイトの進行に合わせて操作、はいつも通りか。
https://www.accesstomemory.org/en/docs/2.5/admin-manual/installation/linux/ubuntu-xenial/

最終的に、AtoMのインストールまで行けました。

ブログ記事を書いていて、それも全く大した内容ではないにもかかわらず思うのですが、
やっぱり内容が専門的で、理解が難しいです。

今日の議論をきちんと理解して、自分で実践できるまでには道のりが長いこと痛感しました。
コンピュータについての基本的な知識を、どこか別の場所で仕入れる必要があるのかもしれません。
ITパスポートとか、基本情報技術者試験の参考書等が役に立つのではないか、と思いました。

最近の投稿

【108】Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを読む

 Gijs Aangenendt氏の修士論文、Archives in the Digital Age: The use of AI and machine learning in the Swedish archival sectorを半分読みました。 前半は、AIを扱ったアーカ...

人気の投稿