Programming入門者の備忘録です。
正確な情報か怪しいので同じような入門者の方は別の記事も参照することをお勧めします。また、間違いなどを見つけた方はコメントでご指摘いただけると幸いです。
##記事の目的:仮想マシン作成の備忘録
『Pythonプロフェッショナルプログラミング第3版』で最初に行うVagrant利用した仮想マシンのセットアップで詰まったところを記録する。作成する仮想マシンのOSはubuntu。
##手順
###環境
Windows10 home
###1. 必要なソフトのインストール
VirtualBox,VagrantをPCにインストール
###2. powershellでubuntu/xenial64を取得
ubuntu/xenial64取得。
cd ~
mkdir work(任意のディレクトリ名)
cd work
vagrant box add ubuntu/xenial64
ubuntu/xenial64が追加されたか確認。
vagrant box list
###3. Vagrantfileを生成
####Vagrantfile生成。
Vagrantfileは立ち上げる仮想マシンの設定ファイル。
vagrant init ubuntu/xenial64
###4. 適当なエディタでVagrantfileVagrantfile編集
####forwarded_portのホスト側を固定
初期状態だと複数の仮想マシンを立ち上げるとhostのポートがコンフリクトして毎回変わる。それだと、VSCodeなどからSSHで接続するときにconfigファイルを使うたびに編集する必要があり面倒。
config.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2223
####praivateネットワークの設定をしてホストOSとゲストOSで通信可能にする。
ゲストOSで起動したアプリケーションをホストOSから確認したい時がある。例えば、ゲストで起動したWebアプリケーションをホストのWebブラウザーから確認するとき場合。↑と同様に複数ゲストを立ち上げるとipがコンフリクトする可能性があるので適当に10を11に変えたりする必要がある。
使用したいipアドレスが空いているか確認したい時はpingコマンドを使えばよい。応答がなければ指定したアドレスは空いている。
config.vm.network "private_network", ip: "192.168.33.10"
####ホストとゲストでディレクトリを同期する。
左がホストで右がゲスト。ディレクトリ名はどちらも任意。
./src
のように相対パスで指定する際はVagrantfileの配置先が起点になる。
vagrant@ubuntu-xenial: mkdir work
config.vm.synced_folder "./src", "/work"
ホスト側でsrc
ディレクトリ作成
mkdir src
###5. vagrantfileの設定を反映させる
####仮想マシンを再起動。
vagrant reload
###6. おまけ:vscodeにsshで接続
①vagrant ssh-config
コマンドを実行した結果をコピー
②コマンドパレットから「Remote-ssh: Open Configure File」を選択
③configファイルを開く
④vagrant ssh-config
コマンドの結果をconfigファイルに貼り付けて名前をdefaultから任意の名前に書き換えて保存。(複数登録する場合は下に追記していく。)
⑤「Remote-ssh: Connect To Host」を選択するとsshでログイン出来て新しいウインドウが開く。