vagrant で複数仮想マシンの立ち上げ

vagrant で複数仮想マシンの立ち上げ

Vagrantで複数台の仮想マシンを立ち上げてsshアクセス

を参考に
複数台の仮想マシンの立ち上げ

mkdir vagrant_centos
 vagrant init centos/7

で練習のためのディレクトリを作成し
ここへ cdコマンドで移動

次に初期設定
すでに box に centos/7 が追加されているので
これを使って作業します

なお、box を追加する方法は
MacにVagrantでCentOS7環境を作成


agrantで開発環境作成

を参考に

vagrant box add centos/7

でbox を追加しています

現在追加している box 一覧を見るには

vagrant box list

でみることができます

vagrant itit したあと
Vagrantfile
ができているので、このファイルを編集し
仮想マシンの設定を追加することで複数台の仮想マシンを
作成することが可能になります

では設定

vim Vagrantfile

で設定ファイルを開き
15行目の

config.vm.box = "centos/7"

の下へファイルを追記し3台構成にしてみます


  config.vm.define "web" do |vm1|
   vm1.vm.network "private_network", ip: "192.168.33.21"
  end

  config.vm.define "db" do |vm2|
   vm2.vm.network "private_network", ip: "192.168.33.22"
  end

  config.vm.define "app" do |vm3|
   vm3.vm.network "private_network", ip: "192.168.33.23"
  end

これを追記して保存したら

vagrant up

で3台同時起動

起動している状態の確認をするには

 vagrant status

でOK

現在の状態だと

web                       running (virtualbox)
db                        running (virtualbox)
app                       running (virtualbox)

となっていて3台同時起動しているのがわかります

なお、ssh の設定は

vagrant ssh-config web 

というようにすれば設定を表示できます

今回、web のssh設定は

Host web
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/snowpool/vagrant_centos/.vagrant/machines/web/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

また、複数の仮想マシンを立ち上げている場合
vagrant ssh でログインするには

vagrant ssh web

というようにどの仮想マシンにssh を実行するか指定します

ubuntu に vagrant で CentOS7 環境

ubuntu に vagrant で CentOS7 環境

Ubuntu 16.04 LTS に VirtualBox と Vagrant をインストールする方法

を参考に
Virtulabox と vagrant のインストール

sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian xenial contrib"
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -

でリポジトリ追加と鍵の追加

sudo apt update

でパッケージ更新して

sudo apt-get -y  install virtualbox

で virtualbox のインストール

virtualbox のヴァージョンを確認したいのなら

vboxmanage --version

で調べることができます

次に vagrtant

sudo apt-get -y install vagrant

でインストールしたけど

vagrant -v

で調べたらバージョンが古いので

sudo apt-get -y remove vagrant

で一度削除

wget https://releases.hashicorp.com/vagrant/2.1.1/vagrant_2.1.1_x86_64.deb

で最新版をダウンロードし

sudo dpkg -i vagrant_2.1.1_x86_64.deb 

でインストール

なお、端末でURLをコピペするときには
ctrl + shift + v
で貼り付けると効率的

これで準備できたので
次に box ファイルの追加

 vagrant box list

を実行すると
まだ何もないので

There are no installed boxes! Use `vagrant box add` to add some.

と表示される

次にCentos7 の box を追加

vagrant box add centos/7

を実行すると

1) hyperv
2) libvirt
3) virtualbox
4) vmware_desktop

Enter your choice: 

と表示される

これはどの仮想マシンのタイプを使うか
ということなので
今回は virtualbox にしたいので

を入力

これで

==> box: Successfully added box 'centos/7' (v1804.02) for 'virtualbox'!

となれば成功

念の為

vagrant box list

を実行したときに

centos/7 (virtualbox, 1804.02)

となっていればOK

次に実際に仮想マシンの作成

mkdir centos7
cd centos7

で作業ディレクトリの作成して移動

vagrant init centos/7

で Vagrantfile の作成

このファイルに仮想マシンの各種設定がされています
ただ、この状態だとまだ仮想マシンは作成されていません

次に仮想マシンを vagrantfile の情報を元に起動

vagrant up

起動しているのか確認したいのなら

vagrant status

default                   running (virtualbox)

となっていればOK

なお、仮想マシンへログインしたいときには

vagrant ssh

を実行します

なお、仮想マシンからログアウトするには
ctrl + d でできます

仮想マシンを停止するには

vagrant halt

で停止させることができます

vagrant マシン接続のため hosts 編集

vagrant マシン接続のため hosts 編集
#06 hostsを編集してみよう
http://dotinstall.com/lessons/basic_local_development_v2/24806
を参考に
hosts の編集
IPではなく、ドメインのようなものでアクセスできるように設定する
動画と同じようにしたいのなら
dev.dotinstall.com
ドットインストールでは Mac
私の環境は ubuntu とちょっと違うのでメモ
hosts を編集するには
sudo vim /etc/hosts
でファイルを開き
192.168.33.56 dev.dotinstall.com
というように追記
これで、ブラウザで
dev.dotinstall.com
とすると
192.168.33.56
と同じ意味になる
今後、自分でドメインをとって開発するときに
テスト環境として使えるので
もし、変更したいのなら
dev.dotinstall.com
を自分のドメインに書き換えればOK

