2019年12月21日土曜日

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

Hi!! Guys!!

本日は、前々回から続く、AtoMの練習です。ボク、出てないけど…
初めてこちらを更新するので、どうなるか…概要だけでも何とか書き留めたいと…

今日は、

アップグレードしたAtoMとAchieveMaticaがつながっているか?

を確認します。そんだけ?いやいや今日は12月20日ですよ!つまりは、
忘年会>※9時に新しい豚肉の食べ方を体験しにいくのです
です。作業をちゃんとするだけ、偉いです!!!ってことで、始めます。

<1>AtoMとmaticaの連携を確認
(1)AtoMを開きます。
→起動OK
(2)RemoteDesktopからmaticaを起動をします。※Win10からUbuntuにアクセスする場合は<console>選択
→起動OK
=どちらも起動を確認|連携を確認
(3)AtoMの設定:plugin管理
  ・qtSwordplugin/ restAPIpluginのチェックボックスをチェック
        REST APIは、次を参照、https://qiita.com/masato44gm/items/dffb8281536ad321fb08
(4)AtoMのシステムをリスタート
  ※コマンド:hitstory
           にて過去のコマンドラインを確認すると便利です。
   1: sudo systemctl restart gearman-job-server
            2: sudo systemctl restart php7.2-fpm
            3: sudo systemctl restart atom-wor ker
