カテゴリー: Vagrant

Vagrantで別セグメントからアクセスする必要があるときの対処

Vagrantで別セグメントからアクセスする必要があるときの対処

ネットワークを変更してVLANとか切ったら別セグメントから
Vagrantで設置したwebサーバにアクセスできなかったのでメモ。

※結局VirtualBoxのゲストOSのネットワーク設定話です。

ホスト:192.168.1.10
ゲスト:192.168.1.110
アクセスするPC:192.168.6.10

元々以下のようのな設定になっていた

config.vm.network "public_network", ip: "192.168.1.110", bridge: "Intel(R) Ethernet Connection (2) I219-V"

これだとアクセスするPCからゲストにアクセスできなかった。
以下のようにnetmaskを広げて対応した。

config.vm.network "public_network", ip: "192.168.1.110", netmask: "255.255.0.0", bridge: "Intel(R) Ethernet Connection (2) I219-V"

Vagrant上のCentOS6にVulsインストール

Vulsインストール

Vagrant上のCentOS6にインストールを行ったメモ

公式のインストール方法:Vuls: VULnerability Scanner
SSHの設定をする

ローカルホストにSSH接続できるようにする。
SSHキーペアを作成し、公開鍵をauthorized_keysに追加する。

$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

Vulsに必要な以下のソフトウェアをインストールする。
– SQLite3
– git v2
– gcc
– go v1.7.1 or later

※gitはCentOS6のデフォルトだと1.7とかなので、そのまま入れてはいけない

How to Install Git 2.8.1 on CentOS/RHEL 7/6/5 & Fedora 23/22

$ sudo yum -y install sqlite git gcc
$ wget https://storage.googleapis.com/golang/go1.7.1.linux-amd64.tar.gz   <-時間がかかる
$ sudo tar -C /usr/local -xzf go1.7.1.linux-amd64.tar.gz
$ mkdir $HOME/go

/etc/profile.d/goenv.sh を作成し、下記を追加する。

$ sudo vi /etc/profile.d/goenv.sh
$ cat /etc/profile.d/goenv.sh
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

カレントシェルに上記環境変数をセットする。

$ source /etc/profile.d/goenv.sh

go-cve-dictionaryのインストール

$ sudo mkdir /var/log/vuls
$ sudo chown mogu /var/log/vuls
$ sudo chmod 700 /var/log/vuls
$ mkdir -p $GOPATH/src/github.com/kotakanbe
$ cd $GOPATH/src/github.com/kotakanbe
$ git clone https://github.com/kotakanbe/go-cve-dictionary.git
$ cd go-cve-dictionary
$ make install

バイナリは、`$GOPATH/bin`いかに生成される
NVDから脆弱性データベースを取得する。
これは実行ユーザのホームディレクトリに「vuls」というディレクトリを掘ってその中に取得する方がやりやすい。

$ pwd
/home/mogu
$ mkdir vuls
$ cd vuls
$ for i in {2002..2016}; do go-cve-dictionary fetchnvd -years $i; done
$ pwd
/home/mogu/vuls
$ ll
total 680368
-rw-r--r-- 1 mogu mogu 592179200 Oct 21 10:11 cve.sqlite3
-rw-r--r-- 1 mogu mogu     32768 Oct 21 10:11 cve.sqlite3-shm
-rw-r--r-- 1 mogu mogu  22845432 Oct 21 10:11 cve.sqlite3-wal

vulsインストール

$ mkdir -p $GOPATH/src/github.com/future-architect
$ cd $GOPATH/src/github.com/future-architect
$ git clone https://github.com/future-architect/vuls.git
$ cd vuls
$ make install

Config

先ほど作った実行ユーザの「vuls」内に設定ファイルを記載する

$ pwd
/home/mogu/vuls
$ vim config.toml
$ cat config.toml 
[servers]

