- Vagrant概要
- 起動
- 環境構築
- 自動で環境構築
- フォルダ同期
- スペックの指定
- IPアドレスの指定
- 複数サーバの起動について
- Amazon Linux の起動について
- ボックスを作成&使用(要検証)
- クローン(要検証)
- アクセスするドメインを自動設定(要検証)
- Vagrant Manager
- PostgreSQL検証
- トラブル
- Vagrantコマンドメモ
Vagrant概要
VirtualBox ... 仮想化環境。Windows内でLinux、Mac内でWindows…など、、既存のOS内で別のOSを使うことができる。
Vagrant ... VirtualBoxなど、仮想化環境を容易に構築することができる。
ここでは、Windows上にLinux環境を作るものとする
Vagrant
https://ja.wikipedia.org/wiki/Vagrant_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
VirtualBox
https://ja.wikipedia.org/wiki/VirtualBox
VMware
https://ja.wikipedia.org/wiki/VMware
Oracle VM VirtualBox
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnj...
VagrantとDockerについて名前しか知らなかったので試した
http://qiita.com/hidekuro/items/fc12344d36d996198e96
Vagrant(1.7.2)でCentOSをインストールする
http://qiita.com/ringo0321/items/f07ea1dfc9b7eb9326f8
仮想環境構築ツール「Vagrant」で開発環境を仮想マシン上に自動作成する
http://knowledge.sakura.ad.jp/tech/1552/
Oracle VM VirtualBoxを使う
http://www.atmarkit.co.jp/ait/articles/1009/30/news122.html
VirtualBoxの導入からOSインストールまでのチュートリアル解説
http://success.tracpath.com/blog/2013/10/15/virtualbox%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%8B%E3%82%89o...
VirtualBoxとVagrantで開発環境を構築
http://www.webcyou.com/?p=4632
2016年版、Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き)
http://paiza.hatenablog.com/entry/docker_intro
開発環境の構築・共有を簡単にするVagrant入門
https://thinkit.co.jp/story/2015/03/19/5740
Vagrantで複数環境を立ち上げる際、IPアドレスの割当やポートフォワードを全て自動化する
http://qiita.com/jyokyoku/items/85b030537a5728c9d771
【まとめ】Vagrant コマンド一覧 - Qiita
https://qiita.com/oreo3@github/items/4054a4120ccc249676d9
起動
■準備
XAMPPなど何らかのローカル環境を使っている場合、念のためあらかじめ終了させておく
■VirtualBoxインストール
※環境によっては、最新版では動作しないことがあるので注意
※2022年3月の時点でWindows11にインストールする際、
「VirtualBox 6.1.32 + Vagrant 2.2.19」なら動作した(この時点での最新版)
Docker Toolbox は使用しないので、このまま進める
※2021年7月の時点でWindows10にインストールする際、
「VirtualBox 6.1.24 + Vagrant 2.2.17」なら動作した(この時点での最新版)
Docker Toolbox は使用しないので、このまま進める
※2020年12月にWindows10をアップデートをした
Windows10にインストール済みだったVagrantが起動しなくなった
「VirtualBox 6.1.16 + Vagrant 2.2.14」なら動作した(この時点での最新版)
いったん Docker Toolbox の利用は急がないので、このまま進める
※2020年6月の時点でWindows10にインストールする際、
「VirtualBox 6.1 + Vagrant 2.2.9」なら動作した(この時点での最新版)
ただし上記VirtualBoxではDockerが起動しなかった。詳細は Docker.txt を参照
※2019年8月の時点でWindows10にインストールする際、
「VirtualBox 6.0.10 + Vagrant 2.2.5」なら動作した(この時点での最新版)
ただし上記VirtualBoxではDockerが起動しなかったので、後から「VirtualBox-5.2.32-132073-Win.exe」をインストールしなおした
※2018年5月の時点でWindows10にインストールする際、
「VirtualBox 5.2.12 + Vagrant 2.1.1」なら動作した(最新版のVirtualBoxでは、CentOS起動時に「default: SSH auth method: private key」で止まってしまった)
※2018年2月の時点でWindows10にインストールする際、
「VirtualBox 5.1.32 + Vagrant 2.0.1」なら動作した(最新版のVirtualBoxでは、CentOS起動時に「default: SSH auth method: private key」で止まってしまった)
https://www.virtualbox.org/ から VirtualBox-6.X.XX-XXXXXX-Win.exe をダウンロード
初期設定のまま C:\Program Files\Oracle\VirtualBox\ にインストール
途中「Warning Network Interfaces」と表示されるが、「Yes」を選択する
途中デバイスソフトウェアのインストールについて確認されるが、「インストール」を選択する
Oracle VM VirtualBox マネージャが起動すれば完了
■Vagrantインストール
https://www.vagrantup.com/ から vagrant_2.X.X_x86_64.msi をダウンロード
初期設定のまま C:\HashiCorp\Vagrant\ にインストール
PCを再起動
■CentOS7用のボックスを取得
https://app.vagrantup.com/boxes/search でCentOS7用BoxのURLを確認
(Oracleだったりその他サイトだったり、ダウンロード先はたくさんあるので好みの場所から取得する)
以下にボックスがある
Vagrant box centos/7 - Vagrant Cloud
https://app.vagrantup.com/centos/boxes/7
以下、Windowsのコマンドプロンプトで操作
>vagrant box list
There are no installed boxes! Use `vagrant box add` to add some.
はじめはボックスは無い
以下のようにしてボックスを追加できる
>vagrant box add centos/7
CentOSをダウンロードには時間がかかる
実行しても、反応があるまで少しラグがある
以下のようにして、追加されたボックスを確認できる
>vagrant box list
■参考: app.vagrantup.com 以外から取得する例
http://www.vagrantbox.es/ でCentOS7用BoxのURLを確認
>vagrant box add centos72-x64 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos72-x64' (v0) for provider:
box: Downloading: https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
box: Download redirected to host: github-production-release-asset-2e65be.s3.amazonaws.com
box:
==> box: Successfully added box 'centos72-x64' (v0) for 'virtualbox'!
>vagrant box list
centos72-x64 (virtualbox, 0)
■Vagrantfile作成
>mkdir C:\Users\refirio\Vagrant\centos7
>cd C:\Users\refirio\Vagrant\centos7
※CentOS7用フォルダを作成して移動。場所やフォルダ名は任意
>vagrant init --minimal centos/7
==> vagrant: A new version of Vagrant is available: 2.2.13 (installed version: 2.2.9)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
※Vagrantfile(VMの構成を書くためのファイル)を作成
※--minimal を省略すると、コメント付きのファイルが作成される
※コマンドを使わずに、手動でVagrantfileを作成してもいい
Vagrantfileの内容は以下のとおり。「centos/7」には先程入手したボックスの名前を指定する(任意の名前ではない)
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
end
一例だが、テキストエディタで以下のように編集。「192.168.33.10」はサーバにアクセスするときのIPアドレス
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.box_check_update = false
config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.network "forwarded_port", guest: 80, host: 80
# config.vm.synced_folder "./code", "/var/www/html/code"
end
※上記のうち config.vm.box_check_update は true の方がいいかもしれない。要検証
【備忘録】Vagrant 基本の巻 - Qiita
https://qiita.com/shoko_kb/items/1701247996f031d0cf4f
vagrant box updateでboxファイルをアップグレードする
https://hnakamur.github.io/blog/2015/04/25/vagrant-box-update/
■仮想マシンを起動
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1565852593519_83202
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:
https://www.virtualbox.org/manual/ch04.html#sharedfolders
This option can be disabled globally with an environment variable:
VAGRANT_DISABLE_VBOXSYMLINKCREATE=1
or on a per folder basis within the Vagrantfile:
config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.3.30
default: VirtualBox Version: 6.0
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => C:/Users/refirio/Vagrant/centos7
※仮想マシンを起動(初回はBoxのダウンロードとVM生成があるため時間がかかる)
※完了すると、Oracle VM VirtualBox マネージャで確認できる
■SSHでアクセス
>vagrant ssh
`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use your favorite SSH client with the following
authentication information shown below:
Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Users/refirio/Vagrant/centos7/.vagrant/machines/default/virtualbox/private_key
SSHでの接続情報が表示されるので、この情報でSSHログインできる
(環境によっては、即座にSSHで操作できる状態になる)
もしくは、以下のホスト名とポートでもアクセスできる
(Vagrantfile で「config.vm.network "private_network", ip: "192.168.33.10"」と設定した場合)
Host: 192.168.33.10
Port: 2222
Vagrantの持つ機能で「ホストOS(この場合はWindows)から127.0.0.1の2222番ポートへアクセスした場合、VagrantのSSHへ転送する」となっている
設定されているのはSSHへのアクセスのみ
それとは別にVagrantはネットワークの設定機能を持っている
デフォルトで「ホストOSから192.168.33.10の22番ポートへのアクセスは2222番ポートへ転送する」となっているため、SSHアクセスができる
これを使えば80番ポートでHTTPアクセスさせることもできる
FTP - vagrantのssh-addressとprivate-network-ipの違い(32537)|teratail
https://teratail.com/questions/32537
Vagrantで立ち上げた仮想環境にIPアドレスを振ってsshでログインする - Qiita
https://qiita.com/grachro/items/4d34a43a9a57946f3693
■バーチャルマシンを終了する場合
>cd C:\Users\refirio\Vagrant\centos7
>vagrant halt
■バーチャルマシンを破棄する場合
>cd C:\Users\refirio\Vagrant\centos7
>vagrant destroy
■ボックスを削除する場合
>vagrant box remove centos/7
■2022年3月にWindows11にインストールした際の作業内容まとめ
>vagrant box list
>vagrant box add centos/7
>vagrant box list
>cd C:\Users\refirio\Vagrant\centos7
>vagrant init --minimal centos/7
作成されたVagrantfileを編集
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.box_check_update = false
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.synced_folder "./code", "/var/www/html/code"
end
同じ階層に code フォルダを作成
>vagrant up
「Vagrant was unable to mount VirtualBox shared folders.」のエラーが表示された
「トラブル」に記載の手順にあるように、以下を実行
>vagrant plugin install vagrant-vbguest
>vagrant halt
>vagrant up
>vagrant ssh
$ sudo yum install -y kernel kernel-devel gcc
$ exit
>vagrant reload
「環境構築」の手順をもとに、CentOS7環境を作成
引き続き、以下をもとに development 環境を作成
refirio/ansible-development
https://github.com/refirio/ansible-development
その後、WSL.txt の内容をもとに WSL2+Docker 環境を作成
環境構築
■SELinuxを無効化
※設定しておかないと、/var/www/html/index.html を作成しても反映されなかった
# setenforce 0
# getenforce
Permissive
# vi /etc/sysconfig/selinux
■日本語化
#SELINUX=enforcing
SELINUX=disabled
# localedef -f UTF-8 -i ja_JP ja_JP … 日本語ロケールを追加
# localectl set-locale LANG=ja_JP.UTF-8 … 設定
# localectl status … 確認
■日本語化(CentOS6のときに検証したもの)
# yum -y groupinstall "Japanese Support" … 日本語関連のパッケージをまとめてインストール
# localedef -f UTF-8 -i ja_JP ja_JP.utf8 … 日本語ロケールを追加
# vi /etc/sysconfig/i18n … i18nを修正
※すべてが日本語化されるわけではないみたい
VagrantのCentOSを日本語化してみる
http://d.hatena.ne.jp/yk5656/20140527/1402758009
■ファイヤーウォールを設定(CentOS6のときに検証したもの)
#LANG="en_US.UTF-8"
LANG="ja_JP.UTF-8"
$ date … 日本語化を確認する(一旦ログアウトして確認する)
2017年 11月 18日 土曜日 20:19:27 JST
$ su - … rootになる
Password: vagrant
# service iptables stop … ファイヤーウォールを無効にする(ローカル開発環境のため)
# chkconfig ip6tables off
# chkconfig iptables off
■タイムゾーンを設定
# timedatectl set-timezone Asia/Tokyo … 設定
# timedatectl status … 確認
■タイムゾーンを設定(CentOS6のときに検証したもの)
# date … 時間を確認する(時差がある)
Fri Jun 3 12:35:48 UTC 2016
# cp /usr/share/zoneinfo/Japan /etc/localtime … 時差を調整する
cp: overwrite `/etc/localtime'? y
# vi /etc/sysconfig/clock
以降は通常通りサーバを構築する
開発環境なので、急ぐなら yum update は省略していいかも
■HTTPでアクセス(Apacheの場合)
#ZONE="Etc/UTC"
ZONE="Asia/Tokyo"
# date … 時間を確認する(時差が調整されている)
Fri Jun 3 21:36:45 JST 2016
# yum -y install httpd … Apacheをインストール
# vi /etc/httpd/conf/httpd.conf … サーバ名を設定
インストール後、Vagrantfile で設定したIPアドレスである http://192.168.33.10/ にアクセスすると
/var/www/html/index.html の内容が表示される
■HTTPでアクセス(nginxの場合)
ServerName localhost.localdomain:80
# systemctl start httpd
# systemctl enable httpd
# vi /var/www/html/index.html … テストページ作成
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>テスト</title>
</head>
<body>
<p>テスト。</p>
</body>
</html>
# yum -y install nginx … nginxをインストール
# systemctl start nginx
# systemctl enable nginx
インストール後、Vagrantfile で設定したIPアドレスである http://192.168.33.10/ にアクセスすると
nginxのデフォルト画面が表示される
■PHPを使用(Apacheの場合)
# yum -y install php php-mbstring php-gd
通常通り、上のようなコマンドでインストールできる
ただし開発環境なので、タイムゾーンや文字コードなどの基本的な設定以外に、以下の設定も行なっておくことを推奨
# vi /etc/php.ini
■localhostでアクセスする&同一LAN内からアクセスする
※以下の方法の他に、「config.vm.network」の設定でDHCPや固定IPの設定などを行うこともできる
詳細は「IPアドレスの指定について」の項目を参照(そちらの方が正攻法かもしれない)
例えばVagrantfile に以下の設定を追加して起動すると、
http://localhost:8080/ でアクセスできるようになる
config.vm.network "forwarded_port", guest: 80, host: 8080
つまり、Vagrantfile に以下の設定を追加して起動すると、
http://localhost:80/ でアクセスできるようになり、ポート番号を省略して http://localhost/ でアクセスできる
config.vm.network "forwarded_port", guest: 80, host: 80
この状態なら、同一LAN内から http://192.168.1.25/ のようにPCのIPアドレスを指定すればlocalhostにアクセスできる
(LANやWindowsのネットワーク設定はされているものとする)
OSX における Vagrant 80番ポートフォワーディング - Qiita
http://qiita.com/hidekuro/items/a94025956a6fa5d5494f
LAN内の他端末からvagrantの仮想マシンにsshする - Qiita
http://qiita.com/teratsyk/items/10bf89422ce98265c8a8
■メールの送信
error_reporting = E_ALL
display_errors = On
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off
# systemctl restart httpd
# yum -y install mailx sendmail sendmail-cf
# systemctl start sendmail
# systemctl enable sendmail
# systemctl is-enabled sendmail
↑上記の手順で最低限メールを送信できるらしいが、設定を行わなくても↓でメールを送信できた
PHPからの送信も mb_ 含め大丈夫だった
# mail refirio.work@gmail.com
Subject:test … 「test」と入力してENTER
test … 「test」と入力してENTER
. … 「.」と入力してENTER
■CentOS7+nginx(整理中メモ)
MacにVagrantでCentOS7環境を作成 - Qiita
https://qiita.com/sudachi808/items/3614fd90f9025973de4b
v1801.01 の CentOS 7 Vagrant box に日本語ロケールを追加する方法 - Qiita
https://qiita.com/ryo-sato/items/00dea41bf665626c9b43
vagrant box list
vagrant box add centos/7
3
vagrant box list
mkdir C:\vagrant\centos7
mkdir C:\vagrant\centos7\code
cd C:\vagrant\centos7
vagrant init centos/7
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.box_check_update = false
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.synced_folder "./code", "/var/www/html/code"
end
vagrant up
su -
systemctl stop firewalld
systemctl disable firewalld
localectl list-locales | grep -i ja
yum -y reinstall glibc-common
localectl list-locales | grep -i ja
localectl set-locale LANG=ja_JP.UTF-8
localectl status
timedatectl set-timezone Asia/Tokyo
timedatectl status
yum -y install nginx … これで駄目なら以下でインストール
yum -y install http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install --enablerepo=nginx nginx
systemctl start nginx.service
systemctl enable nginx.service
http://192.168.33.10/
自動で環境構築
※未検証
Vagrant Provisionを使うことにより、指定のタイミングで任意のシェルスクリプトを実行できる
これを利用して、自動で環境構築を行うことができる
Vagrant Provisionとは - Qiita
https://qiita.com/wakky_404/items/710f08c865969e72df73
【Vagrant】シェルプロビジョニングの実行方法 - アナグマのモノローグ
https://monologu.com/vagrant-shell-provisioning/
Vagrant入門 - プロビジョニング (Provisioning) |
https://weblabo.oscasierra.net/vagrant-provisioning/
Vagrantプロビジョニング入門 - シェルスクリプトで簡単プロビジョニング (1) |
https://weblabo.oscasierra.net/vagrant-provisioning-shell-1/
Vagrant - プロビジョナーの基本的な使い方 - Vagrantはあなたのマシンをプロビジョニングする方法について複数のオプションを提供していますが、標準的な使用パターンはもちろん、全てのプロビジョナーに共通し - 日本語
https://runebook.dev/ja/docs/vagrant/provisioning/basic_usage
AnsibleとVagrantで開発環境を構築する | さくらのナレッジ
https://knowledge.sakura.ad.jp/2882/
以下が具体例として参考になりそう
VagrantfileとShellだけでLAMP環境を構築する(CentOS6.7,Apache2.2,PHP5.6,MySQL5.6) - Qiita
https://qiita.com/TsukasaGR/items/2d47eae4d8f9c0fe5cd5
VagrantのShell ProvisionerでMySQLのテーブル作成を行う - Qiita
https://qiita.com/nimzo6689/items/c2f799d5979d54ae12c2
フォルダ同期
初期状態では C:\Users\refirio\Vagrant\centos7 の内容と /vagrant の内容が同期している
以下のように指定すると、任意の場所を同期させることができる
(この場合、C:\Users\refirio\Vagrant\centos7\code の内容と /var/www/html/code の内容が同期している)
config.vm.synced_folder "./code", "/var/www/html/code"
開発時はバーチャルホストを設定して、C:\Users\refirio\Vagrant\centos7\code と /var/www/vhosts を丸ごと同期させたりすると便利
以下はVagrantfileの設定例
config.vm.synced_folder "./code", "/var/www/vhosts"
開発時はWindowsのhostsファイルを編集して
http://refirio.localhost/
のようなURLでアクセスすると良さそう
■共有フォルダをNFSにする
VagrantでECCubeなどを使うと非常に重いが、大量のファイルがある場合に共有フォルダの同期に時間がかかっている可能性がある
vagrant-winnfsd プラグインを導入して共有フォルダをNFSに指定すると、動作が早くなる可能性がある
>vagrant halt … 起動している場合は終了させる
>vagrant plugin install vagrant-winnfsd … プラグインをインストール
Vagrantfile で以下のように設定する
config.vm.synced_folder "./code", "/var/www"
↓
config.vm.synced_folder "./code", "/var/www", type: "nfs"
通常どおり起動する
>vagrant up
起動時にWindowsのネットワークの警告が表示されたが、そのまま許可して進めた
これで使用中の動作が早くなり、起動自体も早くなった
Vagrant(VirtualBox)でディスクアクセスが遅い問題の対処法
https://masshiro.blog/vagrant-laravel-slow/
Vagrant 事始め 05 - 共有フォルダを設定する - Qiita
https://qiita.com/centipede/items/5b3cb4965618993cefec
Windows + vagrant環境にはvagrant-winnfsdがおすすめ(一部難あり) | Blog | riatw.me
https://riatw.me/blog/windows_vagrant_winnfsd.html
■特定フォルダの同期除外
※うまく反映されず
Vagrant: synced_folderのrsyncで特定のファイルを除外したい - Qiita
https://qiita.com/suin/items/5de842c6bb9fa7846b63
Vagrantチートシート - Qiita
https://qiita.com/miminashi/items/7bda1598c4a92920c4bd
Vagrantfile を変更して再起動するが、同期状況に変化が無い
config.vm.synced_folder "./code", "/var/www", type: "rsync",
rsync__exclude: [
".git/",
"vendor/",
]
vagrant rsync-auto で rsync__exclude を変更しても反映されない場合 - LANCARD.LAB|ランカードコムのスタッフブログ
https://www.lancard.com/blog/2015/04/07/vagrant-rsync-auto-%E3%81%A7-rsync__exclude-%E3%82%92%E5%A4%...
上記を参考に、以下を試す
vagrant halt
rm .vagrant/machines/default/virtualbox/synched_folders
vagrant up
synched_folders の内容が以下のように変化したが、一切同期しなくなる
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"C:/Users/refirio/Vagrant/development","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"},"/var/www":{"type":"rsync","rsync__exclude":[".git/","vendor/"],"guestpath":"/var/www","hostpath":"C:/Users/refirio/Vagrant/development/code","disabled":false,"__vagrantfile":true,"exclude":[".git/","vendor/"],"owner":"vagrant","group":"vagrant"}}}
↓
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"C:/Users/refirio/Vagrant/development","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"},"/var/www":{"type":"rsync","rsync__exclude":[".git/","vendor/"],"guestpath":"/var/www","hostpath":"C:/Users/refirio/Vagrant/development/code","disabled":false,"__vagrantfile":true,"exclude":[".git/","vendor/"],"owner":"vagrant","group":"vagrant"}},"virtualbox":{}}
synched_folders を削除し、Vagrantfile の内容を元に戻して再起動
以下のように変化し、また同期するようになった
{"rsync":{"/vagrant":{"type":"rsync","guestpath":"/vagrant","hostpath":"C:/Users/refirio/Vagrant/development","disabled":false,"__vagrantfile":true,"owner":"vagrant","group":"vagrant"}},"virtualbox":{"/var/www":{"guestpath":"/var/www","hostpath":"C:/Users/refirio/Vagrant/development/code","disabled":false,"__vagrantfile":true}}}
以下のようにするとどうかと試したが、除外設定が反映されなかった(すべて同期される)
config.vm.synced_folder "./code", "/var/www",
rsync__exclude: [
".git/",
"vendor/",
]
解決せず
スペックの指定
Vagrantfile で以下のように設定する。この場合、CPUは2つでメモリは4096MBとなる
ECCubeなどでは、この指定を行っておくと比較的高速に起動できる
config.vm.provider "virtualbox" do |vb|
vb.cpus = 2
vb.memory = 4096
end
Vagrantで作成するVMのスペック等の設定(cpu/memory/storageほか) - Qiita
https://qiita.com/zaki-lknr/items/469e4de02a8d544f2153
VagrantfileでCPUの数を設定する - Qiita
https://qiita.com/nmatayoshi/items/61b6936e9b9b0abecc1a
IPアドレスの指定
Vagrantfileの「config.vm.network」で、IPアドレスを指定できる(HTTPアクセスなどに使用するアドレス)
いずれの場合も、SSHでのアクセスは 127.0.0.1 で行う
Vagrantでpingが通らない!ゆえにVagrantネットワークを学び直したよ | ITかあさん
http://www.kaasan.info/archives/3665
Vagrant 初心者 Network 設定 - Qiita
https://qiita.com/yusk24/items/e43b25ce4eeda69b4b57
LAN内の他端末からvagrantの仮想マシンにsshする - Qiita
https://qiita.com/teratsyk/items/10bf89422ce98265c8a8
よく使うVagrantfileの設定のまとめ
https://www.virment.com/vagrantfile-settings/
■forwarded_port
config.vm.network "forwarded_port", guest: 80, host: 8080
ホストマシンから http://localhost:8080/ でアクセスできる
PCのIPアドレスを指定すれば、同一LAN内からVagrantにアクセスできる
詳細はこのドキュメントの「環境構築」の「localhostでアクセスする&同一LAN内からアクセスする」を参照
■private_network
config.vm.network "private_network", ip: "192.168.33.10"
ホストマシンから 192.168.33.10 にアクセスできる
サーバ内でIPアドレスを確認すると、以下のようになっている
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
■public_network(DHCP)
config.vm.network "public_network"
以下の場合、ホストマシンから 192.168.1.105 にアクセスできる(毎回IPアドレスの確認が必要)
同一LAN内の他マシンからもアクセスできる
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.105/24 brd 192.168.1.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:CB:D7:28
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fecb:d728/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:868 errors:0 dropped:0 overruns:0 frame:0
TX packets:579 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90222 (88.1 KiB) TX bytes:82612 (80.6 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:AE:64:F9
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feae:64f9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:510 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:39865 (38.9 KiB) TX bytes:4801 (4.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
■両方を指定
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network"
以下の場合、ホストマシンから 192.168.33.10 にアクセスできる
192.168.1.106 でもアクセスでき、このアドレスなら他マシンからもアクセスできる(毎回IPアドレスの確認が必要)
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:cb:d7:28 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fecb:d728/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:ae:64:f9 brd ff:ff:ff:ff:ff:ff
inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1
inet6 fe80::a00:27ff:feae:64f9/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:71:6d:ff brd ff:ff:ff:ff:ff:ff
inet 192.168.1.106/24 brd 192.168.1.255 scope global eth2
inet6 fe80::a00:27ff:fe71:6dff/64 scope link
valid_lft forever preferred_lft forever
■public_network(IP固定)
config.vm.network "public_network", ip: "192.168.1.10", bridge: "en0: Wi-Fi (AirPort)"
IPアドレスの重複があると、Vagrant起動時にエラーになる
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
/sbin/ifdown 'eth1'
mv -f '/tmp/vagrant-network-entry-eth1-1526521968-0' '/etc/sysconfig/network-scripts/ifcfg-eth1'
/sbin/ifup 'eth1'
Stdout from the command:
Determining if ip address 192.168.1.10 is already in use for device eth1...
Error, some other host (60:F8:1D:BA:9D:46) already uses address 192.168.1.10.
Stderr from the command:
config.vm.network "public_network", ip: "192.168.33.101", bridge: "en0: Wi-Fi (AirPort)"
他のアドレスを指定すればエラーが解消された
…が、ブラウザから接続できない
試したネットワークのセグメントが 192.168.1.0/24 のため、192.168.33.0/24 だと通信できなかったのだと思われる
また改めて検証したい
複数サーバの起動について
Capistrano で Rails アプリケーションの自動デプロイ - Qiita
https://qiita.com/Salinger/items/4ee4f3c5ebd5227196c0
Vagrantで複数の仮想マシンを立ち上げる マルチマシン(Malti-Machine)設定 - Qiita
https://qiita.com/zum/items/03da94291ffbc9af2244
以下のようなVagrantfileで、複数のサーバを一度に起動できる
Vagrant.configure(2) do |config|
config.vm.box = "centos72"
config.vm.box_check_update = false
config.vm.define "server1" do |node|
node.vm.hostname = "server1.localhost"
node.vm.synced_folder "./code1", "/var/code"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2210
#node.vm.network "private_network", ip: "192.168.33.10", virtualbox__intnet: "intra"
node.vm.network "private_network", ip: "192.168.33.10"
end
config.vm.define "server2" do |node|
node.vm.hostname = "server2.localhost"
node.vm.synced_folder "./code2", "/var/code"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2211
#node.vm.network "private_network", ip: "192.168.33.11", virtualbox__intnet: "intra"
node.vm.network "private_network", ip: "192.168.33.11"
end
config.vm.define "server3" do |node|
node.vm.hostname = "server3.localhost"
node.vm.synced_folder "./code3", "/var/code"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2212
#node.vm.network "private_network", ip: "192.168.33.12", virtualbox__intnet: "intra"
node.vm.network "private_network", ip: "192.168.33.12"
end
end
この場合、以下の情報でSSHアクセスできる
ポート: 2210
鍵: C:/vagrant/multi/.vagrant/machines/server1/virtualbox/private_key
ポート: 2211
鍵: C:/vagrant/multi/.vagrant/machines/server2/virtualbox/private_key
ポート: 2212
鍵: C:/vagrant/multi/.vagrant/machines/server3/virtualbox/private_key
Webサーバをインストールすれば、以下のURLでHTTPアクセスできる
http://192.168.33.10/
http://192.168.33.11/
http://192.168.33.12/
以下のようにすれば、サーバ間でSSHアクセスできる
$ ssh -p 22 vagrant@192.168.33.11
Amazon Linux の起動について
Windows10 + Vagrant で Amazon Linux を起動する - ぎゃぴろぐ
http://gappy.hateblo.jp/entry/20180617/1529230685
Vagrantでお手軽にAmazon Linuxの仮想マシンを立てる | レコチョクのエンジニアブログ
https://techblog.recochoku.jp/5048
Amazon Linux 2が出たのでVagrantでの開発環境を試してみる - Qiita
https://qiita.com/winky/items/8fff704a50db821ea77a
ボックスを作成&使用(要検証)
作成した環境を複製して使い回す
■ボックスを作成
>vagrant package --base refirio_net_default_1465954562620_24555 --output vagrant-centos-6.7-refirio_net-20160615.box
==> refirio_net_default_1465954562620_24555: Clearing any previously set forwarded ports...
==> refirio_net_default_1465954562620_24555: Exporting VM...
==> refirio_net_default_1465954562620_24555: Compressing package to: C:/vagrant/refirio_net/vagrant-centos-6.7-refirio_net-20160615.box
--base ... 作成対象の仮想マシン名
--output ... 出力 box ファイル名
仮想マシン名は「Oracle VM VirtualBox マネージャ」で確認できる「refirio_net_default_1465954562620_24555」を指定した
C:\vagrant\refirio_net\vagrant-centos-6.7-refirio_net-20160615.box
が作成されたので、ボックスとして使えるか確認する
大丈夫なら、他のPCなどでも使えるか確認する
ボックスとは別にスナップショットも試す
cronも試す
■作成したボックスから作成
>vagrant box add centos-6.7-refirio_net C:\Users\Refirio\Documents\VirtualBox\vagrant-centos-6.7-refirio_net-20160615.box
Vagrant.configure(2) do |config|
config.vm.box = "vagrant-centos-6.7"
config.vm.box_check_update = false
# config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.synced_folder "./test", "/var/www/html/test"
end
>vagrant init --minimal centos-6.7-refirio_net
Vagrant.configure(2) do |config|
config.vm.box = "centos-6.7-refirio_net"
config.vm.box_check_update = false
# config.vm.network "forwarded_port", guest: 80, host: 80
config.vm.network "private_network", ip: "192.168.33.11"
# config.vm.synced_folder "./test", "/var/www/html/test"
end
>vagrant up
default: Warning: Authentication failure. Retrying...
のエラーが表示された
>vagrant ssh
Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Users/Refirio/.vagrant.d/insecure_private_key
上記情報で接続すると「秘密鍵ファイルが存在しません。」と表示された
が、
Host: 127.0.0.1
Port: 2222
Username: vagrant
Password: vagrant
なら接続できた。
.vagrant/machines/default/virtualbox/
の内容を確認すると、鍵ファイルがなく本来よりもファイル数が少ない
エラーの最中にここに鍵ファイルを置くと通った?
でも以前の .vagrant/ を置いて vagrant up すると、内容がクリアされた上で新規に作られた
よって一度 vagrant up で立ち上げてから .vagrant/ を入れ替えればよかった?
と思ったけど、そうでも無いかも。要検証
未検証だが、以下も参考にできそう
Vagrantでboxファイル作成 - Qiita
https://qiita.com/Esfahan/items/46da3ce1893a67789b58
vagrant upコマンド実行時にAuthentication failure.エラーが発生する - Qiita
https://qiita.com/shyse/items/9ec50b868b90f847c75f
Vagrant 1.7 〜 で vagrant package する場合の注意 - Qiita
https://qiita.com/komazarari/items/eebdfd06300275c02914
VagrantでSSH鍵の設定 - [Authentication failure. Retrying…]の対処策 - Qiita
https://qiita.com/Esfahan/items/e5f707dc6d116c2cc751
package化したboxを使うときによく出るエラー -- blog.10rane.com
http://blog.10rane.com/2015/08/28/errors-out-when-using-to-package-the-box/
クローン(要検証)
コマンドでシャットダウンし、Oracle VM VirtualBox マネージャで、
「仮想マシンを右クリック → クローン → 名前を付けて次へ → すべてをクローン → クローン」
とするとクローン(環境の複製)ができる
アクセスするドメインを自動設定(要検証)
vagrant使うときのipアドレスを自分の好きなようにカスタマイズ!
http://blog.fukamin.me/2015/08/06/vagrant%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AEip%E3%82%A2%E3...
config.vm.hostname = "local.fukamin.me"
のように書けばVagrantがhostsファイルを編集してくれるらしい
この場合、Vagrantが立ち上がっている間だけhostsファイルに記述が追加されるらしい
…が、自分の環境ではなぜかアクセスできず。要調査
現状のこのファイルの手順では、SSHで接続できてもHTTPで接続できないことがあった
以前ダウンロードした centos64-x86_64 から新規に環境を作って問題なかったので、OSの設定などに問題は無いと思われる
Windows10環境で新規にVagrantをインストールするときは、追加で何らかの設定が必要だとか?
同一ネットワーク内で同一IPアドレスを使えないとか?
同一ネットワーク内の複数のPCで 192.168.33.10 で起動させても大丈夫だった。重複は問題ないみたい?
次回構築時、以下の手順などを確認する
Vagrant + Virtualbox + CentOS 6.5 でhttpdサーバを構築できない
https://teratail.com/questions/26240
VagrantでCentOS7を立てたが、httpアクセスが繋がらない時にやったこと
http://qiita.com/ta__ho/items/1bdd8403a15be7411e20
Windowsにインストールされているセキュリティソフトの影響とか?それらをすべてOFFにしてみる
80番ポート以外に変更すればアクセスできたかも?8080ポートでのアクセスなども試してみる
「vagrant http ポート」でググると色々出てくる
OSX における Vagrant 80番ポートフォワーディング
http://qiita.com/hidekuro/items/a94025956a6fa5d5494f
Vagrant + VirtualBoxで仮想環境側のポートをあける
http://qiita.com/kkam0907/items/4a345cd5e834969d3859
Vagrantのport forwardは普通に80 → 80に転送すればよいのでは
http://dqn.sakusakutto.jp/2014/02/vagrant_port_forward_80_80.html
Vagrant Manager
※未検証
最初のマシン内のスキャンには時間がかかるかも?
[windows]Vagrant Managerインストール方法 | たきもと.com
https://kengotakimoto.com/post-1674/
Vagrantをメニューバーから操作できるVagrant Manager - Sou-Lablog
https://blog.sou-lab.com/vagrant-manager/
PostgreSQL検証
■基本設定
※SELinuxを無効にしておく
※言語とタイムゾーンを設定しておく
■Apacheをインストール
# yum -y install httpd
# vi /etc/httpd/conf/httpd.conf
http://192.168.33.10/
■PHPをインストール
ServerName localhost.localdomain:80
# service httpd start
# chkconfig httpd on
# vi /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>テスト</title>
</head>
<body>
<p>テスト。</p>
</body>
</html>
# yum -y install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum -y install --enablerepo=remi-php73 php php-cli php-common php-devel php-fpm php-mbstring php-pgsql php-pdo php-gd php-xml
# vi /etc/php.ini
■PostgreSQLをインストール
#error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL
#display_errors = Off
display_errors = On
# service httpd restart
# vi /var/www/html/phpinfo.php
<?php phpinfo() ?>
# yum -y install postgresql-server
# service postgresql initdb
データベースを初期化中: [ OK ]
# vi /var/lib/pgsql/data/postgresql.conf
■PostgreSQL用のユーザとデータベースを作成
PostgreSQLの仕様上、同名のLinuxユーザも作成しておく必要がある
# 59行目:コメント解除して変更(他ホストからのアクセスも受け付ける場合)
listen_addresses = '*'
# 397行目:コメント解除して変更(ログの形式を [日時 ユーザー DB 〜]とする)
log_line_prefix = '%t %u %d '
# service postgresql start
# chkconfig postgresql on
# useradd webmaster
# passwd webmaster
1234
引き続き、PostgreSQLのユーザとデータベースを作成
# su - postgres
-bash-4.2$ createuser webmaster
-bash-4.2$ createdb test
-bash-4.2$ exit
作成したユーザで接続テスト
# su - webmaster
$ psql -l
$ psql test
test=> CREATE TABLE test(no INT, name TEXT);
test=> INSERT INTO test VALUES(1, '山田太郎');
test=> INSERT INTO test VALUES(2, '山田花子');
test=> SELECT * FROM test;
test=> \q
■PostgreSQLにPHPから接続
# vi /var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only … 丸ごとコメントアウト
#local all all ident
# IPv4 local connections:
#host all all 127.0.0.1/32 ident
# IPv6 local connections:
#host all all ::1/128 ident
local all all trust … 代わりに以下の設定を追加
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 password
# service postgresql restart
# vi /var/www/html/pgsql.php
<?php
try {
$pdo = new PDO(
'pgsql:dbname=test;host=localhost',
'webmaster',
'1234'
);
$stmt = $pdo->query('SELECT NOW() AS now;');
$data = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<p>" . $data['now'] . "</p>\n";
} catch (PDOException $e) {
exit($e->getMessage());
}
$pdo = null;
トラブル
■起動しようとすると「vagrant No usable default provider could be found for your system.」と表示される
VirtualBoxやVMWareなどの仮想環境ソフトウェアを先にインストールする
■Oracle VM VirtualBox を起動できない
Oracle VM VirtualBox
をダブルクリックで起動しても以下のダイアログが表示されて起動できない
[Window Title]
プログラム互換性アシスタント
[Main Instruction]
このアプリはこのデバイスで実行できません
[詳細情報] [閉じる(C)]
「詳細情報」をクリックすると以下に遷移する
Download_Old_Builds_5_2 - Oracle VM VirtualBox
https://www.virtualbox.org/wiki/Download_Old_Builds_5_2
Vagrant、VirtualBox をアンインストールし、それぞれ最新版をインストールする
■起動しようとすると「The virtual machine 'XXXXX' has terminated unexpectedly」のようなエラーになる
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "be217c1e-0540-4fcb-8fb9-32b12b5cd567", "--type", "headless"]
Stderr: VBoxManage.exe: error: The virtual machine 'centos6_default_1469071051278_3326' has terminated unexpectedly during startup with exit code -1073741819 (0xc0000005)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine
VirtualBoxが開けなくなったら
http://yuttariblog.blogspot.jp/2014/07/virtualbox.html
Windowsアップデートの影響で動かなくなることがあるらしいが、最新版にすれば動作するらしい
Windowsコントロールパネルの「プログラムのアンインストール」から
「Oracle VM VirtualBox 5.0.20」
「vagrant」
をアンインストールし、その時点での最新版の
「VirtualBox-5.1.22-115126-Win.exe」
「vagrant_1.9.5.msi」
をインストールすれば起動するようになった
以前作成した設定や構築したサーバは、そのまま残っていた
2017年12月4日、大きなWindowsアップデートを適用すると起動しなくなった。その時点での
「VirtualBox-5.2.2-119230-Win.exe」
「vagrant_2.0.1_x86_64.msi」
をインストールしなおせば起動するようになった
環境によっては上記の組み合わせでも起動しなかったが
「VirtualBox-5.1.30-118389-Win.exe」
「vagrant_2.0.1_x86_64.msi」
をインストールしなおせば起動するようになった
「とりあえずは最新(5.2)のVirtualBoxと、それにあったVagrantで試す。駄目なら5.1内で最新のVirtualBoxと、それにあったVagrantで試す」
なら、割となんとかなる。ということかもしれない
■起動しようとすると「Vagrant failed to initialize at a very early stage」のようなエラーになる
>vagrant up
Vagrant failed to initialize at a very early stage:
The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:
vagrant plugin repair
If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:
vagrant plugin expunge --reinstall
Or you may want to try updating the installed plugins to their latest
versions:
vagrant plugin update
Error message given during initialization: No such file or directory @ rb_sysopen - C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/micromachine-3.0.0/micromachine.gemspec
Windowsアップデートの直後に起動しなくなった
VirtualBoxとVagrantをインストールしなおしても、相変わらず同じエラーになる
エラーメッセージ内に
C:/HashiCorp/Vagrant/embedded/gems/2.2.14/gems/vagrant-2.2.14/lib/vagrant/bundler.rb:725:in `write': No such file or directory @ rb_sysopen - C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/micromachine-3.0.0/micromachine.gemspec (Errno::ENOENT)
C:/HashiCorp/Vagrant/embedded/gems/2.2.14/gems/vagrant-2.2.14/lib/vagrant/bundler.rb:725:in `write': No such file or directory @ rb_sysopen - C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/vagrant-vbguest-0.24.0/vagrant-vbguest.gemspec (Errno::ENOENT)
C:/HashiCorp/Vagrant/embedded/gems/2.2.14/gems/vagrant-2.2.14/lib/vagrant/bundler.rb:725:in `write': No such file or directory @ rb_sysopen - C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/vagrant-vbguest-0.28.0/vagrant-vbguest.gemspec (Errno::ENOENT)
とあるので、
C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/micromachine-3.0.0/micromachine.gemspec
C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/vagrant-vbguest-0.24.0/vagrant-vbguest.gemspec
C:/Users/refirio/.vagrant.d/gems/2.6.6/gems/vagrant-vbguest-0.28.0/vagrant-vbguest.gemspec
にカラのファイルを作成した
(「micromachine-3.0.0」の対応をすると、新たに他のものが表示されたので順次対応した)
これで
>vagrant plugin update
Updating installed plugins...
Successfully uninstalled micromachine-3.0.0
Successfully uninstalled vagrant-vbguest-0.24.0
Successfully uninstalled vagrant-vbguest-0.28.0
All plugins are up to date.
を実行すると、プラグインがアンインストールされた?
(場合によっては、コマンドプロンプトを管理者権限で実行する必要があるかもしれない)
この後さらに
>vagrant plugin repair
>vagrant plugin expunge --reinstall
>vagrant plugin update
を実行すると、今度はエラーなく完了できた
その後
>vagrant up
を実行すると
「Stderr: VBoxManage.exe: error: Failed to open/create the internal network」
のようなエラーになったが、後述の「ネットワークと共有センター」からの作業を行った
その後
>vagrant up
を実行すると
「Vagrant was unable to mount VirtualBox shared folders.」
のようなエラーになったが、後述のマウントエラー対策の作業を行った
これで起動できるようになった
■起動しようとすると「Stderr: VBoxManage.exe: error: Failed to open/create the internal network」のようなエラーになる
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1608985428243_21755
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8080 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: ["startvm", "e1e1054e-897d-40e3-bd76-97cb2e7868a9", "--type", "headless"]
Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_INTNET_FLT_IF_NOT_FOUND).
VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
以下が参考になる
VirtualBox で Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter' が出た時の対処 - Qiita
https://qiita.com/ExA_DEV/items/ae80a7d767144c2e1992
上記のとおり、
1. "ネットワークと共有センター" を開く
2. "アダプターの設定の変更" を開く
3. "VirtualBox Host-Only Network #N" のプロパティを開く
4. "VirtualBox NDIS6 Bridged Networking Driver" にチェックを入れる
5. "インターネットプロトコル バージョン6(TCP/IPv6)" のチェックを外す
6. [OK] を押し、プロパティウィンドウを閉じる
7. "VirtualBox Host-Only Network #N" の右クリックメニューで「無効」にする
8. 再度、「有効」にし直す
の操作を行うと起動できるようになった
以前に作成した環境も、問題なく起動できるようになった
■起動しようとすると「default: SSH auth method: private key」で止まり、その後「Timed out while waiting for the machine to boot」となる
「VirtualBox-5.2.0-118431-Win.exe」
「vagrant_2.0.1_x86_64.msi」
で発生した
別環境で起動を確認できた
「VirtualBox-5.1.22-115126-Win.exe」
「vagrant_1.9.5.msi」
にバージョンダウンしてみると起動できた
VagrantとVirtualBox(もしくはWindowsとVirtualBox?)のバージョンで相性があるようで、マイナーバージョンにすると起動することがある
Windows - Vagrantup時に、SSH auth method: private keyでタイムアウトになる(99629)|teratail
https://teratail.com/questions/99629
以下は直接の解決では無かったが、参考までに
"vagrant up"したら"SSH auth method: private key"で止まった話 - Qiita
https://qiita.com/sasurai_usagi3/items/2ba572013b16f2703f6a
Vagrant UP時にSSH auth method: private key・・・で詰まった話 - Qiita
https://qiita.com/is_ryo/items/d67d29fc56cf3cd07199
問題なく使えていたが、大きなWindowsアップデートを行った後に
「The virtual machine 'XXXXX' has terminated unexpectedly」
のようなエラーになって起動しなくなった。上に記載したように、VirtualBoxとVagrantを最新版にすると起動するようになった
作成済みのBoxを破棄して、再度一から構築すると起動したこともある
■起動しようとすると「Vagrant was unable to mount VirtualBox shared folders.」のようなエラーになる
仮想マシンを起動しようとすると以下のエラーが表示された
==> default: Mounting shared folders...
default: /vagrant => C:/vagrant/centos7_test
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
Vagrantでマウントエラーが発生したときの解消方法 - Qiita
https://qiita.com/chubura/items/4166585cf3f44e33271d
Vagrantで共有フォルダのマウントに失敗するときの対処方法 - Qiita
https://qiita.com/ozawan/items/9751dcfd9bd4c470cd82
「ホスト⇔ゲスト間のフォルダ共有機能はGuest Additionsが提供していますが
ホスト(VirtualBox)とゲスト(Guest Additions)でバージョン不一致があるとマウントエラーが起きるようです。」
とのこと
ミドルウェアをインストールした際にカーネルが一部更新された可能性があり、
つまりは「Guest Additions」というソフトウェアを更新する必要がある。場合によってはカーネルも更新する必要がある
vagrant up時に自動的に新しいバージョンのGuest Additionsに更新してくれる「vagrant-vbguest」というプラグインがある
Vagrant の Box の Guest Additions を最新化する方法 |
https://weblabo.oscasierra.net/vagrant-vbguest-plugin-1/
>vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.18.0.gem (100%)
Installed the plugin 'vagrant-vbguest (0.18.0)'!
その後、仮想マシンを停止&起動すればフォルダ同期もできた
>vagrant halt
==> default: Attempting graceful shutdown of VM...
>vagrant up
==> default: Mounting shared folders...
default: /vagrant => C:/vagrant/refirio_net
default: /var/www/html/test => C:/localhost/home/refirio_net/public_html/test
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
これでも駄目な場合、いったん立ち上げたサーバにSSHで接続して
>vagrant ssh
サーバ内で以下を実行し、
$ sudo yum install -y kernel kernel-devel gcc
以下のように、サーバから抜けてVagrantを再起動すると大丈夫だった
(「vagrant-vbguest」プラグインを導入済みの環境なら、この操作のみで良さそう)
$ exit
>vagrant reload
Vagrant was unable to mount VirtualBox shared folders.でvagrantでフォルダがマウント出来ない - Qiita
https://qiita.com/pnpk/items/2c4e976cda20610e7096
【Vagrant】 VirtualBoxのGuestAdditionsを自動で更新する - takafumi blog
http://takafumi-s.hatenablog.com/entry/2016/01/03/172840
複数のサーバを一度に立ち上げる場合、
Vagrantfile に1台目だけの設定を記載した上で起動して1台目に上記の対応を行い、
Vagrantfile 1台目と2台目の設定を記載した上で起動して1台目と2台目に上記の対応を行い、
Vagrantfile 1台目と2台目と3台目の設定を記載した上で起動して1台目と2台目と3台目に上記の対応を行い
…とすれば大丈夫だった
Box自体のバージョンアップが必要なのかも(未検証)
■起動しようとすると「No Virtualbox Guest Additions installation found.」「umount: /mnt: not mounted」のようなエラーになる
仮想マシンを起動しようとすると以下のエラーが表示された
「Vagrant was unable to mount VirtualBox shared folders.」と同じ方法で対処できる可能性がある
==> default: Machine booted and ready!
[default] No Virtualbox Guest Additions installation found.
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
Package centos-release-7-9.2009.0.el7.centos.x86_64 already installed and latest version
Nothing to do
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp-srv2.kddilabs.jp
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
No package kernel-devel-3.10.0-1127.el7.x86_64 available.
Error: Nothing to do
Unmounting Virtualbox Guest Additions ISO from: /mnt
umount: /mnt: not mounted
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
umount /mnt
Stdout from the command:
Stderr from the command:
umount: /mnt: not mounted
■起動しようとすると「[default] GuestAdditions versions on your host (5.1.22) and guest (4.3.6) do not match.」のようなエラーになる
/vagrantのマウントに失敗 - その2 | technote
http://tech.withsin.net/2017/04/17/vagrant-mount-failed/
■フォルダ同期の設定を行ったらエラーになる
仮想マシンを起動しようとすると以下のエラーが表示された
==> default: Mounting shared folders...
default: /vagrant => C:/vagrant/refirio_net
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
サーバ自体は起動しているのでSSHで接続し、vboxをリビルドする
vagrantでmountエラーの解決方法
http://qiita.com/osamu1203/items/10e19c74c912d303ca0b
$ sudo /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules [ OK ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module [ OK ]
Building the shared folder support module [ OK ]
Building the OpenGL support module [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions [ OK ]
その後、仮想マシンを停止&起動すればフォルダ同期もできた
>vagrant halt
==> default: Attempting graceful shutdown of VM...
>vagrant up
==> default: Mounting shared folders...
default: /vagrant => C:/vagrant/refirio_net
default: /var/www/html/test => C:/localhost/home/refirio_net/public_html/test
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
■起動しようとすると「flag to force provisioning. Provisioners marked to run always will still run.」と表示されるがブラウザでアクセスできない
>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Vagrant has detected a configuration issue which exposes a
==> default: vulnerability with the installed version of VirtualBox. The
==> default: current guest is configured to use an E1000 NIC type for a
==> default: network adapter which is vulnerable in this version of VirtualBox.
==> default: Ensure the guest is trusted to use this configuration or update
==> default: the NIC type using one of the methods below:
==> default:
==> default: https://www.vagrantup.com/docs/virtualbox/configuration.html#default-nic-type
==> default: https://www.vagrantup.com/docs/virtualbox/networking.html#virtualbox-nic-type
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8080 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 5.2.2 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/Users/refirio/Vagrant/refirio_net/ => /vagrant
==> default: Mounting shared folders...
default: /var/www => C:/Users/refirio/Vagrant/refirio_net/code
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
SSHで接続し、Apacheが起動できているかを確認する。後述の「Apacheを自動起動できない」も参照
また、「フォルダ同期の設定を行ったらエラーになる」と同様、以下で起動できたことがあった
>vagrant plugin install vagrant-vbguest
>vagrant halt
>vagrant up
■起動しようとすると「Path: C:/Users/Refirio/.vagrant.d/data/machine-index/index」と表示される
停電から復旧後、仮想マシンを起動しようとすると以下のエラーが表示された
C:\vagrant\homestead\Homestead>vagrant up
The machine index which stores all required information about
running Vagrant environments has become corrupt. This is usually
caused by external tampering of the Vagrant data folder.
Vagrant cannot manage any Vagrant environments if the index is
corrupt. Please attempt to manually correct it. If you are unable
to manually correct it, then remove the data file at the path below.
This will leave all existing Vagrant environments "orphaned" and
they'll have to be destroyed manually.
Path: C:/Users/Refirio/.vagrant.d/data/machine-index/index
強制終了によりロックファイルが残っている
案内されているように、以下のフォルダ内にあるファイルを削除すれば起動できるようになった
C:\Users\Refirio\.vagrant.d\data\machine-index
vagrant up実行で,SYSTEM_SERVICE_EXCEPTIONでブルースクリーンになる時
http://nanoappli.com/blog/archives/8114
さらに連続して何度か停電にあった後、起動時に以下のようなエラーが大量に表示されるようになった
PC自体を再起動しても表示される
VagrantというよりHomesteadに異常が発生していると思われるが要調査
==> homestead-7: Mounting shared folders...
homestead-7: /vagrant => C:/localhost/home/asims2/public_html/Homestead
homestead-7: /home/vagrant/code => C:/localhost/home/refirio_net/public_html/code
C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/2.4.0/json/common.rb:156:in `parse': 751: unexpected token at '' (JSON::ParserError)
from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/2.4.0/json/common.rb:156:in `parse'
from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.0.1/lib/vagrant/action/builtin/mixin_synced_folders.rb:236:in `cached_synced_folders'
■起動しようとすると「default: Warning: Authentication failure. Retrying...」と表示される
vagrant upコマンド実行時にAuthentication failure.エラーが発生する - Qiita
https://qiita.com/shyse/items/9ec50b868b90f847c75f
上記ページより、以下の原因により鍵認証ができなくなることがあるらしい
鍵を配置し直すことで対応はできるらしい(未検証)
Vagrant 1.7 以降では、vagrant up 時に旧来の insecure_key を検知した場合、
その仮想マシン用の別の鍵ペアを生成して insecure_key を置き換える。
生成した秘密鍵は .vagrant/machines/default/virtualbox/private_key に置かれ、
それ以降そのマシンへのアクセスは新しい鍵が使われるようになり、insecure_key での SSH はできなくなる。
■起動しようとすると「The guest machine entered an invalid state while waiting for it to boot.」と表示される
以下を実行すると起動できた
>vagrant plugin update
>vagrant plugin install vagrant-vbguest
>vagrant halt
>vagrant up
【Vagrant】非常に稀なVagrantの問題が発生した際の解決方法(のうちの一つ) - Qiita
https://qiita.com/sola-msr/items/604614353e678f7d2d08
■起動しようとすると「There was an error when attempting to rsync a synced folder.」と表示される
Cygwinとの兼ね合いで正しく起動できないことがあるみたい
Vagrantfileの
config.vm.synced_folder "./code", "/var/www"
この部分を以下のように変更すれば起動できた
もしくはこの編集なしに、Windowsを再起動することで対応できるかもしれないが未確認
config.vm.synced_folder "./", "/vagrant", type: "virtualbox"
config.vm.synced_folder "./code", "/var/www", create: true, type: "virtualbox"
config.winnfsd.uid=1
config.winnfsd.gid=1
Windows10+Vagrant+VirtualBoxでrsyncが失敗する - forget for get
https://lightwill.hatenablog.com/entry/2018/03/01/010040
■起動しようとすると「Which interface should the network bridge to?」で止まる
過去何度か普通に起動していた環境だが、突然以下で止まるようになった
C:\vagrant\development>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
1) Realtek PCIe GBE Family Controller
2) Qualcomm QCA9565 802.11b/g/n Wireless Adapter
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
==> default:
default: Which interface should the network bridge to?
Vagrant public_network を使用する - Why it doesn't work?
https://www.whyit.work/entry/2018/06/30/225903
Vagrantで起動時のネットワークインターフェースを指定するには - THINKING MEGANE
https://blog.monochromegane.com/blog/2013/05/22/vagrant-specify-network-interface/
数字でネットワークを指定するような記事があったので、とりあえず適当に「1」と入力してエンター
default: Which interface should the network bridge to? 1
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
default: Adapter 3: bridged
==> default: Forwarding ports...
default: 80 (guest) => 8080 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 6.1.24 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/vagrant/development/ => /vagrant
==> default: Mounting shared folders...
default: /var/www => C:/vagrant/development/code
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
==> default: Running provisioner: shell...
default: Running: inline script
C:\vagrant\development>
無事に起動した
突然この対応が必要になった理由は不明なので、また確認しておきたい
参考までに、別の環境で普通に起動できた時のメッセージは以下のとおり
C:\vagrant\development>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8080 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 6.1.24 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/vagrant/test/ => /vagrant
==> default: Mounting shared folders...
default: /var/www => C:/vagrant/test/code
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
■Apacheを自動起動できない
Apacheの自動起動を設定しても、Vagrantを起動し直すと停止している
SSHで接続してから以下を実行すると大丈夫
$ sudo service httpd restart
原因と思われるものが以下に記載されている
Vagrantのup時、httpdが自動起動しないとき - Qiita
https://qiita.com/ooba1192/items/96b7ab25d2bda1676aaa
Vagrant上のCentOSでhttpd.confをVagrant共有ディレクトリのシンボリックリンクにしているとOSブート時にhttpdが自動起動しない #vagrant #apache - nori3tsu's blog
http://nori3tsu.hatenablog.com/entry/2014/03/22/123313
「/etc/init.dの起動スクリプトが実行されるタイミングで/vagrantディレクトリがマウントされていないことが原因」とのこと
Vagrantfile 内の最後にある「end」の前の行に、以下を追加すれば改善できた
これにより、Vagrant起動時にApacheを常に再起動させている
config.vm.provision :shell, run: "always", :inline => <<-EOT
sudo service httpd restart
EOT
■「yum -y update」を実行するとエラーになる
config.vm.box = "centos72"
の設定でVagrantを立ち上げ、「yum -y update」を実行すると以下のエラーになった
# yum -y update
Downloading packages:
warning: /var/cache/yum/x86_64/7/puppetlabs-pc1/packages/puppet-agent-1.10.14-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID ef8d349f: NOKEY
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1 から鍵を取得中です。
The GPG keys listed for the "Puppet Labs PC1 Repository el 7 - x86_64" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.
Failing package is: puppet-agent-1.10.14-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1
リポジトリを追加すればいいらしい
yum update できなかったCentOS6 - Qiita
https://qiita.com/teru855/items/cfe4b71bf1af14b9b05a
以下でリポジトリを追加してから再度「yum -y update」を実行すると完了できた
もしくは、以下を実行しても対応できた
が、先のコマンドのほうが一行で済むのでいいかも
# curl -L https://yum.puppetlabs.com/RPM-GPG-KEY-puppet -o /tmp/RPM-GPG-KEY-puppet
# gpg --with-fingerprint "/tmp/RPM-GPG-KEY-puppet"
# cp /tmp/RPM-GPG-KEY-puppet /etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1
centos7.2でyum updateした際のエラー - 猫のプロトコル
https://protocol.nekono.tokyo/2018/09/13/centos7-2%E3%81%A7yum-update%E3%81%97%E3%81%9F%E9%9A%9B%E3%...
■外部CSSを修正しても反映されない
インラインで調整した場合には反映されないが、
丸ごと書き換えるとファイルサイズの差分だけ反映される?ような現象が発生する
sendfileでキャッシュされている可能性がある
/etc/httpd/conf/httpd.conf で「EnableSendfile off」と設定されていることを確認する。
バーチャルホストやユーザディレクトリを使用している場合、
対象ディレクトリに対して以下の設定を追加する
<Directory "/path/to/target">
EnableMMAP Off
EnableSendfile Off
</Directory>
その後Webサーバを再起動する
# service httpd restart
Nginxの場合も、以下の設定で同様に調整できる
sendfile off;
VagrantでCSSの更新が反映されない場合の対処法
http://qiita.com/shoyan/items/12389d5beaa8695b1a53
Vagrantコマンドメモ
vagrant --version ... バージョン確認
vagrant -v ... 同上
vagrant init xxx ... 仮想マシン初期化
vagrant up ... 仮想マシン起動
vagrant halt ... 仮想マシン停止
vagrant reload ... 仮想マシン再起動
vagrant destroy ... 仮想マシン破棄
vagrant share ... 仮想マシン状態確認
vagrant box add xxx https://xxx.yyy/zzz ... URLからボックスを追加
vagrant box add xxx C:\xxx\yyy\xxx.box ... ローカルのボックスを追加
vagrant box list ... ボックス一覧を表示
vagrant box remove xxx ... ボックスを削除