Windows で Vagrant を使用する際の落とし穴

Windows で Vagrant を使用する際の落とし穴

この記事は、私が Windows で Vagrant を半年間使用し、突然 Mac に切り替えた後に書きました。色々な落とし穴に遭遇したので今日この記事を書きました。お役に立てれば幸いです。

発生した問題

以前、Vagrant の使い方に関する一連のチュートリアルを書きました。これらのチュートリアルを書いたとき、私は実際に Windows を使用していました。最近、Mac で使用する際にいくつか問題が発生しました。

今日私が最もお話ししたいのは、権限の問題です。

Windows にはファイル権限の概念がないため、ディレクトリを共有すると、共有ディレクトリにはデフォルトで 777 の権限が設定されます。

しかし、Mac を使用すると、共有ディレクトリの権限とユーザー グループが正しくありません。正常に使用できません。これにより、直接的な問題が生じます。

プロジェクト a は仮想マシンで実行され、ランタイム ディレクトリにログまたは一時ファイルを書き込む必要があります。つまり、読み取り権限と書き込み権限が必要です。

解決

当時はvagrangに直接sshして777権限を与えたのですが書き込みができませんでした。次に、ホスト上で 777 の権限を与えてファイルを書き込むことができましたが、次のファイルは権限を付けて書き込む必要がありました。

その後、Google や Baidu でさまざまな Web サイトを検索したところ、nfs を使用するとこの問題を解決できることがわかりました。しかし、各関係者が提供したソリューションは非常に古く、一部の方法では仮想マシンの起動が妨げられることさえありました。

他に方法はありません。公式 Web サイトにアクセスして、NFS 関連の構成を確認してください。正直に言うと、公式ドキュメントはちょっと単純すぎて抽象的であり、以前のものと組み合わせてしか使用できません。ようやく解決策が見つかりました。参考までに、関連する構成を以下に示します。

  1. config.vm.define :php7 を実行します |p7|
  2. p7.vm.provider "virtualbox"を実行します |v|
  3. v.customize [ "modifyvm" 、 :id、 "--name" "php6" "--memory" "512" ]
  4.  
  5. ## ドメイン名の解決が遅い
  6. v.customize [ "modifyvm" 、 :id、 "--natdnshostresolver1" "on" ]
  7. v.customize [ "modifyvm" 、 :id、 "--natdnsproxy1" "on" ]
  8. 終わり 
  9. p7.vm.box = "CentOs7"  
  10. p7.vm.ホスト名 = "php7"  
  11. p7.vm.network:プライベートネットワーク、IP: 「192.168.33.10」  
  12.  
  13. # ssh 奇妙: 仮想マシンを初めて起動するときに IP を取得できません
  14. p7.ssh.ユーザー名 = "root"  
  15. p7.ssh.password = "vagrant"  
  16. p7.ssh.ホスト = "192.168.33.11"  
  17. p7.ssh.ポート = 22
  18.    
  19. ## nfs ファイルの権限の問題。正常に起動するには数回の試行が必要でした。理由がわからない。
  20. p7.vm.synced_folder "./www"、"/data/wwwroot " タイプ: "nfs" 、:nfs => {
  21. :linux_nfs_options => [ "not_root_squash" ],
  22. :map_uid => 0,
  23. :map_gid => 0
  24. }
  25. 終わり 

この構成は、Vagrantfile で複数のマシンを構成するための構成ドキュメントです。遭遇した奇妙な問題のいくつかはコメントに記載されています。

  • vagrant up php7 を使用した後、設定された IP アドレスが無効になります。この IP アドレスを取得するには、仮想マシンを再起動する必要があります。まだ理由が分からないので、ご存知でしたら教えてください!
  • NFS 構成情報により、権限の問題は完全に解決されます。付与する必要がある権限は、Vagrang 仮想マシンで直接設定されます。ただし、ディレクトリをマウントすると、新しく構成されたマシンが使用可能になるまでに、不可解な理由で数回再起動することがあります。 3回始めました。
  • もう 1 つの落とし穴は、新しいマシンをインストールした後、DNS 解決を構成する必要があることです。そうしないと、一部のリソースをダウンロードできません。
  1. $ vim /etc/resolv.conf
  2.  
  3. ## 次のコンテンツを追加します
  4. ネームサーバー 8.8.8.8

