K.MIURA@OUC

The special secret of making dreams come true can be summarized in four C’s. They are Curiosity, Confidence, Courage, and Constancy. –Walt Disney

Docker上でJupyterを展開する

[基本環境]
  • Debian 10.3.0 (amd64)
  • Docker 19.03.8
[参考サイト]
[注意]
  • Docker環境の構築や他のサイトを読んで、Docker環境を構築していること
  • 本記事は、Jupyter NotebookをWEBブラウザで確認するまでの手続きである
[Dockerコンテナの展開]
  1. docker pull debian:stable
  2. docker run -itd --privileged -p 8888:8888/tcp -p 8888:8888/udp --name jupyter debian:stable
  3. docker exec -it jupyter /bin/bash
[コンテナ(jupyter)内での手続き]
  1. apt update
  2. apt upgrade
  3. apt install git
  4. apt install curl
  5. apt install bzip2
  6. apt install vim
  7. git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  8. echo ’export PYENV_ROOT="${HOME}/.pyenv"’ » ~/.bash_profile
  9. echo ’export PATH="${PYENV_ROOT}/bin:$PATH"’ » ~/.bash_profile
  10. echo ’export PATH="${PYENV_ROOT}/shims:$PATH"’ » ~/.bash_profile
  11. echo ’eval “$(pyenv init -)”’ » ~/.bash_profile
  12. source ~/.bash_profile
  13. pyenv install anaconda3-5.3.1
  14. echo ’export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/bin:$PATH"’ » ~/.bash_profile
  15. source ~/.bash_profile
  16. pyenv versions
    • anacondaのインストールを確認する
  17. pyenv global anaconda3-5.3.1
  18. ipython3
    • In [1]: from IPython.lib import passwd
    • In [2]: passwd()
      • Jupyter Notebookを開くときのパスワードを設定する
    • Out[2]: ‘sha1:xxxxxxxxx’ これをメモしておく
    • In[3]: quit()
  19. jupyter-notebook --generate-config
  20. vi ~/.jupyter/jupyter_notebook_config.py
    • 先頭(本当はどこでも良い)に以下の内容を追加する
      c.IPKernelApp.pylab = ‘inline’
      c.NotebookApp.ip = ‘*’
      c.NotebookApp.open_browser = False
      c.NotebookApp.port = 8888
      c.NotebookApp.password = u’sha1:xxxxxxxxx’ メモしたやつ
[Jupyter Notebookの起動]
  1. mkdir workspace ホームディレクトリで実行する
  2. cd workspace
  3. jupyter-notebook --allow-root
    • WEBブラウザで http://IPアドレス:8888/ にアクセスする
    • パスワードには上の passwd() で設定したものを記述する
    • 停止するときはControl + Zを押す
    • プロセスが生きていたらkillで強制終了する
[おまけ:コンテナ起動時にJupyter Notebookを一緒に起動する]
  • シェルスクリプトを仕込む (コンテナ内で実行する)
    1. vi /etc/rc.local
      • 以下の内容を記述する
        #!/bin/bash
        /etc/init.d/jupyter.sh
    2. chmod 755 /etc/rc.local
    3. vi /etc/init.d/jupyter.sh
      • 以下の内容を記述する
        #!/bin/bash
        . ~/.bash_profile
        cd /workspace
        sleep 3;jupyter-notebook --allow-root
    4. chmod 755 /etc/init.d/jupyter.sh
    5. exit コンテナ(jupyter)から一度出る
  • コンテナ(jupyter)を起動する
    1. docker restart jupyter
    2. docker exec jupyter /etc/rc.local
Read more →

nginxでBasic認証を有効にする

[基本環境]
  • Ubuntu 18.04
  • nginx 1.16
[apache2-utilsのインストール]
  1. sudo apt update
  2. sudo apt install apache2-utils
[.htpasswdの生成]
  1. cd /home/ユーザ名/
  2. mkdir web
    • webは任意のディレクトリ名で良い
  3. htpasswd -c /home/ユーザ名/web/.htpasswd user-id
    • user-idはBasic認証のユーザ名であり、任意のユーザ名で良い
[nginx.confの編集]
  1. cd /etc/nginx
  2. sudo vi nginx.conf
    • http{…}の中に、
      auth_basic “Your Auth Message”;
      auth_basic_user_file /home/ユーザ名/web/.htpasswd;
      を追加する
Read more →

Oracleクラウドを使う時の注意

[基本環境]
  • Oracleクラウド (VMインスタンス)
  • Ubuntu 18.04