(5)maticaの作業:Transfer※過去のブログ内容を参照してください
      ※好みの機能を選択し、いらない項目は"cancell"を選択
  ※AtoM/Binderのアドレス等、AtoM(相手の情報)を確認しないと、当然Transferしません。
  →が…なぜかうまくいきません。maticaでのTransferはうまく言ってるのですが(faileになった項目がないので)、AtoM上には「untitled」に…さらに、Internal Server Error 500…
  ・最後のチャンス(お店9時予約なので)=AtoM-Workerを改めてスタート
  コマンド: sudo systemctl start atom-worker
  →ここから再度maticaでtransferを…(祈
  ダメです。同じ結果でした。

 ということで、本日はタイムアップです。今年最後の道場は、スッキリした気分を得られないまま終了となりました。とはいえ、「通常通り」なんていいながらビールを飲んでました。

 本年もお世話になりました。新年は1月10日からスタートです。

 みなさま良いお年を!!
  

 

          


 

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パスポートとか、基本情報技術者試験の参考書等が役に立つのではないか、と思いました。

2019年10月28日月曜日

【41】今後の方針を考える回

「次回の予定」だった10月11日が台風直撃で延期し、約一カ月ぶりの道場です。

前回の時点では、archivematicaからAtoMへのDIPアップロードに一区切りがつき、レコマネソフトであるAlfrescoの検討に入ろうとなっていたと思います。ですが、道場の延期を決めた諸連絡の中で、より基礎的な技術等を習得するための合宿!
という提案がされました。

何か問題があった時の原因や対策に関して入澤先生がお話下さっても、各人の理解度は様々です。特にウェブサーバーとのやり取りに関する知識や、単にUbuntuに関する知識と経験は参加者によってかなりバラつきがある状態です。

とはいえ、「基礎から」学ぶといってもスタートラインとゴールを共有しないと、何をどう学んでいくのか方針が立ちません。

従ってまずはお互いの知識や認識を確認することになりました。
とっかかりとして、先生から抑えておきたい基本的なポイントを教えていただき、わからないことを都度質問していく形で進行していきます。
とはいえ、聞いてる執筆者当人の理解度が一番低く、話の展開についていけていないところがありました。補足頂ければ幸いです。

まずは、AtoMを構成する基本的なシステムからです。
L Linux (OS)
E Nginx (ウェブサーバー)
M MySQL (データベース)
P PHP  (スクリプト言語)
AtoM1.0がApacheを推奨していた頃のLAMPからもじった覚え方です。
個々の制御とそれぞれのつながりを理解するところから始めましょうとなりました。

早速の疑問:NginxとApacheは何が違うの?
Apacheはマルチプロセスモデルであり、一つ一つの接続に新たなプロセスを建てる(=フォークする)ので、リクエストが増えるとスワップする可能性がある。一方のNginxは1つのプロセスで複数処理できるので、スワップする可能性が低く、同時アクセスの処理に特化しています。
実際に入澤先生のパソコンに入っているAtoMのプロセスがどう処理されていくかをtopコマンドを使いながら確認していきます。

次はphpMyAdminでMySQLでデータがどのように格納されているかを確認。
その後lsコマンドを使ってUbuntuのrootディレクトリを見ながら、ファイルのパーミッションについて確認します。同時にchmodを使うとパーミッションを変更できることを確認。
やったことは↓のサイトの内容と近いと思います。
https://qiita.com/shisama/items/5f4c4fa768642aad9e06

ここまで確認した所で、さて今後の方針をどうしようということでそれぞれの提案がありました。

まずはWさんが道場の今までの目標を整理して下さいました。

Kさんからは個人の動機の違いが指摘されます。
① みんなで触ってみる
② 運営者となる
③ より発展的な構築者になる
それぞれの動機によってどのレベルを目指すかで必要となる技術が違います。
①→②に移行してみて、わからないことがたくさんあった。他の参加者も運営者となると今のままだと運用時に対処できないことが出てくるのでは、という意見。

Sさんからは、学習院から環境が変わったことでトライ&エラーから何かしらの成果が必要になったのではという指摘が。

ただ何人かから指摘があった通り、私達はSEではないので別に全ての仕組みを事細かに知っている必要はないはずです。実際に完璧な理解はなくてもある程度の運用は可能ですし、全てを理解しようとすると時間がいくらあっても足りません。
ところが、本当は(情報処理を含めた)複数の専門家とチームを組みたいのに、その環境が揃うことが殆ど望めないのが現状の辛いところです。

今まで発生したあれやこれやの問題は入澤先生によって解決して頂きましたが、新たな問題が起きたときに、どこでどのような問題が起きているか、ある程度理解できないと実際に運用するときの障害になってしまいます。

ということで今後の方針としては
もう一度ゼロから構築してみて、技術的にわからないことを置き去りにせずに確認していく
という感じになるかと思います。

来週は色々不安な人ほど参加必須ですね!がんばるぞー

2019年9月26日木曜日

【40】 AtoM workerの起動

ウォウウォウ!の掛け声で始まりました本日の道場。

AtoMサーバーでAtoM worker(qtSwordPlugin)が動いていなかった問題を引き続き検討していきます。
まず、ArchivematicaのDIPが問題なくAtoMに移行される別マシンでAtoM workerが起動した状態、つまり正常な状態はどうなのかを確認します。
データベースのSQLファイルの中で、AtoMのAdmin –> Pluginsが登録されている Setting i18n のテーブルを見ます。id_1のテーブルにAdmin –> Pluginsでオンにしたプラグインが入っています。初期設定のatomdb.sql.0とqtSwordPlugin(AtoMWorker)をオンにしたatomdb.sql.1の差分があるかをみるため、Linuxのdiffコマンドで双方のファイルを比較すると、sql.1つまりid_1の方にのみ、qtSwordPlugin(AtoM worker)がありました。
同じ作業をAtoM workerの起動しないテスト中のAtoMで試みたところ、全く同じ状態の設定でした。

したがって、前回はエラー後のキャッシュ(ウェブサーバーのNginxにはけっこう残る)をすべて消せていなかったのではないかと考え、再度DIP アップロードをテストしました。やはり同じエラーが起こります。
sudo php usr/share/nginx/atom/symfony jobs:worker
を実行しても、AtoM workerが起動していません。

いつものように、AtoMの相談掲示板を見ていると
AtoM2.5.1にAtom workerのエラーがあり、バグのチケットになっていることがわかりました!本日テストしているマシンは、2.5.1です。
2.5.2で解決したとのことなので、バージョンアップを試みます。
アップグレードの記述はこちら
アップグレード後は、忘れずにAdmin –> PluginsでqtSwordPluginをオンにする。
でも失敗。
どうやら、2.5.2で修正したのは一部で、まだバグは残っているようです。
AtoM2.5では、MySQLをバージョンアップしたことが原因で、AtoM workerが不安定になってしまっているそうです。
現在のところの対応策が、こちらにありました。MySQLとAtom workerがうまく連携しない場合、SQLからのスタートを待つため、Atom workerの時間制限を延長するよう環境設定を変更しているようです。*今回は実行していません。

さて、バグのチケットに下の対応方が書かれていたので、
root@atom-host:/var/log/nginx# sudo service gearman-job-server restart
root@atom-host:/var/log/nginx# sudo service php7.2-fpm restart
root@atom-host:/var/log/nginx# sudo service atom-worker-host restart
したがってやってみます。
なんとDip アップロードが成功しました。

AtoM内でDIPがあるべき場所(ディレクトリ)に運ばれるには、Gearman -> php7.2 fpm->Atom workerという手順で各アプリが起動している必要があるそうです。これが上記の命令文で正常に動いたのではないかと考えられます。

さて、次回以降の日程は
10/11
10/25
11/8
です。

レコマネのソフトウェア、Alfrescoをテストします。

2019年9月15日日曜日

【39】archivematicaから共生研のアーカイブズ(AtoM)へのDIP uploadを試みる(1st attempt)

ブログ当番、出張と通学のため永らく更新ができておりませんでした。みなさま申し訳ございません。

前回は、archivematicaからAtoMへのDIP uploadを成功させましたので、今回はいよいよ立教のアーカイブズ(AtoM)へ同じhostのarchivematicaからDIP uploadを試みます。
maticaのバージョンは、すでにlegacyとなった1.9.2です。

前回は、rsync機能を動かす際にパスワードを聞かれてしまう(公開鍵方式ではない)対策として、パスワードを指定する(archivematicaのマニュアルには書いていない)ことでsshの接続を公開鍵方式で実現し、archivematicaからAtoMへのDIP uploadに成功しましたが、本当は、パスワードの指定しなくてもrsync機能は動いたようです。

パスワードが聞かれてしまっていたのは、リモートホスト(今回の場合はarchivematicaの入った仮想マシン)に操作PCから「最初に接続する時だけ」表示されるメッセージに答えていなかったことが原因のようです。

The authenticity of host 'xxx' can't be established.
RSA key fingerprint is yyy
Are you sure you want to continue connecting (yes/no)?

↑こんな感じのメッセージが出ます。yyyのところにはハッシュ値が表示されます。

ということで、共生研のAtoMへのアクセスを操作PCから試みます。
...アクセスできない(connection refused / could not resolve hostname vsphere)。ポート開いてる?別PCではアクセスできることを確認。再起動...
時間はかかりましたが、うまくいきました。

以下のdocumentationの DIP upload (AtoM server configuration)の記述に従って共生研のAtoMが入ったホストを、前回のホストと同じように設定して行きます。


準備完了。いよいよarchivematicaから共生研AtoMへDIP uploadを実施します。
...うまくいかない。おかしい。

そういえば、AtoMのPlugin設定大丈夫?...忘れていました。
The SWORD plugin (Admin –> Plugins –> qtSwordPlugin) must be enabled in order for AtoM to receive uploaded DIPs.

AtoMのuser interface上でpluginをenableにしてリトライ、がうまくいかず。
SwordPluginをactivateしたときに、AtoM workerを再起動する必要がありましたよね?(これは覚えていないですよね、普通)ので、再起動。
やっぱり内部エラー(コード500)、さて困った。

時間をかけて色々やってみましたが、qtSwordPluginWorkerのが上手く動作していないことが原因のようです。しかし解決策わからず、今回は時間切れとなりました。

次回は9月20日です。今回うまく行かなかったところ、2nd attemptです。
今度こそうまく行きますよう...!

2019年8月23日金曜日

【38】ArchivematicaのDIPをAtoMへupload(成功)

勉強会始まりました〜
しばらく間が空いたので、何をすればよいかすっかり忘れていますが、なんとかついていきます。

Archivematicaから生成したDIPをAtoMへアップロードするための設定がうまく行かず、ずっと苦労しています。今日は、前回から続いているRsyncがうまく動作しない問題から取り組みます。

マニュアルを再確認したい人はここ↓
AtoM DIP upload
https://www.archivematica.org/en/docs/archivematica-1.9/admin-manual/installation-setup/customization/dashboard-config/#atom-dip-upload

【実験1】
ずっと聞かないはずのPWを聞いてくるのは、そもそも2台のマシン間で会話ができる設定をする必要があったのではないかということで、以下のようにmaticaからコマンドを入れてみます。

$ ssh xxx.xxx.xxx.xxx

ここで、xxxはアトムのIPアドレスです。これを入力するとpasswordを聞いてくる。ここで最初につなげておけば、AtoMとmaticaのマシン間に会話ができるようになるはずなので、Rsyncで起きたエラー(AtoMへの接続のためのPWを聞いてくる)は解決できるのでは?

しかし、rsync error: unexplained error (code 255)が出て失敗しました。


実験2】
今度はAtoMのマシンに、ユーザーarchivematicaを作成して、PWを作成しました。(マニュアルでは、PWなしで動くサーバーの設定方法が書いてあります。)そして、maticaから事前に作成した公開Keyをコピーして、AtoMの指定されたフォルダに移動しておきます(場所はマニュアルを参照)。

その後、$ sudo passwd -l archivematica でPWをロック(受け付けない設定)しました。そのあとRsyncで会話ができるか確認します。

$ sudo -u archivematica rsync -av a archivematica@xxx.xxx.xxx.xxx

すると、PWを聞かれませんでした。成功です。

以前は前半でも書きましたが、ユーザーarchivematicaをPWなしの状態で作成して、すぐpasswordをロック(-l 設定)しており、コマンドで $ ssh xxx.xxx.xxx.xxx を実行すると、PWを聞かれていました。PWを設定してないのに、なぜ聞いて来るかがわかりません。設定してないので入力仕様がありません。そのマニュアルが以下の部分です。

$ sudo apt-get install rssh 
$ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica 
$ sudo passwd -l archivematica

なぜマニュアル通りにするとPWを聞かれるのかわかりませんが、一応実験2でRsyncがうまく機能するようになりましたので、次に進みます。

次は、maticaからDIPを作って、先ほどの設定がちゃんと動くが試してみると、ちゃんとmaticaとAtoMが会話でき、DIPをuploadできました。ついに成功です!わーい!

※参考1
Ubuntuでrsshを利用する方法については、以下が参考になります。ここでも、一旦PWを作成して会話できるようにしてから、ロックするという方法が書いてあります。とういうことで、今回の解決方法は正しかったと思います。
https://www.thomaslaurenson.com/blog/2018/09/07/restricting-ssh-access-using-rssh/

※参考2
rsshとsshについても理解しておきましょう。
https://kazmax.zpp.jp/cmd/r/rssh.1.html

ということで、今日はここでやっと帰れるようになりました。笑

=============================
次回は9月6日です〜
立教のAtoMとArchivematicaの同期をチャレンジします。
時間があれば、Alfrescoのダウンロードを行います。
https://www.alfresco.com/jp/thank-you/thank-you-downloading-alfresco-community-edition

ブログ当番やらなくてもいいので(笑)、時間のある方は来てくださいな~


2019年7月28日日曜日

【37】Archivematica生成のDIPをAtoMにアップロード

暑くなってまいりました。
ビール飲んでから来る参加者も増えてきました。いい流れです。

本日は、Virtual Machine上のArchivematicaとホストマシンのAtoMをRsyncでお話しできるようにします。

まず、Virtual Machine上のArchivematicaを起動します。
IPアドレスを調べます。

<ちなみにブラウザがIEだと、ArchivematicaのダッシュボードでTransferの表示がうまく機能しない>。

今回、道場では初めてArchivematica1.9を確認しましたが、Access System IDが追加されていました。ここにslug(AtoM内のターゲットとなる記述のURL)を記入しておくと、transferするパッケージから作るDIPを自動的にAtoMに渡せます(事前設定は必要らしい)。
また、Transcribe SIP contentsという機能も入っていました。SIPの文書ファイルをOCR認識する機能のようです。TesseractというオープンソースのOCRアプリを働かせて文字認識させます。

これからRsyncの設定をします。
具体的にはArchivematicaでつくるDIPが、AtoMサイドのマシンの特定のディレクトリにパスワードなしでログインし、コマンドを展開できるようにします。
ややこしいのがAtoM側のディレクトリの名前もarchivematicaである点です。Virtual Machine上のArchivematicaと区別するためにブログではmaticaAtoMと名付けます(実際はarchivematicaです)。

環境設定の説明にしたがって、作業を進めます。
Archivematicaの方で公開鍵・秘密鍵を生成。
公開鍵をコピーしてmaticaAtoMに貼り付け。
AtoMサーバーで説明書通りにコマンドを実行。
chmod700でmaticaAtoMというユーザー以外何もできないという設定になる。

AtoMでの設定が終わると、ArchivemaricaのGUIで設定を行います。
今までRsync commandの項目を打ち込んでませんでした。
例はssh -p 22222 -l user。意味は次の通り。ssh:シェル起動コマンド、-p:ポート、l:ログインuserのネーム。

いつもの通りエラーが発生。
maticaAtoMのディレクトリとお話しできません。ArchivematicaとAtoMは倦怠期の夫婦です。
エラーメッセージをもとに、AtoM内の/tmp/tmpxxxファイルを開くと次のエラーメッセージが表示されていました。
Host key verification failed (code 255)

Rsync設定についてネット検索してここに従い
/home/archivematica/.ssh/authorized_keysのパーミッションを600に変更。

それでも失敗...
セキュリティ上 passwd -l archivematica (パスワード認証によるアクセス不可)としているが、
maticaAtoMにアクセスする際にパスワード要求されてしまう。
maticaAtoMのシェル設定ではrsshで入れるようにしたのに、困ったことです(シェルはここを参照)。
今回はここで打ち止めです。

後日のメーリスの議論でシェル設定が問題では?という話になりました。
/etc/shellsの設定
/etc/rssh.confの設定 
/etc/ssh/sshd_configの設定
Ubuntu 18.04での設定
開発者のうちの一人のブログ
 シェル設定が/bin/bashとなっていて現在の設定と違う
掲示板に出ていた同じタイプのエラー
です。次回はここの検討から始めたいと思います。

次回は
8/23(金)
です。

ビール飲んでも飲まなくても来てください。





2019年7月17日水曜日

【36】AtoM 2.5.1とArchivematica1.9.2のインストール

季節の変わり目でしょうか、本日は風邪でお休みの方が多くいらっしゃいました。お大事になさってください。

今回は途中まで進んでいたArchivematicaのインストールから再開です。
前回、メモリがずいぶん消費されて作業がスタックしておりましたが、原因はUbuntuDesktop18.04のupgradeの際、APT Snap機能が起こしたバグにあるようです。(Archivematicaに原因があるわけではないようです。)

sshやviエディタ、MySQL等の動作環境が準備されていることを確認して、ホストPCからArchivematicaのパッケージを仮想マシンへコピーします。実行!

...長い待ち時間の末、今回は無事にインストール終了しました。

仮想マシンのアドレスlocalhost:8000からArchivematicaのStorage Serviceへアクセスし、API Keyをコピーします。


...リボンがだいぶ張り出してます(↑白い部分しかスクロールできない...)。こういうときは、仮想マシンのディスプレイ設定を変更して解決しました(が、プロセスをメモするできませんでした。あしからず...)。

続いて、localhostからArchivematicaのメインのインターフェイスにアクセスしてアカウント登録を行います。このとき、Storage ServiceでコピーしてきたAPIを入力します。


あれ?Available Transfer Sourceに何も表示が出ていないぞ。AIPのStorage Locationも”No Available”じゃないか...よくよく確認してみると、Administration / General / Storage Service Userの名称が"test"のまま変更されていなかったことがわかりました。ので、先ほどStorage Serviceに登録した名称と揃えます。

どうやら、張り出しすぎていたリボンのせいで存在が確認できていなかったみたいです。皆さま、ディスプレイ設定にはどうかお気をつけください。


今回はコンテンツの管理用PCは別途用意する、という想定から仮想マシンの中にArchivematicaをインストールしました。一方、外からのコンテンツ閲覧を想定して、サーバ本体の中にAtoM2.5.1をインストールしました。

ArchivematicaとAtoMともに、今回無事にインストール相成ったので次回は2つのシステムをリンクしていきます。ArchivematicaのDashboardでの秘密鍵の作成と、AtoMへの公開鍵の交付が最初の作業になります。

2019年6月28日金曜日

【35】 仮想マシンにArchivematicaを入れる

先日の道場にて、ブログ執筆を参加者が順番に担当していくことになり本日担当することになりました。
今回の担当者は初めての執筆で、間違い等々あるかと思いますが、適宜ご指摘頂ければと思います。

さて本日の作業ですが、
道場が始まる前にemailを受け入れるためのアプリであるePADDを試してみよう!
という話が持ち上がったのですが、諸々の条件がまだ整っていないということで、当初の予定通りArchivematicaを入れることになりました。
ePADDの研究に関しては、時間外に個々人ですすめるということに。
因みにURLは↓です
https://library.stanford.edu/projects/epadd

ということで、VirtualBoxにubuntu18.04を入れてArchivematica14.1を走らせることが今回の目標です。

Archivematica用の仮想マシンを作成

①VirtualBoxの新規作成(追加)
 新規→名前「matica」→Ubuntu(64-bit)

②あれこれ設定をしていきます
 desktop版とサーバー版の選択→Desktop版
 メモリ→4GB
 仮想ハードディスク→追加する
 ディスクイメージの選択→VirtualBox Disk Image
 Diskの可変サイズ→50GB

③CPUの数とグラフィックメモリのサイズ、ネットワークの設定
設定→システムで
 ・CPUの数:1つ→4つに(ホストマシンは8つ)
 ・グラフィック:ビデオメモリーを128Mb
 ・ネットワーク:NAT/NATネットワーク/ブリッジアダプター/内部ネットワーク/ホストオンリーアダプター/汎用ドライバーから選択
→NATなら外からインストールができるようになるけど、ブリッジだとインストールできない場合があるとのことで、初期設定はNATにして、色々条件を整えてからブリッジに変更することに。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ネットワークについて、執筆担当者はこのあたりちんぷんかんぷんだったのですが、わかりやすいサイトを教えて頂きました
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Vertualboxは無事に起動。

④Ubuntuを入れる
Ubuntuをインストール→言語設定→Ubuntuのインストール→インストールの種類(推奨)→TimeZoneの設定→名前:kyouseiken/コンピュータの名前:Matica/PW
→インストール→リブート
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
マシンが頑張っている間は歓談です。
 ・大容量のUSBメモリでBitCuratorを扱いたかった、朝から走らせれば間に合う?
 ・実際にBitCurator等を扱っている機関はどれ位のマシンを使っているのか?
 ・マシンの性能を上げるか、長く走らせるか→NARAで大量のデジタルデータを大統領府から受け入れているときどうしているのだろう?   etc.
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

無事にインストールが完了しましたので、必要なあれこれをいれることに
コマンドラインを使って
 ・net-tools(IPアドレスを調べるためのツール)
 ・VIM(コマンドラインの操作性をあげる拡張子)
の2つをインストールしました。

Archivermaticaのインストール

ホストマシンにあらかじめ作成しておいた、ArchivematicaをインストールするためのディレクトリをVirtualBox上のUbuntuに移します。
コマンドラインでの操作。

やっていることは
https://www.archivematica.org/en/docs/archivematica-1.9/admin-manual/installation-setup/installation/install-ubuntu/#install-pkg-ubuntu
とほぼ同じようです。

ただ幾つか違う点もあり
MySQLのユーザーとパスワードをdemoにする
などがあります。(理解が追いつかなかった…)

実行!!
・・・なぜか動かない

原因はリモートデスクトップにあったようでして。
Windowsのリモートデスクトップでメモリの異常消費があるみたいです。
ホストマシンの方はおおむね順調に稼動していた模様。
しかし、ホストマシンがある場所は大人数での作業に適さないため、今後の課題になりそうです。

今回はこれにて一旦終了です!
次回はArchivematicaのインストールの続きから。

次回は7月12日を予定しています。

2019年6月7日金曜日

【34】Bitcuratorのツールを使ってみる

今日は早速勉強会始まります〜
Bitcuratorマニュアルのp51から勧めます!

Quick guideline
http://distro.ibiblio.org/bitcurator/docs/BitCurator-Quickstart-v2.pdf

Disk image Access Tool
USBをBitcuratorで分析した結果、USBをどのように使ってきたもわかるように情報が取れることがわかりました。

例えば、我々が用意したUSBでは以下のような操作をしています。
1)USBの直下にいくつかのファイルがある状態から
2)「新しいフォルダー」を作成
3)すべてのファイルをこのフォルダーへコピー
4)「新しいフォルダー」の名前を「aaa」に変更
5)USBのすべてのデータを削除
6)この状態でBitcuratorに入れて分析