[servers.127-0-0-1]
host         = "127.0.0.1"
port        = "22"
user        = "mogu"
keyPath     = "/home/mogu/.ssh/id_rsa"

$ vuls configtest
[Oct 21 10:24:09]  INFO [localhost] Validating Config...
[Oct 21 10:24:09]  INFO [localhost] Detecting Server/Contianer OS... 
[Oct 21 10:24:09]  INFO [localhost] Detecting OS of servers... 
[Oct 21 10:24:10]  INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7
[Oct 21 10:24:10]  INFO [localhost] Detecting OS of containers... 
[Oct 21 10:24:10]  INFO [localhost] Checking sudo configuration... 
[Oct 21 10:24:10]  INFO [127-0-0-1] sudo ... OK
[Oct 21 10:24:10]  INFO [localhost] SSH-able servers are below...
127-0-0-1 

セットアップ

$ vuls prepare
INFO[0000] Start Preparing (config: /home/mogu/vuls/config.toml) 
[Oct 21 10:24:46]  INFO [localhost] Detecting OS... 
[Oct 21 10:24:46]  INFO [localhost] Detecting OS of servers... 
[Oct 21 10:24:46]  INFO [localhost] (1/1) Detected: 127-0-0-1: centos 6.7
[Oct 21 10:24:46]  INFO [localhost] Detecting OS of containers... 
[Oct 21 10:24:46]  INFO [localhost] Checking sudo configuration... 
[Oct 21 10:24:47]  INFO [127-0-0-1] sudo ... OK
[Oct 21 10:24:47]  INFO [localhost] No need to install dependencies

検査開始

    $ vuls scan -cve-dictionary-dbpath=$PWD/cve.sqlite3 -report-json

TUIで結果確認

$ vuls tui

Ctrl + cで閉じる

脆弱性があったのにtuiでは空で表示された場合はconfig.tomlと同じディレクトリに脆弱性データベースを落としていたか再度確認する。

Vagrant起動時に共有フォルダのマウントに失敗したら

毎回調べるのが面倒なのでメモ。

vagrantの起動時に以下のように出た場合の対処方法。
HostOS:Windows10
GuestOS:CentOS7
VirtualBox:5.1.4
Vagrant:1.8.5

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 attemped was:

set -e
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 command was:

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

guestにsshでログインして、

# yum install kernel-devel kernel-headers gcc make
# yum install dkms
# export MAKE='/usr/bin/gmake -i'
# /etc/init.d/vboxadd setup
Removing existing VirtualBox DKMS kernel modules           [  OK  ]
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                         [  OK  ]
Doing non-kernel setup of the Guest Additions              [  OK  ]
Starting the VirtualBox Guest Additions                    [  OK  ]

この状態になったら、hostで

vagrant halt
vagrant up

エラーが消えているはず。

クリーンインストールしたWindows10にVagrantをいれてpackageをaddしたらエラーが出た。

クリーンインストールしたWindows10にVagrantをいれてpackageをaddしたらエラーが出た。

windows10をクリーンインストールして、VirtualBox、Vagrantを
インストールした状態で既存のpackageを以下のコマンドで追加しようとした。

vagrant box add centos6 package.box

すると、以下のエラーが出た。

An error occurred while downloading the remote file.
The error message, if any, is reproduced below.
Please fix this error and try again.

なんのエラーか書いてなくてよくわからなかった。

ぐぐって見ると同じような症状の人を発見。

VagrantでBox追加時にエラーが出た時の話

↑の方のやり方で無事にpackageの追加ができました。

ただ、64bit環境なんだけどなぜか64bitの「Microsoft Visual C++ 2010 再頒布可能パッケージ」では動かず、32bitも入れたら動いた。。

Vagrantのエラーログの出し方とかよくわかってなかったので以下のサイトで確認した。

Vagrant エラーのデバッグ

あと、起動時にmountのとこでエラーが出てたので、以下のサイトを参考に対応。

vagrant up 時に shared folder の mount でエラーが発生する

