2020年5月20日水曜日

2020コンピュータシステム実践演習1

2020コンピュータシステム実践演習1の内容をここに書いておきます。
リンクは学内者でないと見れないサイトも含まれています。

実習内容「Webシステムと機械学習実行環境の構築実習」
この実験では、Linux(CentOS7)上にWebシステム環境と機械学習実行環境を構築していきます。
WebシステムではLAMPと言われる環境が広く利用されています。LAMP環境を構築して、データの流れをコントロールすることは、データ可視化につながります。
また機械学習実行環境の一つであるJupyter-Notebookを構築して、pythonやRのプログラミングを利用できることで、分析の範囲が広がります。
本実験では、このようなスキルを身に付けて、システム構築やデータ分析の基本を学びましょう。

[1回目の内容]
1-1 AWS Educateの登録
次のAWS登録資料をみて、AWS Educateのアカウントを作成し、ログインできるようにしてください。次回以降、このアカウントを利用してAWSでの実習を行います。またAWSからの返信には数日かかる可能性があります。
[PDFファイル]
https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EfuJQhQdrjtKreU-evMWMZwBUU8-QoW2XYXTvGNHKosvKQ?e=J8tjJv
[動画]
https://web.microsoftstream.com/video/4780160d-3d6e-48f5-aa57-69d2ef3c89f6

1-2 サーバ構築環境の実習
機械学習を行う場合、サーバを立てる必要があります。
今回はVirtualboxを利用して自分のPCの中にサーバを構築していきます。
サーバを自由に構築できるスキルを身に付け、研究等の環境を自分で構築できるようにします。
今回はCentOS7を設定して、SSHでの接続を行うところまで実施します。
[資料]
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
[環境]
仮想化ソフトウェア:Virtualbox6.1 https://www.virtualbox.org/
OS : CentOS-7-x86_64-Minimal-1908.iso 
isoファイルは上記資料のURLを参照して下さい。
サーバ機能:LAMP環境の実装
[レポート提出]
下記のリンクから、課題を行いなさい。
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZURVI3WjZRUU5RUUFDS04zTkFETVBYWDBVTC4u
締め切り期限:次回授業開始時まで


[2回目の内容]
今回の実習では、前回構築したCentOS7のサーバにLAMP環境やJupyter-Notebookの環境を設定していきます。
今後、研究や仕事をする上でWebシステムの基本形であるLAMP環境は技術者として欠かせません。
また、データ解析する環境の一つである、Jupyter-Notebookを自分で構築できることで、データ解析の幅が広がります。
両方ともとても重要な技術ですので、しっかりできるようにしてください。
また、前回作成したAWSアカウントは既に、僕の作成したクラス「MizunoClass2020」に登録をしてあります(課題提出者)
今までVirtualboxの環境でやっていたことを、AWSの環境でもできるようにしましょう。
[2-1]
目的:CentOS7でのLAMP環境の構築とwordpressの構築 (実習時間60分)
説明:最初に資料の最初のリンクを参考にして、CentOS7を利用してのLAMP環境の構築を実施してください。PHP、MySQL、phpMyAdminをインストールして、ユーザなど設定後、次のリンクでwordpressの構築をやってください。
[資料]
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
https://mizunolab.sist.ac.jp/2020/05/wordpress.html
[課題2-1]
wordpressにテキスト(学籍番号を必ず入れる)と画像を投稿したサイトのスクリーンショットを提出してください。

[2-2]
目的:Jupyter-Notebookの環境の構築 (実習時間40分)
説明:CentOS7にAnacondaというpython系環境構築ソフトウェアを入れて、anacondaを介してJupyter-Notebookの環境を構築します。Pythonの実行環境だけでなく、Rの実行環境も整えます
[資料]
https://mizunolab.sist.ac.jp/2020/05/jupyter-notebookcentos7.html
[課題2-2]
構築したJupyter-Notebookの環境で、Python環境にて、print('自分の学籍番号')を入れたコードを実行した画面のスクリーンショットを提出しなさい。

[2-3]
目的:Amazon Web Service(AWS) Educateでのサーバ構築 (実習時間40分)
説明:前回申請したAWS Educateのアカウントを利用して、CentOS7上にWebサーバを構築します。実際のクラウド環境でサーバを立ててみます。
[資料]
https://mizunolab.sist.ac.jp/2019/11/aws-educate-2.html
[課題2-3]
実際にAWS上で構築したサーバの「パブリックIP」または「パブリックDNS」を投稿してください。
このサーバは、こちらでの確認があるため、次の授業終了時まで、起動しておいてください。次の授業終了時刻後、各自必ずサーバをTerminateしてください。Terminateしないと料金が発生する可能性があります。