ここで、削除したデータが復元されただけではなく、上記の操作がわかるような情報が表示されました。下の画像をご参考ください。一部復元できなかった部分には「_」(アンダーバー)がついています。



FSlintを使ってみる
複製物(重複するデータ)を見つけて消す機能だそうです。マニュアルはp54。

参考サイト↓
ファイルシステムの整理に便利なFSlint
https://mag.osdn.jp/07/12/03/0131241

一番わかりやすいのはこれかも
http://write.flossmanuals.net/fslint/common-interface-items/


これはFSlintの操作画面です。
このMerge機能は、「選択したもの以外を、ハードリンクを使って(もし異なるファイルシステムにシンボリックリンクがある場合はそれを使う)、マージする」でしょうか。これは、http://write.flossmanuals.net/fslint/common-interface-items/ が一番わかりやすいとのこと。

ここで、登場した用語の中で、ハードリンク(hardlink)とシンボリックリンク(symlink、symbolic link、ソフトリンクとも)、マージ(merge)は知っておきたいですね。

※ハードリンク(hard link)とシンボリックリンク(symbolic link)
↓ここが概念としては参考になるかな?
http://e-words.jp/w/%E3%83%8F%E3%83%BC%E3%83%89%E3%83%AA%E3%83%B3%E3%82%AF.html

