Vagrantfileで仮想環境を構築して動作を確認

Python学習【365日チャレンジ!】243日目のマスターU(@Udemy11)です。

最近、車を運転するときにAudibleで、坪田信貴氏の著書「才能の正体」をご自身の朗読で聴いています。

これまで、本を読むためには、視覚が必要なので、ながら読書をすることができませんでした。

Audibleは、本を朗読し音源として提供してくれているので、視覚を本に奪われることなく本を読む(聴く)ことができるので、ながら読書ができる超おすすめのサービスです。

もちろんラジオなどで、小説の朗読などはありましたが、録音して聴かない限り時間の制約がありました。

Audibleは時間の制約がなく、いつでもどこでも聴きたいときに聴くことができるので、ぜひ、本を聴くという新しい体験を楽しんでみてください。

それでは今日もPython学習を始めましょう。

昨日の復習

昨日は、Vagrantfileの設定にしたがって、VMを立ち上げました。

設定ファイルが用意されていたので、実際は、ファイルを移動させてコマンドを実行するだけでしたので、1からVagrantfileを書けといわれるとちょっと無理ですが、コードを見るとなんとなくどんなことをしているのかがわかりました。

実際のコードについては、酒井さんが講座の中で用意していただいているものなので、問題があればコードごと削除しなければならないな〜と思いつつ使わせていただいています。

今日は、Vagrantfileで立ち上げたVMの動作を確認してみます。

statusの確認

昨日の作業でコマンドvagrant upでサーバーを立ち上げた状態になっていますので、ターミナルからコマンドvagrant statusを実行してみましょう。

Vagrantfileで仮想環境を構築して動作を確認

サーバーが3つ(mainserver1server2)、runningの状態で、起動しているのがわかるかと思います。

例えば、server1の状態がnot cleatedになっていたとすると、コマンドvagrant provision server1を実行すれば、再度、Vagrantfile$install_packageの部分をやり直してくれます。

$install_package = <<SCRIPT
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install python3-pip
sudo apt-get -y install sshpass
sudo apt-get -y install python-dev python3-dev 
sudo apt-get -y install libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev
sudo pip3 install --upgrade setuptools
sudo pip3 install Fabric==1.14.0
sudo pip3 install Fabric3
sudo pip3 install ansible==2.4.2.0
SCRIPT

また、設定したサーバーのIPアドレスがすでに使用しているIPアドレスとかぶっていたり、ポートが使用していたりして不具合が出た場合は、Vagrantfileの値を変更して、コマンドvagrant reload server1などを実行することで正常にサーバーを立ち上げられるようになります

サーバーの停止

サーバーを停止するには、コマンドvagrant haltを実行します。

Vagrantfileで仮想環境を構築して動作を確認

このコマンドを実行すると、順番にサーバーがシャットダウンされているのがわかります。

サーバーの削除

Vagrantを使って構築した仮想環境を削除する場合のコマンドは、vagrant destroyです。

Vagrantfileで仮想環境を構築して動作を確認

順番に削除していいかきいてくるので、yを入力して削除します。

削除したとしても、Vagrantfileさえあれば、簡単に同じ仮想環境を構築することができます。

サーバーへの接続

次に、作成したサーバーにMacからsshで接続してみます。

sshで接続するには、コマンドvagrant ssh mainを実行します。

Vagrantfileで仮想環境を構築して動作を確認

接続できると、vagrant@main:~$と表示され、mainサーバーに接続して作業できるようになります。

mainからserver1server2に接続するには、コマンドssh root@172.16.200.101(server2の場合は最後が102)を実行します。

Vagrantfileで仮想環境を構築して動作を確認

するとパスワードを聞いてくるので、yesを入力してからパスワード(root)を入力すると、root@server1:~#と表示されてmainからserver1sshで接続することができます。

Vagrantfileで仮想環境を構築して動作を確認

server2に接続するときはIPアドレスを変更して同じようにコマンドを実行して正常に作動するか確認します。

正常に動作すれば、exitでサーバーから接続を解除してmainサーバーに戻ります。

パスワードの変更

次にrootユーザーのパスワードを変更します。

コマンドsudo su -を実行して、スーパーユーザーでmainにログインしてからpasswd rootを実行します。

Vagrantfileで仮想環境を構築して動作を確認

パスワードを2回要求されるので、同じパスワードを入力します。

passward updated successfullyと表示されてパスワードの変更が完了します。

まとめ

目の前にある物理的なパソコンの中に仮想環境が構築されてサーバーを扱っているという事実はあっても、目に見えないので、ちょっと何をやっているのか不安になってしまいます。

といってもコマンドを実行したり、構築したサーバーに接続したり、シャットダウンしたりしてるとなんとなくこうやって動かすんだということがわかってきます。

このあたりのことは、かなり理解に時間がかかると思うので、いろいろと自分でさわってみて慣れるしかないと思います。

習うより慣れろ

ってやつですね。

それでは明日もGood Python!