[レポート提出]
下記のリンクから、課題を行いなさい。
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZUOUpJWEUwTVdEMlBCN0YwOEFDOTk1MTJTSS4u
締め切り期限:次回授業開始時まで


[3回目の内容]
目的:作成したJupyter-Notebookの環境を利用して、実際にプログラムを動かしながら、数学の基礎を確認していきます。
今まで学習した数学の知識をプログラムを通して利用することで、数学の活かし方を学びます。
解析環境を必要に応じて構築ができ、プログラムを介して解析ができるまでの流れを身につけてもらいたいです。
今回の数学知識は基本的なものですが、機械学習を実施する時には欠かせない知識ですので覚えておいて下さい。

[3-1]
Jupyter-Notebook上での情報数学入門(ベクトル、行列、連立方程式)(60分)
目的:Jupyter-Notebookを利用して、ベクトル、行列、連立方程式など基礎的な数学をプログラミングしてみます。
[資料]
動画:https://web.microsoftstream.com/video/febe616f-2956-4dd6-a325-a0cd72e2ed01
資料:https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EatUE-X4a2xPt3T97UPCgesBaB9_7sycfKg1eUBAGZrTLA?e=EB00PD

[3-2]
Jupyter-Notebook上での情報数学入門(代表的な関数、微分、逆関数)(60分)
目的:Jupyter-Notebookを利用して、微分やグラフなど基礎的な数学をプログラミングしてみます。
動画:https://web.microsoftstream.com/video/ef9516ac-5bb4-455a-86d9-f0396b0a7105
資料:https://sistkanri-my.sharepoint.com/:b:/g/personal/mizuno_shinya_sist_ac_jp/EbaJk42FDeJLprH2GwV2Q04B2MmbGaPMRM1D7cu0QV-CNg?e=3jjY4s

[課題3-1]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
[課題3-2]
動画またはドキュメントの最後の課題を実施して、Jupyter-NotebookのファイルをPDFに変換して提出しなさい。
Markdownで自分の学籍番号と名前をファイルに入れて下さい。
(提出の時の注意)
今までの設定では、Jupyter-NotebookのFile->Download as->PDF でPDFファイルを作ることができません。
今回はHTMLファイルからPDFを作成する方法を紹介します。
https://web.microsoftstream.com/video/fb023f80-0169-4a12-a5a3-6c62c60654f3
今回は実施しなかったですが、Tex環境を構築して、Jupyter-Notebookから直接PDFファイルを生成することができます。
チャレンジできる人はやってみて下さい。
https://mizunolab.sist.ac.jp/2020/05/latex.html

課題の中でmarkdownを用いる場合があります。Markdownは下記をみて下さい。
https://web.microsoftstream.com/video/5149675c-a6f4-4537-8595-19122427c928

(課題提出リンク) 締め切り:次回授業開始時まで
https://forms.office.com/Pages/ResponsePage.aspx?id=Bb0r1yPrmEGObOE4I--qiMAR4zes1HJClm9qevKs6vZURE9MRFdCNEtKUU9OS0RCRUJJUUYzMVI1Ti4u

 以上です。

2020年5月9日土曜日

ラボ – CyberOps Workstation 仮想マシンのインストール

ラボ – CyberOps Workstation 仮想マシンのインストールの補足をします。
基本的に資料通りですが、インストールの時にうまくいかないことがあるので、補足していきます。

(1) Virtualboxのインストール
https://www.virtualbox.org/
からダウンロードして、インストールしてもらえれば大丈夫です。
僕は、version6.1をインストールしています。
必要ならば、https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html  を参考にして下さい。

(2) 仮想OSイメージのダウンロードとインポート
資料の「ステップ 2: 仮想マシンのイメージ ファイルのダウンロード.」のリンクから、cyberops_workstation.ova をダウンロードして下さい。3GBほど、結構時間がかかります。
virtualboxに設定していきます。
資料の流れで確認していきます。斜線部分がマニュアル部分です。

a. [VirtualBox] を開きます。[ファイル(File)] > [仮想アプライアンスのインポート...(Import Appliance...)] をクリックして、仮想マシンのイメージをインポートします。
b. 新しいウィンドウが表示されます。.OVA ファイルの場所を指定し、[OK] をクリックします。
continueをクリックします。

c. 新しいウィンドウに、OVA アーカイブの推奨設定が表示されます。ウィンドウの下部にある [すべてのネットワークカードの MAC アドレスを再初期化(Reinitialize the MAC address of all network cards)] ボックスをオンにします。その他の設定はすべてデフォルトのままにしておきます。[インポート(Import)] をクリックします。
今回は図のように「include all network adapter MAC addresses」を指定しました。importをクリックします。
仮想OSが作成されました。