↓ここは技術的な仕組みがわかる
https://qiita.com/katsuo5/items/fc57eaa9330d318ee342

↓これが参考になる人もいるだろうけど、私はなんか紛らわしい。笑
https://wa3.i-3-i.info/word1152.html

※マージ
辞書的意味は、結合でしょうけど、調べるといろんな場面で使われているようです。ソースコードを比較して一つに結合するとか、画像ファイルなら順番で並べたり、同じものは削除して一つだけ残すとか… FSlintのMergeは恐らく後者なのではないかと思いますが…(もし違ったらコメントして~~)

pyExifToolGuIを使ってみる
マニュアルp56

地理関係のデータを確認したり、修正したりできるツールです。メタデータとして地理情報をつけたりして、exportすることもできるみたいです。地理情報を自動で取得できるのかと思いましたが、それはまだないみたいです。(笑)左の画像が切れてしまいましたが、下の画像のような感じでデータを入れられます。
ここで知っておきたい用語↓

※XMP、GPano
https://ja.wikipedia.org/wiki/Extensible_Metadata_Platform
https://developers.google.com/streetview/spherical-metadata?hl=ja

使い方はここが詳しい↓
https://hvdwolf.github.io/pyExifToolGUI/
https://hvdwolf.github.io/pyExifToolGUI/manual/pyexiftoolgui.html


