質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • PHP

    21354questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Vagrant

    1253questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Vagrant Synced folderについて

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,262

RieMatsui

score 15

Vagrant Synced folder で 同期したい

VagrantにsentOSをインストールしていますが、Vagrant sshした時にターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する方法を知りたいです。
そのための機能としてVagrant Synced folder の設定があると考えて設定をしていますが、認識としてあっていますでしょうか?プログラミングは初心者でわからないことばかりでご教授願います。

発生している問題・エラーメッセージ

ターミナル上で
$vagrant rsync_auto
上記を実行

There are no paths to watch! This is either because you have no
synced folders using rsync, or any rsync synced folders you have
have specified rsync_auto to be false.
とエラーメッセージが出ています。

参考にしたページ

https://www.vagrantup.com/docs/synced-folders/rsync.html

試したこと

vi vagatrantfileを実行
config.vm.synced_folder "../data", "/vagrant_data"
を編集し

config.vm.synced_folder ".", "/vagrant", type: "rsync",
    rsync__exclude: ".git

こちらを入力し編集。

packさんの助言で
vagrant up実施

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device


と出てきたので

vagrant plugin install vagrant-vaguest


を実施しました。

補足情報(言語/FW/ツール等のバージョンなど)

MacOS 10.11.6
Vagrant Installed Version: 1.8.4
Virtual Box バージョン 5.0.26 r108824
Cyberduck バージョン 5.1.0 (20872)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • pack

    2016/09/14 10:38

    「vagrant up」の結果のログを、張り付けてください。

    キャンセル

  • RieMatsui

    2016/09/15 02:06

    >packさん
    vagrant upやはりエラーが発生していました。
    内容を添付しています。ご指示ありがとうございます。

    キャンセル

回答 3

checkベストアンサー

+1

エラーの確認

まずは、「vagrant rsync-auto」の前に「vagrant up」の処理がすべて正常に完了したかどうかが問題です。
途中でコケてる可能性が高い気もしますが。

https://teratail.com/questions/45790

こちらと同じ状況の可能性もあります。
上記質問でも、回答いたしましたが、同期が完了したログメッセージは出力されましたでしょうか?

==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /path/of/host/machine => /vagrant

テキストエディタでの編集

続いて、rsyncが正常に出来たと仮定してですが、以下は私の環境での事なので、もしかしたらそちらの環境とは違う可能性もあります。

ご質問の、「ターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する方法」ですが、rsyncは基本的に一方向の同期です。Dropboxのような双方向ではありません。

Host(Mac) => Guest(CentOS)

Mac上で編集されたファイルを監視し、CentOSへ自動でアップロードしてくれるのが、vagrant rsync_autoです。

「ターミナル上でインストールされたファイル」が、CentOS上の同期フォルダのみにあるファイルという意味であれば、最初にMac上の同期フォルダにダウンロードする必要があります。
SCP、SFTPなどを利用する事になると思います。

他の方も指摘されている「type: "rsync"」を使うかどうかですが、現在はVagrantが標準で備えている同期機能をあえて使わず、rsyncを使うという指定です。
私の環境で確認したところ、rsyncは一方向。
Vagrant標準の同期機能は、双方向(マウント)となっており、autoコマンドなどを打つ必要もなく、自動で反映もしてくれます。

双方向であれば、ダウンロードする手間がかかりません。
ただし、余計なファイルまで、ローカルに落ちてきてしまう可能性はあります。

Synced folderとソースの設置

「そのための機能としてVagrant Synced folder の設定がある」というのは、その通りだと思います。
もし、開発でソースをアップしたいという事であれば、別にVagrantの同期機能にこだわる必要はなく、IDEのデプロイ機能や、使い慣れたSFTPクライアントなど、何でもいいと思います。

Ansibleなど構成管理ツールを利用して、ローカルからソースをアップする場合に、Synced folderが役に立ちます。(でも結局、Ansibleのファイル転送を使うかな)

まっさらの状態のBox ⇒ いろいろインストール ⇒ 開発したソースの設置

まで一発で出来ます。開発したソースをどこに置いておくかにもよりますが。
GitHubなどから引っ張ってくるとなると、それはまた別の話ということで。

ごそっと環境を作り直したい状況は、おのずと出てきますので、ある程度慣れてきたらツールで自動化できるようにしておけるといいと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/15 02:03

    rsyncでの同期はうまくいかないですが、Cyberduck(SFTPクライアント?)でhost側のファイルを転送するように192.168.33.10で接続し、/home/vagrantで設定してローカルにファイルを転送できるように設定できました。

    キャンセル

  • 2016/09/15 05:17

    少し回答に補足いたしました。
    私ももっぱら開発で使うのは、IDEのSFTP機能です。

    vagrant up時の不可解なエラーで悩まされ続けるようであれば、使うBoxを変えてみるというのも、一つの手です。
    すでに利用されてるかも判りませんが、HashiCorpの

    https://atlas.hashicorp.com/bento

    から入手したものに変えてみたら、上手く行ったというのも、私はUbuntuですがありました。
    お箸とお弁当なので、相性がいいのは当然、みたいなとこです。

    構成管理を使っていれば、そういった思い切った事も気軽にできるので、それもまたおいおいで。

    キャンセル

  • 2016/09/15 11:06

    >packさん
    ありがとうございます。Ubuntuでvagrant構成を作ってる書籍も最近はよく出ていますね。また環境再構築の際はご相談させて頂きます。いつもご丁寧にありがとうございます。

    キャンセル

  • 2016/09/15 12:23

    そうですね。
    同じCentOSの同じバージョンであっても、違うみたいなので。
    また機会があれば、せひ。

    キャンセル

+1

Vagrantの共有フォルダはvagrant sshした際の/vagrantとローカルのVagrantfileの置いてある階層がリンクしています。

なので、vagrantfileと同じ階層にファイルを置けばvagrant内にもリンクされるので、ローカルのテキストエディタで編集出来るようになります。

config.vm.synced_folderの設定を記述していれば普通は出来るかと思うのですが、それで出来ないのであれば、シンボリックリンクを使って試してみてください。やり方は以下です。

//vagrantfileのある階層で起動
vagrant up
vagrant ssh
// 以下でシンボリックリンクを設定
sudo ln -s /vagrant /var/www/html

以上で出来るようになると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/15 01:57

    >kenny_sayamaさん
    ありがとうございます。sudo ln -s /vagrant /var/www/htmlも試してみたのですが、
    うまく同期できなかってです。

    キャンセル

0

フォルダのマウントに失敗していると、記載されたようなメッセージになることがあるようです。
vboxのリビルドを試されてはいかがでしょうか?
参考:http://qiita.com/takahirono7/items/ed1fa1989ec98a01b0e9

蛇足かもしれませんが、「Vagrant sshした時にターミナル上でインストールされたファイルをローカルのテキストエディタなどで編集する」という要件だけであれば、rsyncの利用は必須ではありません。利用した方が、パフォーマンスは良いということですが。
もし、rsyncを利用せずに同期だけする場合は「, type: "rsync", rsync__exclude: ".git」部分を削除してvagrant reloadしてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/15 01:53

    >GoldenLatteさん
    ありがとうございます。確かに、したい要望を考えたらそんなにrsyncを使っての同期は必要のないことかもしれないです。ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21354questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Vagrant

    1253questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。