(3) 仮想OSの調整
setting->networkからネットワークの確認をします。bridge接続になっていることを確認します。ブリッジ接続になっていれば大丈夫です。
Displayをクリックして、Scale Factorで画面サイズを調整します。僕は250%程度がちょうどよかったです。
OKを押します。
startで起動します。
ログインして画面サイズを確認します。調整が必要ならば、再度画面サイズを調整して下さい。
IPアドレスの確認をします。ターミナルを開いて「ifconfig」を実行します。
IPアドレスを確認したら、sshで接続をしてみます。macの場合はterminalから、Windowsの場合はteratermなどを使います。
ssh接続は必要に応じて使っていきます。ここではvirtualboxのGUI画面の大きさを調整して、virtualbox上で実習ができる環境を整えておいて下さい。

2020年5月4日月曜日

Latexの環境を導入

今回は数学系論文でよく使われるLatexの設定をします。
この実習は
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
ができている前提で実施します。
この実習を行うことでJupyter-NotebookでのPDF出力も可能になります。
TexLiveのisoファイルが3.7GB程ありますので、ゲストOSの容量に注意してください。
ただし、Tex環境の確認でhttpdを利用したいので、httpdのインストールは
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
をみてください。

(1) TEX環境の導入
TEXLive2020のダウンロード
ネットワークインストールも可能ですが、エラーも多いので、ISOファイルをダウンロードします。3.7GBあるので容量に注意
(base) [root@localhost ~]# wget http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/Images/texlive2020.iso

wgetコマンドがない場合は、下記でインストール
# yum install wget

マウントする
(base) [root@localhost ~]# mkdir /media/software
(base) [root@localhost ~]# mount -o loop texlive2020.iso /media/software/
(base) [root@localhost ~]# cd /media/software/
[root@localhost software]# ./install-tl

/usr/bin/env: perl: そのようなファイルやディレクトリはありません
と出た場合は、下記でインストール
# yum install perl

実行
(base) [root@localhost software]# ./install-tl
下記のようなエラーが出た場合



(base) [root@localhost software]# yum install perl-Digest-MD5
を実行する


再度インストールをします。
(base) [root@localhost software]# ./install-tl
デフォルトの設定で「i」を入力してインストール
インストール終了後
環境変数の追加
[root@localhost ~]# vi /etc/profile
export MANPATH=/usr/local/texlive/2020/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2020/texmf-dist/doc/info:$INFOPATH
export PATH=/usr/local/texlive/2020/bin/x86_64-linux:$PATH

今回は全ユーザで使えるように/etc/profileに設定します。
[root@localhost ~]# source /etc/profile

日本語フォントのダウンロード
[root@localhost ~]# mkdir /usr/share/fonts/japanese
[root@localhost ~]# mkdir /usr/share/fonts/japanese/TrueType

