mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

Vagrantを使って、boxをもらって、VM環境を作る

vagrant使ったことなかったけど、使う機会があったので、やってみたメモ。

主にこちらのリンクを見ながら、やってみる。
http://momijiame.tumblr.com/post/65429388802/vagrant-box

boxをもらってから、以下を実行していく。

$ vagrant box add centos_64_hoge hoge-box.box
$ vagrant init centos_64_hoge #Vagrantfile作られる
$ vagrant up #VMとつなげてくれて、設定をしてくれる
$ vagrant ssh #これでつながる!!

ネットワーク周りをいじる
Vagrantfileと、ローカル・VMの/etc/hostsに設定を書く。
Vagrantfileの修正箇所は見落としがちなので、よく見て、同じように書く。
あと、sshでみて、/vagrantのところで、ls -lで見てみて、
lnが貼られているか確認する。
貼られていなかったら、$ ln -s リンクするファイル名 リンク先ファイル名で対応。

ここで

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
 
ARPCHECK=no /sbin/ifup eth1 2> /dev/null
 
Stdout from the command:
 
Device eth1 does not seem to be present, delaying initialization.
 
Stderr from the command:

なエラーが出る。

Vagrantのネットワークが起動しないときは
VagrantでIPアドレスの割り当てに失敗したときの解決策

$ [vagrant@localhost ~]$ sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules

これでズドンとMACアドレスとのマッピングを無効化して、
vagrant reloadするとうまくいきました!
ふぃ

これで、VMからローカルのファイルにシンボリック貼って、ローカルから開発を進めていくことができる!
これは便利ぽい!!<追記>

シェルスクリプトのコマンドをいくつか入れる必要があったので、
ルートディレクトリに.shをmkdirして、
そこにOO.shな感じでファイルを作ってコピペ。(start.shとしてみた)
で、

$ bash start.sh

するとまとめて実行してくれる。(MV側で行うこと)
[Linux] シェルスクリプトのいろいろな実行方法


<追記2>

$ vagrant status #VMの状態を確認する
$ vagrant halt #動いているVMを止める
$ vagrant up #再度動かす