[問題設定]
  • OSがUbuntuのVMインスタンスを使いWEBサイトを展開する
  • OSのFWで80/tcpを開放してもWEBサイトにアクセスできない
[対処方法]
  1. sudo vi /etc/iptables/rules.v4
    • -A INPUT -j ACCEPT を先頭に追加する
  2. reboot
    • 「Inputは常に受信する」になるが、OracleのSEが言うに、OCIのFW機能で防御するのが通常らしい
Read more →

nextcloudとNFSサーバを接続する

[基本環境]
  • Ubuntu 18.04
  • nextcloud 13.0.1
  • Oracleクラウド (NFSサーバ)
[参考サイト]
[NFSサーバのマウント]
  • 前提としてNFSサーバが構築されていること
    (本記事の場合はOracleクラウドのマネージドサービスで構築した)
  1. sudo mkdir -p /mnt/filesystem
    • filesystemは任意のディレクトリ名で良い
  2. sudo mount IPアドレス:/nfsdir /mnt/filesystem
    • IPアドレスはNFSサーバのアドレス
    • nfsdirはNFSサーバで公開されたディレクトリ名
[nextcloudからの接続]
  • コンソール上で実行する
    1. cd /mnt/filesystem
    2. sudo mkdir nextdir
      • nextdirは任意のディレクトリ名で良い
    3. sudo chmod -R 777 nextdir
    4. sudo chown -R user:group nextdir
      • userとgroupは利用中の環境に合わせて変更する
  • ブラウザ上で実行する
    1. 管理者でログインする
    2. 「+アプリ」->「External storage support」->「有効にする」
    3. 「設定」->「外部ストレージ」
      • フォルダ名: 任意の名前 (nextcloud上で表示される)
      • 外部ストレージ: ローカル
      • 設定: /mnt/filesystem/nextdir
Read more →

ストリーミングサーバを立てる

[基本環境]
  • Debian 10.3.0 (amd64)
[参考サイト]
[nginxとrtmpのインストール]
  1. sudo apt update
  2. sudo apt upgrade
  3. sudo add-apt-repository ppa:nginx/stable
    • レポジトリ追加の際の確認事項に対しては、[Enter]を押す
  4. sudo apt install nginx libnginx-mod-rtmp
[rtmpの有効化]
  1. cd /etc/nginx
  2. sudo vi nginx.conf
    • hogelive(5行目)を自由に変更する
  3. sudo service nginx restart
[受付用index.htmlの作成]
  1. cd /var/www/html
  2. sudo vi index.html
    • hogeliveをnginx.confと同じものにする
    • ipアドレスをストリーミングサーバのIPアドレスにする
    • hogekeyを自由に変更する
[配信システムの構築]
  • mp4動画を配信するだけなら、以下の作業は必要ない
  • /var/www/html以下にディレクトリを作成して、mp4動画を保存する
  1. sudo apt-get install ffmpeg
  2. sudo add-apt-repository ppa:obsproject/obs-studio
  3. sudo apt-get update
  4. sudo apt-get install obs-studio
  5. obs
    • 配信先: rtmp://IPアドレス:1935/hogelive
    • ストリームキー: hogekey
[視聴者の操作]
  1. WEBブラウザで http://IPアドレス/ にアクセスする
Read more →

Hugo+GitHubで作るWEBサイト

[基本環境]
  • Debian 10.3.0 (amd64)
[注意]
  • HugoとGitHubで作るWEBサイトの大まかな流れを掴むためのまとめです
  • 記事を書くときのMarkdownについては、別のサイトを参照すること
[Hugoのインストール]
  1. sudo apt update
  2. sudo apt install git
  3. sudo apt install golang
  4. sudo apt install snapd
  5. sudo snap install hugo --channel=extended
  6. cd /usr/bin
  7. sudo ln -s /snap/bin/hugo hugo
[作業用ディレクトリの作成]
  1. cd /home/ユーザ名
  2. mkdir workspace
    • ディレクトリ名は何でも良い
  3. hugo new site blog
    • blogという名前でWEBサイトを新規作成する
    • WEBサイト名は何でも良い
[HugoテーマのDL]
  1. cd ~/workspace/blog/theme
  2. HugoテーマのDL方法
[config.tomlの編集]
  1. cd ~/workspace/blog
  2. mv config.toml config.toml.org
  3. cp themes/テーマ名/exampleSite/config.toml .
  4. vi config.toml
    • テーマ毎に内容が異なるため、テーマのWEBサイトを参照すること
    • DLしたテーマを基にオリジナルテーマを作っても良い
    • 本サイトは、Hugo Bootstrap v4 Blogに少し手を入れている
