環境と背景
MacOS Mojave / CentOS7 / VirtualBox / iterm2
学習の中でせっかくwebアプリを作ったのでデプロイしたい。
VPSなど自分で管理するサーバーへデプロイする方法をMemo
セキュリティ関連の知識は別で蓄える必要があるようなので、ここではデプロイまでのプロセスとして。
必要物を集める
VirtualBox
https://www.virtualbox.org/にアクセスしてダウンロード。

間違えようがないくらいデカいボタンがあるけど一応スクショ。

急に文字文字し出すので、「VirtualBox 6.0.10 platform packages」の欄を見て該当の利用OSを選択。Macなので「OS X hosts」。
完了したら、そのままインストールでOKかと。
ちなみにVirtualBoxを一言で解説すると
PCに仮想環境を構築して、他のOSをインストールすることができる仮想化ソフトのこと。
(仮想の)パソコンをもう一個持つようなイメージかな。
CentOS
https://www.centos.org/にアクセスしてダウンロード。

こちらも大きなボタンがあるので問題なし。

DVD ISOだとフルパッケージだけどまぁ重い。。。ひとまずMinimalで様子をみる。

Oh!激しい文字文字感が。。。
上部のブロックは住んでる地域に近いところで提供してくれているものらしい。ということは下部は遠いってこと。
たしかに、上部のブロックのアドレスを見てみると tsukuba とか yamagata って書いてある。
こういう分散して同じものなのに、あっちこっちからダウンロードできるようになっているものを「ミラーサイト」と呼んでいて、一箇所に集中することで高負荷になってしまうことを避けるための仕組みになっている。
多少、免疫がつくまでは違和感しかなかった。
その他
vagrantという素晴らしいツールがあるそうだが一旦ここでは使わない方向で。
VirtualBoxにCentOSをインストール準備
VirtualBoxを立ち上げて「新規」のボタンを押すと「名前」の入力を求められるので「CentOS 7」などと入力。下のプルダウンも勝手に変わってくれた。

基本は次への連打で良いと思うけど流石に最後の8GBは悩んだが一応そのままで。





終わったら「設定」アイコンを押して、ストレージを選択。

光学ドライブと書いてある場所の右側、おそらくCDと思われる青いアイコンを押して、ファイルを選択を押す。
先ほどダウンロードしておいたCentOS(拡張子ISO)を選んで「OK」

次にネットワークのアイコンを選んで
「アダプター2」のネットワークアダプターを有効にして、「ブリッジアダプター」を選んで「OK」。
起動してOSインストール
起動のアイコンを押して起動。
「Install CentOS 7」 を選択。
この時、ポップアップが出てくるので「capture」を選択しておく。
これで「PC本体画面」と「VirtualBox内の画面」のマウスがそれぞれ選択できるようになる。
左側の⌘キーでどちらのマウスを動かすか、変更が可能。

まずは言語選択で日本語を選択。

ここで「インストール先」を選択して、特に設定は変更しなくて良いので、完了ボタンを押すと、さっきまであった「!マーク」が消える。
「ソフトウェアの選択」を選ぶと、上記のOSインストール時に「Minimal」なら選択できないが、「DVD」を選んだ場合には「開発ツール」というソフトもチェックできるようになる。
ちなみに。
Minimalを選んだ場合にも「開発ツール」はインストール可能。(後ほど)

インストールをしている間にROOTパスワードと、ユーザーの作成が可能になるので登録しておく。
インストールが完了すると「再起動ボタン」が出るので再起動する。
インストール後の初期設定
再起動するとユーザー名とパスワードを求められるので、先ほど設定したもの入力して起動。
シャットダウンとかは管理者権限がないとできないので、
$ SU
としてパスワードを入力。コマンドの前の「$」が「#」になる。
「#」になっていればrootユーザーということ。
元のユーザーに戻るには
# exit
終了するには
# shutdown -h now
しばらくかかってVirtualBoxのTOP画面に戻る。
事前の環境構築
ターミナルからIPアドレスでSSH接続
先ほどシャットダウンしているので、再度、起動アイコンを押して立ち上げる。登録userでログインしておく。
$ ip addr
これで接続されているIPアドレスを確認しておく。
いくつかそれっぽいのが見えるけど、一番下段の方のIPが示しているもの。
ターミナルを立ち上げて
$ ssh user@xxx.xxx.xx.x
userはユーザー名
xxxはIPアドレスを入力。
接続後にPythonのバージョンを確認してみると
$ python -V
なんと2系。。。
ここからは
・3系をインストールする準備物
・python3系のインストール
・pipのインストール
・venvのインストール
・venvで環境設定
ということで「IUS」というRedHatやCentOSなど向けに新しいRPM(ソフトウェアパッケージ管理ツール)を提供しているリポジトリがあるので追加。
$ su
でスーパーユーザーに切り替えて
3系をインストールする準備物
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install epel-release
python3系のインストール
# yum install python36u
pipのインストール
# sudo yum install python2-pip
更新メッセージが出ていたら最新にしておく。
# pip install --upgrade pip
venvのインストール
# pip install virtualenv
おまけ
Cent OS のところで「開発者ツール」を入れたいと思ったら
# yum groupinstall "Development Tools"
いくつか不足しているらしいのでさらに。
# yum -y install openssl openssl-devel readline-devel zlib-devel curl-devel libyaml-devel flex libxml2-devel zlib-devel libpng-devel libjpeg-devel libXpm-devel freetype freetype-devel
デプロイ前の準備
デプロイするディレクトリを作る。
# mkdir -p /opt/django
# cd /opt/django
# virtualenv -p python3.6 sns
「opt」や「django」は任意の名前。「sns」は任意のプロジェクト名。
ここで作った「sns」ディレクトリに移動すると「bin」ディレクトリもできているので
# source bin/activate
でvenv環境に入ることができる。(以前の記事はこちら)
Gitもインストール
(sns)# yum install git
クローン:Gitのリポジトリの内容をそのまま持ってくること
(sns)# git clone https://xxx.xxx
xxxは自身のものに合わせて。Bitbucketならリポジトリに入った上部に記載してあるURL。
Djangoもインストールしておく
(sns)# pip install django
長くなりそうなので、ひとまずここまで。