Disk Image Access Tool
ここでちょっと話題を変えて、前回途中でやめていたUSBの分析を続けます。以前は、いきなり古いUSBをBitcuratorにかけてみたのですが、わけがわからなかったので、どういうものが入っているかがわかる小さいUSBでまず試してみたのでした。少し慣れてきたので、ここで前回やめたところに戻ります。

いぇーカービングしてしまおうぜ〜 (なんか格好いいでしょう?)
何が出てくるかワクワクするぜ〜 (こわい〜)

ここで再度USBをBitcuratorにかけて、disk imageを取ってレポートを出してみます。

しかし・・・やはり時間がかかりますな〜(;^ω^)やたらCPUも使うし、今日中には終わらなさそうです。さてさて、作業を続けるかどうか・・・


これは、今頑張っている道場1号機の状態です。ちょっと無理をしているのでしょうか。ここで覚えておきたいのは、スワップかな?スワップは、メモリーに収まりきらない情報を一時的に記憶装置に書き出し、必要に応じて、メモリー内の情報と交換することだそうです。

ここを読めばわかるはず。
http://e-words.jp/w/%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97.html

しばらく待ちましたが、やはりやめようか!になりました。笑

今日もこの作業は残念ですが、ここまでです。こんなに時間がかかる作業を大量のデータに対して行うって、現実的なのだろうかとか思ったりします。実際使っているところがあれば話を聞きたい!