[記事の新規作成]
  1. cd ~/workspace/blog
  2. hugo new posts/sample.md
    • postsは記事が保存されるディレクトリであり、ディレクトリ名は何でも良い (存在しないときは自動的に作られる)
    • sample.mdは記事ファイルであり、ファイル名は何でも良い
  3. cd content/posts
  4. vi sample.md
    • 記事はMarkdownで書く
    • 「draft: true」は非公開記事で、「draft:false」は公開記事である
    • title:は記事タイトルなので、ファイル名から書き換える
[GitHubへアップロードするファイルの作成]
  1. cd ~/workspace/blog
  2. hugo
    • publicというディレクトリが生成される
    • ここにアップロードするファイルが作られる
[GitHubへのアップロード]
  • GitHub上に「GitHubアカウント名.github.io」というレポジトリを作成する
  1. cd ~/workspace/blog/public
  2. git remote add origin https://github.com/GitHubアカウント名/GitHubアカウント名.github.io.git
  3. git add -A
  4. git commit -m “コメント”
  5. git push origin master
[2件目以降の記事作成からアップロード]
  1. 記事を作り
    1. cd ~/workspace/blog
    2. hugo new posts/sample.md
    3. cd content/posts
    4. vi sample.md
  2. アップロードするファイルを作り
    1. cd ~/workspace/blog
    2. hugo
  3. GitHubへアップロード
    1. cd public
    2. git add -A
    3. git commit -m “コメント”
    4. git push origin master
Read more →

Debianの初期設定

[基本環境]
  • VirtualBox 6.0.18 (Mac版)
  • Debian 10.3.0 (amd64)
[PATHへの/usr/sbin/の追加]
  1. cd /home/ユーザ名
    • ホームディレクトリに移動する
  2. touch .bash_profile
  3. vi .bash_profile
    • export PATH=$PATH:/usr/sbin/ と書いて保存する
  4. source .bash_profile
[一般ユーザに対するsudo権限の付与]
  1. su
  2. usermod -aG sudo ユーザ名
  3. reboot
[sources.listの編集]
  1. cd /etc/apt
  2. sudo vi sources.list
    • deb cdrom:[Debian GNU/Linux… の先頭に#を追加する
Read more →

WordCloudを作る

[基本環境]
  • Debian 10.3.0 (amd64)
  • Docker 19.03.8
[注意]
[Dockerコンテナの展開]
  1. mkdir /home/ユーザ名/workspace
    • ホストのディレクトリをコンテナでマウントするための準備
    • ユーザ名は各々の環境に合わせて置き換える
  2. docker run -itd --privileged -v /home/ユーザ名/workspace:/mnt --name wordcloud debian:stable
  3. docker exec -it wordcloud /bin/bash
[コンテナ(wordcloud)内での手続き]
  1. apt update
  2. apt install python-pip python3-pip
  3. pip3 install wordcloud
  4. apt install vim
  5. cd /mnt
  6. vi sample.py
  7. python3 sample.py
    • sample.pngが生成されている
Read more →

Docker環境の構築

[基本環境]
  • Debian 12 (amd64)
[Docker環境の構築手順]
  1. Dockerをインストールする
 $ sudo apt update
 $ sudo apt install apt-transport-https
 $ sudo apt install ca-certificates
 $ sudo apt install curl
 $ sudo apt install gnupg2
 $ sudo apt install software-properties-common
 $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
 $ sudo apt update
 $ sudo apt install docker-ce
 
  1. Dockerの動作状況を確認する
 $ sudo systemctl status docker
   このコマンドを実行して
     Active: active (running)
   が表示されるなら、Dockerは動作中である
 $ sudo docker ps -a
   このコマンドを実行して
     CONTAINER ID IMAGE ..略..
   が表示されるなら、Dockerコマンドも正しく動作している
  1. 一般ユーザにDockerコマンドの実行権限を与える
 $ sudo usermod -aG docker ${USER}
 $ sudo reboot
[Dockerコンテナの展開]
  1. Dockerイメージをダウンロードする
    ※ 例として、Debianのイメージファイルをダウンロードしている
 $ docker pull debian:stable
  1. 新規コンテナを展開する
    ※ ホストとの間で80(HTTP)ポートを繋いだコンテナを作っている
    ※ コンテナ名をwebservにしている
 $ docker run -itd --privileged -p 80:80/tcp -p 80:80/udp --name webserv debian:stable
 
  1. コンテナの中にログインする
 $ docker exec -it webserv /bin/bash
Read more →