ここでエラーが出た場合
[root@localhost software]# mkdir /usr/share/fonts/japanese
mkdir: ディレクトリ `/usr/share/fonts/japanese' を作成できません: そのようなファイルやディレクトリはありません
[root@localhost ~]# mkdir -p /usr/share/fonts/japanese
でオプションでpを付けて実施してください。


[root@localhost ~]# yum install unzip
[root@localhost ~]# unzip IPAfont00303.zip 
[root@localhost ~]# unzip IPAexfont00201.zip 

[root@localhost ~]# mv IPAfont00303/*.ttf /usr/share/fonts/japanese/TrueType/
[root@localhost ~]# mv IPAexfont00201/*.ttf /usr/share/fonts/japanese/TrueType/
[root@localhost ~]# fc-cache -fv

ここで
[root@localhost ~]# fc-cache -fv
-bash: fc-cache: コマンドが見つかりません
と出た場合
[root@localhost ~]# yum install fontconfig
でインストールしてください。

ルートディレクトリにpdfファイルを作成して、ブラウザから確認します。
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# vi test.tex

\documentclass[a4j]{jarticle}
\begin{document}
こんにちは\LaTeX
\end{document}

[root@localhost html]# platex test
[root@localhost html]# dvipdfmx test

ブラウザでPDFファイルを確認
http://IPアドレス/test.pdf

アンマウントしておきます。
(base) [root@localhost ~]# umount /media/software/

(2) Jupyter-NotebookでのPDFファイル作成
ここまででLatex環境ができていれば、Jupyter-NotebookでPDF作成も可能です。
Jupyter-Notebookの環境設定は
https://mizunolab.sist.ac.jp/2020/05/jupyter-notebookcentos7.html
で確認してください。
以上です。

2020年5月3日日曜日

Jupyter-Notebookのインストール(CentOS7)

CentOS7にAnacondaをインストールして、Anaconda経由でpython環境をインストールしながら、Jupyter-Notebookの環境を作成してきます。
前提条件として、CentOS7がインストールされていることが必要です。
https://mizunolab.sist.ac.jp/2020/04/1-virtualboxcentos7.html
必須ではありませんが、下記を実施後の方がわかりやすいかもしれません。
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html

また以前にUbuntu16.04にインストール方法を書いていますので参考にしてください。ただし、リンクや利用するバージョンが変わっています。最後のRのインストールも変わっています。
https://mizunolab.sist.ac.jp/2019/01/pythonranacondajupyter-notebook.html

(1) Anacondaのインストール
wgetを使える環境を整えます
[root@localhost ~]# yum install wget

次にAnaconda(522MB)のダウンロードをします。
[root@localhost ~]# wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
Anacondaのインストール
[root@localhost ~]# bash Anaconda3-2020.02-Linux-x86_64.sh 
Enterを押して開始する
ライセンスに同意(yes)
インストール場所はそのまま(何も入力しない)
Anacondaのパス設定を利用する(yes)
インストールが完了
インストール後、condaコマンドが使えるか確認します。
ホームディレクトリで、「.bashrc」があるか確認します。
[root@localhost ~]# ls -la
この.bashrcを再読み込みして環境変数を反映させます。
[root@localhost ~]# source .bashrc
condaコマンドでインストールされているバージョンを表示します。
(base) [root@localhost ~]# conda -V
これでパスが反映されました。

(2) Jupyter-Notebookの設定
これは、
の「(2) jupyter-notebookの設定」 と同様の設定をしますので、このリンクをみてください。ただし、今回の実習ではアクセスするパスワードを「CentOS7」とします。
[注意]
今回は実習として「root」で行っています。この場合だけ、jupyter-notebookを起動する場合に、rootユーザでの起動を許可するオプションが必要です。
(base) [root@localhost ~]# jupyter-notebook --allow-root

(3) HelloJupyterを作成
これも
の「(3)HelloJupyterを作成」をみて実施してください

(4) Rの導入
これは前のリンクのものとは内容が変わっています。
jupyter-notebookを一旦終了して、次のコマンドでRをインストールします。
(base) [root@localhost ~]# conda install -c r r-irkernel
もう一度、jupyter-notebookを立ち上げます。
(base) [root@localhost ~]# jupyter-notebook --allow-root
サイトにアクセスして、ファイルを作る「New」をクリックすると「R」の選択肢が出てきます。Rでファイルを作成します。
ファイル名は「HelloJupyterR」とします。
Rのコードを入れて実行してみます。

ここまでできれば、Jupyter-NotebookでのPythonとRの環境設定は終了です。

2020年5月1日金曜日

Wordpressの設定

今回はWordpressの設定を行います。
前提条件として、
https://mizunolab.sist.ac.jp/2020/04/centos7lamp.html
の内容が設定済みとします。
今回はrootユーザでドキュメントルートの/var/www/htmlにwordpressのサイトを構築していきます。wordpressは最新版を利用します。

[説明動画]


(1) wordpressのダウンロードと展開
 yumでwgetのインストール
# yum install wget
ルートディレクトリに移動
# cd /var/www/html
wordpressの最新版をダウンロード
# wget https://ja.wordpress.org/latest-ja.tar.gz
tarボールの展開
# tar xzvf latest-ja.tar.gz
wordpressというフォルダが作成される
wordpressフォルダへのapacheからの書き込み権限設定
[root@localhost html]# chown -R apache:apache wordpress/

(2) wordpress用のデータベース作成
phpMyAdminにアクセスしてユーザを作成
http://IPアドレス/phpMyAdmin
下記の情報で作成(ユーザを作成するときに、同名データベースも作成して特権を与える)
ユーザ名:wordpress
パスワード:CentOS7@
データベース名:wordpress


(3) wordpressサイトにアクセスしてインストール
http://IPアドレス /wordpress/ にアクセス
ボタンを押す。データベースの情報を入力します。
データベースの情報が間違っていると、エラーがでます。
接続に成功したが、書き込み権限がないと次の画面が出る。
直接ファイルを書き込むか、上に戻り書き込み権限設定をする
問題がない場合は下記の画面になり、インストールを実行します。
情報を入力してインストール(今回は実習なので、簡易な情報でやっているので注意)
インストールが完了

(4) サイトの動作確認
ログインをします。
ログインが成功すると、ダッシュボードにいきます。
サイトを表示してみます。
デフォルトのサイトが表示されます。
投稿してみます。
公開します。
同様に画像をアップします。

これでwordpressの基本的な設定ができました。