vagrant マシンでHTML表示

vagrant マシンでHTML表示
#05 htmlファイルを表示してみよう
http://dotinstall.com/lessons/basic_local_development_v2/24805
を参考に
HTMLファイルを表示してみる
まず、 ユーザ vagrant がアクセスできるように権限変更
sudo chown -R vagrant:vagrant /var/www/html
次に、ファイル転送をするので
ホストマシン、私の場合は Ubuntu で
FileZilla を起動して転送
ホスト名には
192.168.33.56
Protocol は
SFTP
を設定
ログオンの種類は
通常を選択して
ユーザ名 vagrant
パスワード vagrant
で接続
接続できたら
リモートサイトを
/var/www/html
にして
ファイルを作成しようとしたけど
ubuntu の filezilla の場合ファイルを作成する項目が見当たらないので
cd /var/www/html/
touch index.html
でファイル作成
そしてそのまま編集
hello と書いて保存し
再度
192.168.33.56
をリロードして
hello
と表示されれば成功

vagrant マシンにweb サーバー導入

vagrant マシンにweb サーバー導入
#04 Webサーバーを導入しよう
http://dotinstall.com/lessons/basic_local_development_v2/24804
を参考に web サーバーインストール
まず現在インストールされているものを調べるには
yum list installed
で確認できる
確認だけなら sudo なしでもみれる
より細かく調べるなら grep と合わせるとよい
もし httpd がインストールされているか
調べるなら
yum list installed | grep httpd
これで何も表示されないのなら
インストールされていないということ
今回はインストールされていないので
sudo yum install -y httpd
でインストール
ちなみに、この httpd が web サーバで
apache というものになる
sudo service httpd start
sudo chkconfig httpd on
で httpd を起動
chkconfig は次回、自動起動するか設定する
on なら次回から自動起動する
webサーバー起動確認するには
ブラウザを開いて
http://192.168.33.56/
というように
Vagrantfile で設定したIPを打ち込めばOK

仮想マシンのネットワーク設定

仮想マシンのネットワーク設定
#03 ネットワークの設定をしていこう
http://dotinstall.com/lessons/basic_local_development_v2/24803
を参考に
vagrant で作成したCentOS のネットワークを設定
まずシステムアップデート
sudo yum -y update
アップデートできたら
ネットワークの設定
sudo yum -y install vim
で vim をインストール
sudo vim /etc/resolv.conf
ちなみに、ディレクトリパスは
tab キーで補完するとミスしにくい
で、開いたファイルで
一番上に
options single-request-reopen
を追記して保存
これの意味はいまいちわからないので検索
http://www.kunitake.org/chalow/2012-11-02-1.html
にこのあたりの解説が載っているので参考に
どうやら名前解決の遅さ解決のためのようです
そして、開発環境でファイアウォールの解除
sudo service iptables stop
sudo chkconfig iptables off
自分で iptables 設定してもいいけど
なれないうちはこのほうが楽
ちなみに、FW解除しないと
PHPとかでつくってもなにもみれないので注意

vagrant でローカル開発環境構築

vagrant でローカル開発環境構築
ローカル開発環境の構築
http://dotinstall.com/lessons/basic_local_development_v2

今回 vagrant でローカル開発環境構築がでていたので実践
今回は
Python
Ruby / Ruby on Rails の
環境も追加されている
使用する仮想環境は VirtualBox を使用
まず
cd /media/bdec1869-7820-4557-a76e-a8b130293019/
でHDDへ移動
これは私の環境の場合
SSD+HDDのため
vagrant box add centos64box http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
で追加するけど、すでに以前追加しているので
今回は
mkdir localdev
cd localdev/
でディレクトリを作って、そこに移動
過去に仮想マシンを追加したなら
ls ~/.vagrant.d/boxes/
で追加した仮想マシンを確認できる
vagrant init centos64

Vagrantfile
を作成
ネットワーク設定をするため
vim Vagrantfile
でファイルを開き
/config
で探して
26行めあたりの
# config.vm.network :private_network, ip: “192.168.33.10”
を探し
config.vm.network :private_network, ip: “192.168.33.56”
へ変更
保存したら
vagrant up
で仮想マシンの作成
仮想マシンの作成ができたら
vagrant ssh
で接続して
pwd という現在のディレクトリを示すコマンドで
/home/vagrant
となっているなら成功

Sandboxモードを使える sahara プラグイン