起動時にルートアカウントを使用する設定になっているため、Macを起動するたびにマシンパスワードを入力する必要があり、非常に面倒です。公式ガイドでは/etc/sudoersを次のように設定します

  1. Cmnd_Alias ​​VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
  2. Cmnd_Alias ​​VAGRANT_NFSD = /sbin/nfsdを再起動します
  3. Cmnd_Alias ​​VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
  4. %admin ALL =(root) NOPASSWD: VAGRANT_EXPORTS_ADD、VAGRANT_NFSD、VAGRANT_EXPORTS_REMOVE

この設定はMac専用です

要約する

この種の問題は非常によくあります。 Vagrant を長期間使用してきたユーザーにとっては、簡単に解決できます。しかし、ほとんどの Vagrant 初心者にとって、この問題は非常に厄介であり、Vagrant の使用を断念することに直接つながる可能性があります。皆さんが諦めないように、私はこのことを書き留めて、この穴を乗り越えられるようにしなければなりません。

<<:  「分散キャッシュの詳細」 - 「独自のキャッシュを作成する」

>>:  仮想化は仮想イメージで構成されます。基本的な仮想イメージを作成するにはどうすればよいですか?

推薦する

Kubernetes API サーバー ハンドラー登録プロセスの分析

著者: Han Weisen は、China Mobile Cloud Capability Cen...

Google、Google Code サービスを終了へ

Googleの公式ブログによると、GoogleはGoogle Codeプロジェクトを閉鎖しようとして...

SAPは6つの持続可能な開発ソリューションを提供し、持続可能な開発アライアンスの構築を継続しています。

最近、SAP は「2022 SAP サステナビリティ調査レポート」を発表しました。報告書の中で、中国...

ウェブサイトデータ分析: SkyGlue - GA タグ付けユーザーによるクリックストリームの生成

私が最初に SkyGlue ツールを知ったのは、Cloga のブログの記事でした。その後、Jasse...

SEO コミュニティへの参加に関する議論

外部リンクの組み込みに関しては、ほとんどの SEO 担当者の目には、組み込まれていて検出できる外部リ...

微博は大企業の時代に入るかもしれない

Weiboが中国でその潜在力を発揮し始めた当初、Weiboは大きな商業価値を持つプラットフォームとし...

ブランドはワールドカップをマーケティングにどのように活用できるでしょうか?

2018年カタールワールドカップが正式に始まりました。ドイツの伝説的サッカースター、ベッケンバウアー...

クラウドへの移行は急務です。インターネット大手は金融クラウドをめぐって争っている

現在、To C分野の配当が枯渇したため、To Bのトレンドに追いつくために、BATは抜本的な構造調整...

アリババクラウドは、自社開発の第4世代神龍アーキテクチャを搭載し、RDMA強化インスタンスを含む多数の新製品をリリースした。

12月21日、アリババクラウドは自社開発の神龍アーキテクチャをベースにしたRDMA強化インスタンス、...

edgevirt: 月額 3 ドル、シアトル VPS、4G メモリ/2 コア/50g SSD/20T トラフィック/10Gbps 帯域幅

オリジナルのエクイニクス マイアミ データ センターをベースに、edgevirt はシアトルに拡大し...

SEOERがウェブサイトの重量を改善するためのいくつかの方法を実践的に共有

ほとんどの SEO 担当者は、ウェブサイトの重量を改善する方法を知りません。私は個人的に、フォーラム...

企業はどのようにプライベート クラウド プラットフォームを構築するのでしょうか?注目すべき問題

クラウドコンピューティングは近年ホットな話題になっています。法人ビジネスの増加に伴い、企業もプライベ...

実践的なヒント: エッジコンピューティングの成功

エッジ コンピューティングでは、セキュリティやスケーラビリティなどの技術的な懸念だけでなく、IT チ...

zgocloudはどうですか?高性能な日本のソフトバンクVPSのレビュー

当サイトでは最近、新しいVPS業者zgocloud(現在はzgovpsに改名)の日本VPSを導入しま...