Windows10にしたらVagrantの起動時にネットワークインターフェースが見当たらなくなった。

家のPCを1台Windows10にアップグレードしてみた。

以下アップグレード後にしたこと。

ESET SmartSecurityがインストールされているバージョンだと対応していないということで対応バージョンを入れなおした。
Microsoft Windows 10 への対応について
http://eset-support.canon-its.jp/faq/show/3276

vagrantの起動に失敗したので修正。

C:\Users\****>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to?

ネットワークインターフェースが見当たらない・・・

Upgrading to Windows 10, Part 2
http://blog.echothis.com/2015/09/02/upgrading-to-windows-10-part-2/

このページを参考に

VirtualBoxの5系を入れてみる。
https://www.virtualbox.org/

Vagrant 1.7.4にもしてみる。
https://www.vagrantup.com/downloads.html

その後再度vagrant up

C:\Users\****>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> 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 timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> 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.6
    default: VirtualBox Version: 5.0
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/******
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

なんとか動いた。

Vagrant:ゲストOSのディスク容量を増やしたときの作業ログ

Vagrantで立てたゲストの容量が8GBしかなかったので容量を20GBに増やしたときの作業ログ。

■環境
ホストOS:CentOS6.5
Vagrant:1.7.2
VirtualBox:4.3.28
ゲストOS:CentOS7

■ホスト側の作業場所

$ pwd
/home/user/VirtualBox VMs/cent7_default_1434608680280_85072

$ ll
合計 2961448
drwx------  3 user user       4096  6月 18 15:42 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:24 2015 cent7_default_1434608680280_85072.vbox-prev

■元々のvmdkファイルの確認

$ pwd
/home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072

$ VBoxManage showhdinfo box-disk1.vmdk
UUID:           cd97ec61-426b-4d6b-9ae3-d79d07300179
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072/box-disk1.vmdk
Storage format: VMDK
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   2892 MBytes
In use by VMs:  cent7_default_1434608680280_85072 (UUID: 39b0d85e-cff7-40c3-b497-bc6b110fc49a)


■vmdkをvdiとしてクローン


$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 3630f1b4-3090-4009-88eb-4d634da2e42f

$ ll
合計 5948496
drwx------  3 user user       4096  6月 18 17:37 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3060793344  6月 18 17:37 2015 box-disk1.vdi
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 17:37 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox-prev

■vdiのサイズ変更

$ VBoxManage modifyhd box-disk1.vdi --resize 20480
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

20(GB) * 1024(MB) = 20480

■できたvdiの確認

$ VBoxManage showhdinfo box-disk1.vdi
UUID:           3630f1b4-3090-4009-88eb-4d634da2e42f
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/cent7_default_1434608680280_85072/box-disk1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   2919 MBytes

■ここからGUIのVirtualBoxの管理画面でHDDをVDIに差し替える

ここのCUIでのやり方がわからない・・・。

※あとで判明。。以下を参考に。

Vagrant on Mac上のCeontOS7のディスク容量を後から増やす

■HDDをVDIに差し替えたらゲストを起動
ここからゲストでの操作

fdiskで/dev/sdaの容量が増えている事を確認する。

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-root: 7201 MB, 7201619968 bytes, 14065664 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

増加したところに新しくパーティション、論理ボリュームを作成し容量を増やす。

■パーティションを追加

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (3,4, default 3): 3
最初 sector (16777216-41943039, 初期値 16777216): 
初期値 16777216 を使います
Last sector, +sectors or +size{K,M,G} (16777216-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 3 of type Linux and of size 12 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   83  Linux

「/dev/sda3」が追加された

■/dev/sda3のシステムをLinux LVMにする

コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   8e  Linux LVM

■反映して終了する

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。

■ゲストの再起動

# shutdown -r now

■Physical Volumeの状態を確認

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

■pvcreateコマンドでPhysical Volumeを作成する。

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

■作成内容を確認。

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

  "/dev/sda3" is a new physical volume of "12.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               12.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dJEJG3-j8DO-JWwn-cHyc-xeHR-cs5J-3jhgfT

■Volume GroupにPhysical Volumeを追加する

# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

■Volume Groupの確認

# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.50 GiB
  PE Size               4.00 MiB
  Total PE              4993
  Alloc PE / Size       1922 / 7.51 GiB
  Free  PE / Size       3071 / 12.00 GiB
  VG UUID               mtWHXb-DYzV-cxFV-psLD-XvDR-sKjQ-lUZygi

増えてる。

■Logical Volumeの容量を増やす

増やしたいマウントポイントのLogical Volumeをdfコマンドで確認。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   6.7G  2.5G  4.3G   37% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

今回の対象は「/dev/mapper/centos-root」

■lvdisplayコマンドでLogical Volumeの詳細を確認。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                6.71 GiB
  Current LE             1717
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

■Logical Volumeのサイズを拡張。

# lvextend -L +12284 /dev/centos/root
  Size of logical volume centos/root changed from 6.71 GiB (1717 extents) to 18.70 GiB (4788 extents).
  Logical volume root successfully resized

ここの「12284」はvgdisplayで表示されたFree PE / SizeとPE Sizeをかけた値になる
3071 * 4.00 = 12284

■Logical Volumeの確認。

# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                18.70 GiB
  Current LE             4788
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

【ここからファイルシステムのリサイズ】

■CentOS7でファイルシステムがxfsだったのでresize2fsの代わりにxfs_growfsを使用

# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=439552 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1758208, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1758208 to 4902912

■出来た!

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G  2.5G   17G   14% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

■参考ページ

VirtualBoxのゲストOSのディスク容量を増やす
http://te2u.hatenablog.jp/entry/2015/04/20/012914

Vagrant VMのディスクサイズを後から拡張する方法
http://blog.dakatsuka.jp/2014/04/24/vagrant-hdd-resize.html

CentOS 7(XFS)でLVMディスク拡張でハマったこと
http://qiita.com/fetaro/items/d7dc74262633ba474bc8

Vagrantで立てたCnetOS7にLAMP環境を構築する

Vagrantで立てたCnetOS7にLAMP環境を構築する

ざっくりとローカル環境を構築する手順。

【とりあえず】

# yum update

【時間】

# timedatectl status
      Local time: Wed 2015-05-27 00:34:51 EDT
  Universal time: Wed 2015-05-27 04:34:51 UTC
        Timezone: America/New_York (EDT, -0400)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2015-03-08 01:59:59 EST
                  Sun 2015-03-08 03:00:00 EDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2015-11-01 01:59:59 EDT
                  Sun 2015-11-01 01:00:00 EST

# timedatectl set-timezone Asia/Tokyo

# timedatectl status
      Local time: Wed 2015-05-27 13:35:36 JST
  Universal time: Wed 2015-05-27 04:35:36 UTC
        Timezone: Asia/Tokyo (JST, +0900)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

# date
Wed May 27 13:35:46 JST 2015

【日本語化】

# yum -y install ibus-kkc vlgothic-* 

# localectl list-locales | grep -i ja
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: jp106
      X11 Layout: jp

# localectl set-locale LANG=ja_JP.utf8

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp106
      X11 Layout: jp

# source /etc/locale.conf

# echo $LANG
ja_JP.utf8

# date
2015年  5月 27日 水曜日 13:42:59 JST

【NTP】

# yum install chrony

# systemctl start chronyd.service

# systemctl enable chronyd.service

# systemctl status chronyd.service
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
   Active: active (running) since 水 2015-05-27 13:53:36 JST; 7min ago
 Main PID: 4658 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─4658 /usr/sbin/chronyd -u chrony

 5月 27 13:53:36 localhost.localdomain chronyd[4658]: chronyd version 1.29.1 starting
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: Linux kernel major=3 minor=10 patch=0
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000 slew_delta_tick=833 max_tick_bias=1000 shift_pll=2
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: Generated key 1
 5月 27 13:53:36 localhost.localdomain systemd[1]: Started NTP client/server.
 5月 27 13:53:41 localhost.localdomain chronyd[4658]: Selected source 157.7.235.92
 5月 27 13:53:41 localhost.localdomain chronyd[4658]: System clock wrong by 404.387741 seconds, adjustment started
 5月 27 14:00:25 localhost.localdomain chronyd[4658]: System clock was stepped by 404.388 seconds

・状態確認
# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ y.ns.gin.ntt.net              2   6    37    29   +714us[  -30ms] +/-   49ms
^+ li528-174.members.linode.     3   6    37    29   +111us[  -30ms] +/-   59ms
^+ chobi.paina.jp                2   6    37    29   -321us[  -31ms] +/-   47ms
^* v157-7-235-92.z1d6.static     2   6    37    29   -727us[  -32ms] +/-   38ms

「*」が現在同期をとっているサーバ

【SELinux】

# getenforce 
Enforcing

ローカルの開発環境なので無効にする
# vim /etc/selinux/config  
SELINUX=disabled

# reboot

# getenforce
Disabled

【Webサーバ】

# yum install httpd httpd-devel httpd-tools

# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: inactive (dead)

# systemctl start httpd.service

# systemctl enable httpd.service

# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Tue 2015-05-26 21:12:03 EDT; 1min 10s ago
 Main PID: 7308 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─7308 /usr/sbin/httpd -DFOREGROUND
           ├─7309 /usr/sbin/httpd -DFOREGROUND
           ├─7310 /usr/sbin/httpd -DFOREGROUND
           ├─7311 /usr/sbin/httpd -DFOREGROUND
           ├─7312 /usr/sbin/httpd -DFOREGROUND
           └─7313 /usr/sbin/httpd -DFOREGROUND

May 26 21:12:03 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 26 21:12:03 localhost.localdomain httpd[7308]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
May 26 21:12:03 localhost.localdomain systemd[1]: Started The Apache HTTP Server.

# firewall-cmd --permanent --add-service=http
success

# firewall-cmd --reload
success

# pwd
/etc/httpd/conf

# cp httpd.conf httpd.conf.org

# vim httpd.conf

# pwd
/etc/httpd/conf.d

# cp userdir.conf userdir.conf.org

# vim userdir.conf

# systemctl restart httpd.service

【PHP】

# yum install php php-cli php-common php-devel php-gd php-mbstring php-mysql php-pdo php-xml php-xmlrpc php-pear

# pwd
/etc

# cp php.ini php.ini.org

# systemctl restart httpd.service

【データベース】

# yum install mariadb-server mariadb-devel mariadb-libs  

# systemctl start mariadb.service

# systemctl enable mariadb.service

# firewall-cmd --permanent --add-service=mysql
success

# firewall-cmd --reload
success

# systemctl status mariadb.service
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: active (running) since Tue 2015-05-26 22:22:28 EDT; 1min 24s ago
 Main PID: 12165 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─12165 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─12323 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock

May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: The latest information about MariaDB is available at http://mariadb.org/.
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: You can find additional information about the MySQL part at:
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: http://dev.mysql.com
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Support MariaDB development by buying support/new features from MariaDB
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Corporation Ab. You can contact us about this at sales@mariadb.com.
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Alternatively consider joining our community based development effort:
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/
May 26 22:22:26 localhost.localdomain mysqld_safe[12165]: 150526 22:22:26 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
May 26 22:22:26 localhost.localdomain mysqld_safe[12165]: 150526 22:22:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
May 26 22:22:28 localhost.localdomain systemd[1]: Started MariaDB database server.

# mysqladmin -u root password '******'

# mysqladmin -p -u root -h localhost password '******'
Enter password: 

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

設定ファイルを変更する
# pwd
/etc

# cp my.cnf my.cnf.org

# diff my.cnf.org  my.cnf                                                                                                                                                                                                
10a11,12
> character-set-server = utf8
> 

※[mysqld] に、character-set-server = utf8 を追記。

# systemctl restart mariadb.service

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

【Samba】

# yum install samba samba-client samba-common samba-devel samba-libs

# systemctl start smb.service

# systemctl enable smb.service

# firewall-cmd --permanent --add-service=samba
success

# firewall-cmd --permanent --add-service=samba-client
success

# firewall-cmd --reload
success

・ユーザの追加
# pdbedit -a -u linuxusername
new password:
retype new password:
Unix username:        linuxusername
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3433598194-894145024-3160967228-1000
Primary Group SID:    S-1-5-21-3433598194-894145024-3160967228-513
Full Name:            
Home Directory:       \\localhost\linuxusername
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\linuxusername\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 10:06:39 EST
Kickoff time:         Wed, 06 Feb 2036 10:06:39 EST
Password last set:    Wed, 27 May 2015 00:03:41 EDT
Password can change:  Wed, 27 May 2015 00:03:41 EDT
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

・セクションの追加
# pwd
/etc/samba

# cp smb.conf smb.conf.org

# vim smb.conf

# diff smb.conf.org smb.conf
296a297,306
> 
>       comment = Document Root Directory
>       path = /var/www/html
>       public = yes
>       writable = yes
>       printable = no
> 
>       create mask = 0664
>       directory mask = 0775
> 

【サービスの公開状態確認】

# firewall-cmd  --list-services
dhcpv6-client http mysql samba samba-client ssh

CentOS7をVagrantで動かしたい

CentOS7をVagrantで動かしたい。

CentOS7の練習のために環境が欲しい。

$ vagrant box add CentOS7_minimal https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box                                                  
Downloading or copying the box...
Extracting box...ate: 9955k/s, Estimated time remaining: --:--:--)
Successfully added box 'CentOS7_minimal' with provider 'virtualbox'!

初期化。

$ vagrant init CentOS7_minima

VagrantfileでIPの指定してから起動

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'CentOS7_minimal'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

ARPCHECK=no /sbin/ifup eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

エラー出た。

■[Sy] 【解決した】VagrantでCentOS7のVMを作ったらネットワーク設定でコケた(固定IP割り当てに失敗)
http://www.utano.jp/entry/2014/11/vagrant_centos7_network_error

上記サイトを参考にvagrantを新しくしてみる。

https://www.vagrantup.com/downloads.html

# rpm -Uvh vagrant_1.7.2_x86_64.rpm
# vagrant -v
Vagrant 1.7.2

CentOS7を起動してみる。

$ 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: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (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 timeout. 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 its present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /home/takeuchi/fujita_cent7
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起動で”Failed to mount folders in Linux guest”のエラーが出た件
http://l-light-note.hatenablog.com/entry/2015/04/04/212648

以下をやってみた。

$ vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.10.0)'!

一旦落として。

$ vagrant halt

再度起動。

$ vagrant up

起動できた。

そもそも共有フォルダ使ってないから使わないようにしたらよいかも。
ついでにVirtualBoxのアップデートもした。

■参考URL

[Sy] 【解決した】VagrantでCentOS7のVMを作ったらネットワーク設定でコケた(固定IP割り当てに失敗)
http://www.utano.jp/entry/2014/11/vagrant_centos7_network_error

VirtualBoxとVagrantをバージョンアップする
http://qiita.com/mashumashu/items/557dcb805e77315004b1

vagrant起動で”Failed to mount folders in Linux guest”のエラーが出た件
http://l-light-note.hatenablog.com/entry/2015/04/04/212648

Failed to mount folders in Linux guest. This is usually because the “vboxsf” file system is not available.を直す方法
http://qiita.com/DQNEO/items/2375dd8002a831268cb5

Vagrant で CentOS 6.5 を使っていたら Guest Additions の更新に失敗してハマった
http://qiita.com/a-suenami/items/3b04151ce6e7d5b72a3e

Vagrantでフォルダがmountできないエラーが出たときの対応
http://qiita.com/kazu69/items/812b236e84fee1db3900

vagrantで立てたvmにswapを設定する。

vagrantのゲストサーバ側で割り当てていた物理メモリを超えるような処理をしたときにvmが落ちてしまった。
ホスト側のログにはこんな感じで出ていた。

# less /var/log/messages

Sep 10 16:39:08 r210devel kernel: Out of memory: Kill process 19223 (VBoxHeadless) score 231 or sacrifice child
Sep 10 16:39:08 r210devel kernel: Killed process 19223, UID 502, (VBoxHeadless) total-vm:3144740kB, anon-rss:15636kB, file-rss:1765760kB
Sep 10 16:39:08 r210devel kernel: EMT-1: page allocation failure. order:0, mode:0x304d2
Sep 10 16:39:08 r210devel kernel: Pid: 19232, comm: EMT-1 Not tainted 2.6.32-431.3.1.el6.x86_64 #1
vagrant status

上記で確認するとステータスは「aborted」になってしまっていた。

物理メモリの上限をあげたりしたらいいのかもしれないけど、
swapがなさそうだったのでswapを追加してみる。

以下方法。

■現状を確認する

# swapon -s
Filename                                Type            Size    Used    Priority

■スワップ用ファイルの作成。今回は1024MBで作成。

# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 13.2406 s, 81.1 MB/s

■スワップ領域として初期化する。

# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=c46d6690-8fe3-4555-b9f3-50d690dee94c

■スワップ領域を有効にする。

# swapon /swapfile

■追加されたか確認する。

# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            1048568 0       -1

■再起動したときにもswapが使えるようにfstabに登録しておく。

# sh -c "echo '/swapfile swap swap defaults 0 0' >> /etc/fstab"

※そもそも物理メモリ量をゲストvmが超えた場合に落ちないようにしたいけどその方法はわかっていない・・・。
このページのような現象だけどもどうしたものか・・・。
Out of Memory: Killed process process…

メモリをそんなに使わないようにするのがいいんだろうな。。

■参考URL
Vagrant+VirtualBox+CentOS環境でMySQL5.6が起動しない場合の対処法

linux スワップ(swap)領域の作成

vagrant upで新規のvmが作成されてしまった

vagrant upで新規のvmが作成されてしまった

「vagrant up」したときに今まで使っていたvmではなく新しくvmを作成してしまい、
それ以降は新しく作成したvmを利用してしまう状態になってしまった。

使った感じではさっき設定した内容が巻き戻ってるように感じられるけど、
新規でvmを作成してしまっている。
※VirtualBoxの管理画面で確認したほうがいい。。
この状態を修正するには以下のファイルを編集する

\.vagrant\machines\default\virtualbox\id

今回の現象が発生するとidファイルの内容が変わってしまっていて
新規で作成したvmを見るようになってしまっている。

その為以前のvmのidを調べる必要がある。

Windowsの場合はVirtualBoxのインストールディレクトリまで移動。
(標準ではc:\Program Files\Oracle\VirtualBox\)にVBoxManage.exeがあります。

そこで以下のコマンドを実行。

VBoxManage.exe list vms

すると仮想マシン名とその後ろにidが表示されるので
以前のvmのidをコピーし先ほどの

\.vagrant\machines\default\virtualbox\id

ファイルの中身を書き換えて保存。

その後

vagrant up

これで以前のvmが立ち上がる。

※新しく出来てしまったvmは削除しておいたほうがいいと思います。。
■参考サイト

vagrant upした時に別のvmを新規作成してしまう問題の対処

VBoxmanageコマンドの場所