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

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

ただいまの
回答率

90.23%

vagrant up で二度目からタイムアウト

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 236

red56

score 50

問題点

Vagrant + Virtualbox を使って Windows10 上に CentOS6 を立ち上げたいと思っているのですが、うまく行きません。参考にしたのは、ドットインストールの「ローカル開発環境の構築」です。
https://dotinstall.com/lessons/basic_localdev_win_v2

下記の環境で、ドットインストールの手順に従い、一度はエラーもなく最後まで行って、PHP での 「hello world」 の表示もうまく行きました。しかし、vagrant halt した後、もう一度、vagrant up すると、private key のところで止まり、タイムアウトのエラー表示が出て、Putty につながらなくなってしまいました。

開発環境
Windows10 pro 32bit
Virtualbox 5.2.22
Vagrant 2.2.2
CentOS 6.7(32bit)
Putty 0.71

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-6.7-i386"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end
end

試したこと

  • vagrant up 時にセキュリティソフト、ファイアーフォールを無効にする。
  • ホストマシンのBIOS設定で VT-x/AMD-V を有効にする。
  • Vagrant と Virtualbox のバージョンの組み合わせをいろいろと変えてみる。
  • bento/centos-6.8-i386 (6.7 ではなく)で vagtant init してみるが、うまく行かない。
  • Vagrantfile に
    config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    end
    を追加して、vagrant up 時に VirtualBox GUI を自動で立ち上げる。

検索して調べていると、似たような質問をしている方がいらっしゃいました。
https://teratail.com/questions/52139

カーネルの問題? よくわからないけど、これかもしれない、と思い、書いてある通り試してみると、yum update 前の古いカーネルだとすんなりと接続できることがわかりました。
( vagrant up -> 「しばらくするとGUIが自動で立ち上がる」-> 「ロゴの後の画面が表示されたら、タイマーが切れる前にどれでもいいので PC のkey を押す」 -> 「矢印 key でyum update 前の古いカーネルを選択してENTER key を押す」)

でも一度は yum update でアップデートされたカーネルでつながったのでは? と思い、
ドットインストールが用意してくれた設定用のスクリプトの実行が終わった段階( exec $SHELL -l )で、カーネルのバージョン確認をしてみてみました。( uname -r )
すると、カーネルのバージョンは古いままでした。(php の「hello world」が表示できたので、てっきりカーネルも最新のものになっていると思い込んでいました)
カーネルの場合は一度電源を切って(vagrant halt)から、リロードしないと、新しくならないみたいです。

要するに、アップデートされた新しいカーネルと今の環境では相性が悪いということでしょうか?
それともなにか設定をいじったり、インストールすることで新しいカーネルでもうまく接続できるようになるでしょうか? ご教示いただければ幸いです。

補足情報

ドットインストールによる仮想環境(CentOS)の構築手順

PowerShell

  1. 仮想マシンを作るフォルダを作って、そこで仮想マシン設定用のVagrantfileを作る
    vagrant init bento/centos-6.7-i386
  2. Vagrantfileを編集して仮想マシンのIPアドレスを192.168.33.10にする
    config.vm.network "private_network", ip: "192.168.33.10"
  3. 仮想マシンを起動する
    vagrant up

Putty で仮想マシンの設定

  1. OSを最新状態にアップデート
    sudo yum -y update(たとえば、CentOS6.7 なら CentoOS6.10、CentOS7にはならない)
    私の場合、上記コマンドではなく次のように打ったらうまく行きました。
    sudo yum -y update --exclude=kernel* --exclude=centos*
    (CentOS6.7 のままカーネルのアップデートなし)
  2. スクリプトを入手するためのgitをインストール
    sudo yum -y install git
  3. gitを使ってアプリケーション設定用のスクリプトをダウンロード
    git clone https://github.com/dotinstallres/centos6.git
  4. centos6フォルダができるのでそちらに移動
    cd centos6
  5. スクリプトを実行  // php や ruby などをインストール
    ./run.sh
  6. もろもろの設定を反映
    exec $SHELL -l

追記

VirtualBox GUI の画像
イメージ説明

アップデート前のカーネルを選択すると、次の画面が表示されます。
イメージ説明
アップデート後のカーネルを選択すると、PowerShell のほうにタイムアウトのエラーが表示されます。
最初このまま Putty には接続できないと思ったけれども、30分ぐらいすると、上の画像のように localhost login: _ が表示され、Putty につながるようになります。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

check解決した方法

0

yum update についてちょっと調べてみると、どうやらカーネルと一緒に CentoOS のバージョンも上がるらしいです。確かに上の画像でも CentOS 6.7 からいつのまにか 6.10 になっています。
カーネルも OS のバージョンも変えたくない場合は、次のコマンドを打てばよいようです。
sudo yum update --exclude=kernel* --exclude=centos*
CentOSのバージョンを確認するコマンドは、
cat /etc/redhat-release
参考 https://ex1.m-yabe.com/archives/965

ちなみに、たとえば OS のバージョンはそのままで、カーネルだけアップデートすることはできないのか、
と検索してみると、次のような回答が。
https://oshiete.goo.ne.jp/qa/6501052.html
依存関係や拡張の問題などでハマる可能性がありそうなので、やめておくことにしました。
とりあえずこれで自己解決ということにしておきます。

追記
ドットインストールの自動スクリプトで環境構築すると、PHP のバージョンは現状で 5.6 です。
ちょっと古い気がしたので PHP7.0, Apache2.2.15, MySQL 5.7 にできないかと、
今度はドットインストールのスクリプトなしで新たに構築してみました。
結果は VirtualBox5.2.22, Vagrant2.2.2, CentOS6.7 の組み合わせでも、
うまいこと接続してくれました!
古い32bit PC でも仮想構築ができるんだ、ととても喜んでいます。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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