とういうことで、今日もお疲れ様でした!

番外編
BitcuratorのYoutube動画もあります。参考にしましょう!
https://www.youtube.com/user/bitcurator

=========================
次回は、6月28日(金)です。
今日やめた作業の続きに再度挑戦
VirtualmachineにArchivematicaを構築

2019年5月30日木曜日

【33】BitCuratorに再チャレンジ


BitCurator自体がデータを作っていないかをチェック

前回、中古のジャンク品のUSBメモリをテストした際に、bulk_extractorでドメイン名やメールアドレスが多くスキャンされました。BitCurator自体がデータを作っていないかを確認するために、真っさらにしたUSBメモリで再テスト。
簡易フォーマットではないフォーマットを行い、中身はすべて0を記入した62mbのバイナリーファイルとそれを作るためのCのソースファイルとその実行ファイルで構成しました。

bulk_extractorでイメージファイルをスキャン。作成した覚えのないファイルを拾わなかったので、BitCuratorが健全に動いて、対象となるデバイスの情報だけをスキャンしていることを確認しました。

新品のUSBメモリでテスト

新たに、128MBのUSBメモリでテストします。一旦ファイルとディレクトリ構造を作って、全部消去したものです。いかがわしい画像・動画が入っていることを期待( ͡° ͜ʖ ͡°)!

