Vagrantでファイルの権限が変わらない

vagrant内でubuntuを立ち上げててゲスト側へログイン

$ vagrant ssh
$ chmod a+x file

としたら変化がない
エラーもでてない

$ sudo chmod a+x file
も同じ
$ sudo -s
してrootになってもできない..

ゲスト側に戻って
$ vi Vagrantfile
で中を見たら..

config.vm.synced_folder ".", "/vagrant",
      #type: "rsync",
      owner: "vagrant",
      group: "www-data",
      mount_options: ['dmode=775','fmode=664']

となってました
fmode=775
に変えて
$ vagrant reload
したら、fileに実行権限がつきました

vagrant がパーミッションを元に戻してたっぽいです

vagrantでいろいろさわった環境を取り出す

vagrantでいろいろ入れたり設定した環境をまるごとコピーとかくばったりしたいときは

触ってたboxを確認
$ vagrant box list
precise (virtualbox, 0)

boxの内容をふまえて、repackageをする
$ vagrant box repackage (vmの名前) (仮想環境の種類) (バージョン)
$ vagrant box repackage precise virtualbox 0

詳しくは公式サイトを
https://docs.vagrantup.com/v2/cli/box.html

Virtualboxのvmをvagrantに移行する

VirtualboxのGUI操作やSyncedFolderがめんどうだったので、
Virtualboxのvmをvagrantへ移行してみました

vmのOSはCentos 6.5です

基本的にマニュアル見ればできます
https://docs.vagrantup.com/v2/virtualbox/boxes.html
(みないでやって、めっちゃはまりました..)

まず、vagrantへ移行できるVirtualboxのvmには条件があり

  • 最初のネットワークはNAT
  • VIRTUALBOX GUEST ADDITIONSをいれておく

でなければできません(ほんとにまったくネットワークつながりませんでした..)

NATにしておいて、VIRTUALBOX GUEST ADDITIONSをいれておきます

参考)
Virtualboxの環境をコピーしたときのネットワーク設定
VirtualboxのCentosにGuest Additionsをコマンドでいれる

vagrant用のユーザーを追加して、sshでつながるようにします

$ visudo
TTYなしで実行できるように

#Defaults    requiretty

をのようにコメントアウト

sudoコマンドをパスワードなしで実行できるように

vagrant ALL=(ALL)       NOPASSWD: ALL

vagrantユーザー追加
$ useradd vagrant
$ passwd vagrant
パスワードは vagrant と入力
$ usermod -G wheel vagrant

vagrant ssh用のキーをセット
$ mkdir /home/vagrant/.ssh
$ chmod 700 /home/vagrant/.ssh
$ cd /home/vagrant/.ssh
$ curl -k -L -o authorized_keys https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
$ chmod 600 /home/vagrant/.ssh/authorized_keys
$ chown -R vagrant.vagrant /home/vagrant/.ssh

vagrant用のディレクトリを用意
$ mkdir -p /vagrant/
$ chown vagrant.vagrant /vagrant

ファイアーウォールを止めておいて
$ service iptables stop
$ chkconfig iptables off

ここまでで下準備終了
こっから移行します

vagrant packageを作ります
$ vagrant package –base (ここにはVirtualboxでつけてたVMの名前を)
$ vagrant package –base sample –output sample.box
とすると、sample.boxができます

これをvagrantで取り込みます
$ vagrant add sample sample.box
$ vagrant box list
で出てくるのを確認して、用意したいディレクトリへ移動
$ vagrant init sample
$ vagrant up
で起動できたらOKです

UbuntuにVagrantを入れてみた

Ubuntu 14.04にVagrantを入れてみました

VirtualBoxを入れる

UbuntuにVirtualBoxをインストールする
を参考にUbuntu 14.04のためsource.listには
deb http://download.virtualbox.org/virtualbox/debian trusty contrib
を追記、あとは同じです

vagrantを入れる

古いバージョンはgemでしたがいまはインストーラーがあります
https://www.vagrantup.com/downloads.html
からOSにあったものをダウンロードします

$ dpkg -i

rubyをrbenvで入れてたため
$ rbenv rehash
参考) Ubuntuにrubyを入れてみた

これでvagrantが使えます
$ vagrant -v
Vagrant 1.6.5

ベースにしたいboxを
https://vagrantcloud.com/
で探します

見つけたboxを
$ vagrant init (ボックス名)
で指定します

Ubuntu 12.04 ならpreciseで検索して
$ vagrant init ubuntu/precise32
とかです

これでVagrantfile
ができるので、必要であれば設定を変えたります

あとは
$ vagrant up
すればOSが立ち上がり
$ vagrant ssh
でsshでログインできます