Sandboxモードを使える sahara プラグイン
#13 saharaを使ってみよう
http://dotinstall.com/lessons/basic_vagrant/24113
を参考に
Sandboxモードを使うことができる
saharaプラグインについて学習
sandbox モードは
仮想マシンに
ソフトのインストールや設定の変更などを加えたが
失敗などにより、その変更を破棄するときに使う
まず、仮想マシンのディレクトリに移動
cd /media/bdec1869-7820-4557-a76e-a8b130293019/myBox/
次に、sandbox を有効化
vagrant sandbox on
vagrant sandbox status
で状態を調べることができる
[default] Sandbox mode is on
となっていれば sandbox が on になっているのが確認できる
まず、仮想マシンを起動してログインし変更を加える
vagrant up
で仮想マシン起動
vagrant ssh
でログイン
とりあえず、単純に touch コマンドで空ファイル作成
touch test
これで、一度
ログアウト
この状態から戻すには
vagrant sandbox rollback
で戻すことができる
確認のため、一度
vagrant ssh
でログインしてみると
先ほど作成した test というファイルがないのが確認できる
ちなみに、このままだと最初の状態に戻るだけなので
変更を保存する
vagrant sandbox commit
で保存できるけど
仮想マシン起動状態だと遅いため
一度
vagrant suspend
などで一時停止しておくとよい
commit すると、仮想マシンの状態が上書きされる
これを利用して
サーバー構築の練習をすると効率的にできる
最初のうちは、かなりの確率で
設定ファイルを消してしまったり
設定を間違えてやりなおしになるので
この機能は重宝する
なお、sandbox の終了は
vagrat sandbox off
だけど
これも仮想マシンを停止してから行わないと
遅くなる
sandbox 終了後
vagrant sandbox status
で状態確認して
[default] Sandbox mode is off
となっていれば停止している

debパッケージのvagrant のplugin 導入

debパッケージのvagrant のplugin 導入
#12 pluginを使ってみよう
http://dotinstall.com/lessons/basic_vagrant/24112
を参考に
vagrant にplugin を導入
vagrant plugin install プラグイン名
でインストールできる
今回は
sahara というプラグインをインストール
プラグイン関係のコマンドについては
vagrant plugin -h
で調べることができる
現在インストールしているプラグインの確認は
vagrant plugin list
で確認できる
プラグインのアンインストールは
vagrant plugin uninstall プラグイン名
となる
sahara をアンインストールするなら
vagrant plugin uninstall sahara
とすればOK
ということ
しかし、私の場合
Ubuntuソフトウェアセンターからいれたためバージョンが古く
vagrant -v
Vagrant version 1.0.1
ということで、
vagrant plugin ではインストールできない
http://girigiribauer.com/archives/1003
によれば
vagrant 1.0 までは gemサブコマンドで入れれたということなので
新しいバージョンの vagrant をインストールする
http://downloads.vagrantup.com/tags/v1.2.7
から
64bit ubuntu のパッケージの
vagrant_1.2.7_x86_64.deb
をダウンロード
ちなみに、
x86_64 は 64bit という意味
.deb はdebパッケージで
主に debian 系で使われる
.rpm だと rpmパッケージで
fedora とか centos でつかう
ダウンロードできたら
cd ダウンロード/
sudo dpkg -i vagrant_1.2.7_x86_64.deb
でインストール
vagrant -v
で確認すると
Vagrant version 1.2.7
となっている
これで、動画どおり、
vagrant plugin
が使えるようになった
dpkg コマンドに関しては
http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231209/
が参考になる

vagrant の box 作成

vagrant の box 作成
#11 自分でBoxを作ってみよう
http://dotinstall.com/lessons/basic_vagrant/24111
を参考に
現在の仮想マシンの状態からBoxを作成
さらに
そのbox を元に、新しい仮想マシンを作成してみる
まず、現在稼働している仮想マシンの状態を
そのままbox にする場合
これは
vagrant package
を実行することで行える
このとき、対象の仮想マシンはshutdown されるので注意
処理が完了すると
package.box
ができている
作成した box をリストに追加するには
vagrant box add を実行する
vagrant box add my_box package.box
でリストに追加される
vagrant box add 追加するファイル名 対象のbox
となる
追加されたbox は
~/.vagrant.d/boxes/
にあるので
ls ~/.vagrant.d/boxes/
で確認できる
この httpd をインストールした box で
新しく仮想マシンを立ち上げるには
今までやってきたように
仮想マシンディレクトリを作成して
そこで
Vagrantfile を作成
そして仮想マシンを立ち上げる
cd /media/bdec1869-7820-4557-a76e-a8b130293019/
mkdir myBox
でディレクトリ作成して
cd myBox/
で作成したディレクトリに移動
vagrant init my_box
で vagrantfile 作成
vagrant up
で仮想マシンの立ち上げ
起動したら、
vagrant ssh
でログイン
sudo service httpd status
で確認すると
httpd (pid 4476) is running…
となり、httpd が稼働中であることがわかる
このように、以前作成した状態からの復元が容易になるので
日経Linux をみて新しい機能を追加したり
自宅サーバー構築サイトを元に
サーバー構築するときに活用できる
http://centossrv.com/
とか
http://www.server-world.info/
をみるとサーバー構築の参考になる