bulk_extractorでスキャンした情報を確認。どうしていれた覚えのないdomain.txt(=ドメイン情報)が入っているのかがわからない。
iphoneで撮影したデータを入れたが、そこに付随するドメイン情報を読み取っているのだろうか。
Wordファイル、PDFファイルに付随して、adobeやmicrosoftのdomain情報を読み取っている可能性もあります。


fiwalkのメタデータを確認

fiwalkのxmlファイルを参照。時間の表記がなぜそうなっているのかわかりません。
mtime=修正時間(inode管理)
atime=アクセス時間
crtime=作成時間
テストしたイメージでは
mtime 2016-06-25T04:06:08
atime 2019-05-24T04:00:00
crtime 2019-05-24T17:34:18
mtimeがatimeとcrtimeより早くなっているという不思議な現象です。
crtimeとatimeは、別のマシンで作成したデータをまるまんまコピーしてUSBメモリに写した日時、mtimeは元のマシンで修正した日時を反映しているようです。
また、それぞれのtimeには誤差が生じる可能性があります。
atimeは±86400秒、crtimeは±2秒、mtimeは失念。
特にatimeの誤差は大きく、他のケースも見たところ、別媒体にコピーして未アクセスの場合、4:00:00になるのではと推測。

timeのところのZは、UTC(協定世界時=グリニッジ標準時)で表記していることを示すもので、日本時間はUTC との時差を +09:00 などとして示されます。

ところで、コピーの貼り付けで電子ファイルの本当の時刻がわからなくなるのは大問題です。デジタルフォレンジックスの意味がない。

参加メンバーによると、Windowsの仕様で、USBファイルにドラッグコピーすると、書き込んだ時刻に変更されてしまう事例があるとのことです。要対策です。


備考

purl.orgの意味はこちら
http://blog.appling.jp/archives/1577

追加:ファイル数のカウント

page46image12622128

BitCuratorには、ファイルのフォーマット別にファイル数をカウントし、レポートにまとめてくれる機能があります。しかし、ここで挙げられる数字と実際にUSBファイルに入れたデータファイルの数が合いません。何をBitCuratorがカウントしているのかを調査する必要があります。

次回日程

次回は6/7(金)です。忘れずに来てください。


最近の投稿

【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を扱ったアーカ...

人気の投稿