CentOS7 on Vagrantでの時刻設定

CentOS7からはntpdではなく、chronyを使用するように推奨されている。

インストールして、デーモンとして常駐させるように設定する。

$ sudo yum install -y chrony
$ sudo systemctl enable chronyd
$ sudo systemctl status chronyd
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
   Active: inactive (dead)

“/etc/chrony.conf”の参照するサーバを日本のNTPサーバに設定する。

server ntp.nict.jp iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

chronyを起動する。

$ sudo systemctl start chronyd

chronyの状態を確認する。

$ chronyc cources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-b2.nict.go.jp             1   6    37    38  -1471ns[-3530us] +/- 3053us
^- ntp1.jst.mfeed.ad.jp          2   6    37    37   -922us[ -922us] +/-   12ms
^- ntp2.jst.mfeed.ad.jp          2   6    37    38  -1038us[-4557us] +/-   35ms
^- ntp3.jst.mfeed.ad.jp          2   6    37    38  +2003us[+2003us] +/-   16ms

さらに詳細な情報を得たい場合は、-vオプションをつける。

210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                  \            |    zzzz = estimated error.
||                                   |           |
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-b2.nict.go.jp             1   6    77    22   +275us[ +681us] +/- 3850us
^- ntp1.jst.mfeed.ad.jp          2   6    77    21  -1044us[-1044us] +/-   44ms
^- ntp2.jst.mfeed.ad.jp          2   6    77    22   -914us[ -508us] +/-   37ms
^- ntp3.jst.mfeed.ad.jp          2   6    77    22   -466us[  -62us] +/-   12ms

他には、トラッキング情報を確認したりなど。

$ chronyc tracking
$ chronyc sourcestats

UTCになっている場合

日本人なので、JST(日本標準時)で時刻を確認したいので変更します。

CentOS7からは、”timedatectl”で確認、設定ができます。(“/etc/localtime”などを直接編集しません)

# 確認
$ timedatectl
# timezoneの確認(一覧)
$ timedatectl list-timezones
# timezoneの設定
$ sudo timedatectl set-timezone Asia/Tokyo

これで”date”コマンドが、JSTで表示されます。

Vagrantを使用している場合

Vagrantはデフォルトでホストと時間を同期してくれます。ホストの時間がずれていると時間は永遠にありません。

ホストの時刻があっている場合は問題無いです。

ホストの時間がずれている場合は同期をやめるように設定しましょう。

config.vm.provider :virtualbox do |vb|
  vb.customize ["setextradata", :id, "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled", 1]
end

のっぴきならない事情でホストの時刻がずれている場合は、こうしないとダメですね。