LoginSignup
0
0

LinuxでのNTP(chrony)の構築

Posted at

概要

今回、Linuxで用意されているchronyを用いてNTPサーバの設定を行う。
その際は、仮想環境を用いりながらと環境作成をvagrantを通して構築を行い、
環境構築をプロビジョニング化する。

要件

・NTPサーバ2台(サーバ側とクライアント側)を用意し、クライアント側がホスト側を参考に、
時刻ができるようにする。

・vagrantを用いて、作成した環境をCLI上から構築・確認できるようにする。

・作成したサーバは内部ネットワークでのみ疎通ができるようにする。
(外部またホストOSとの疎通はできない設定)

構成図

■サーバ構成図
スクリーンショット 2023-08-19 22.45.38.png

■仮想環境構成図
スクリーンショット 2023-08-19 22.45.57.png

構築環境

OS(ホスト):MacOS 10.15.4 Darwin Kernel Version 19.4.0
OS(仮想):Linux CentOS 7.9.2009
仮想環境:virtualbox 6.1.32
使用ソフトウェア:vagrant 2.2.4

作成手順

①Vagratnfileを作成し、仮想環境の基本設定を行う

■ディレクトリ構成
今回の構築においてホストOS側のディレクトリ構成は以下のようにする。

    home--「ユーザー名」--Desktop--work----vagrant_ntp #参照先NTPサーバ
                          |
                                 --vagrant_ntp_client #クライアント側のNTPサーバ


①−1 上記のようにディレクトリーを作成する。

    # mkdir /home/「ユーザー名」/Desktop/work/vagrant_ntp
    # mkdir /home/「ユーザー名」/Desktop/work/vagrant_ntp_client


①−2 作成後は、それぞれvagrant環境の立ち上げを行っていく。

    # cd /home/「ユーザー名」/Desktop/work/vagrant_ntp
    # vagrant init 

    # cd /home/「ユーザー名」/Desktop/work/vagrant_ntp_client
    # vagrant init

※上記コマンド「vagrant init」にて仮想環境の設定ファイルであるVagrantfileを、
 それぞれのディレクトリの直下に作成される。

■設定項目
Vagrantfileには事前に設定項目が複数存在している。
デフォルトでは全てコメントアウトされているが、今回必要な箇所をコメントアウトを外したり、
また、値を追加したのが下記のようになる。

    Vagrant.configure("2") do |config|
        config.vm.box = "centos/7"
        config.vm.hostname = "testntp"
        config.vm.synced_folder "./", "/vagrant"
        config.vm.network "private_network", ip: "192.168.22.10", virtualbox__intnet: true
    end
設定項目 説明
config.vm.box 今回使用するboxを選択
config.vm.hostname それぞれのサーバのホスト名を入力
config.vm.synced_folder ホスト側とゲスト側で共有するフォルダーを記入。
イメージとしてどこのフォルダーを仮想側と同期させますかと言った感じ
config.vm.network 仮想サーバ側で設定するIPを入力

それぞれこのような意味を持つ設定項目となる。

〜設定項目詳細については以下を参照〜
https://weblabo.oscasierra.net/vagrant-config-vm/

Tips
上記設定項目でも出てきている、vagrantならではのboxとnetworkの意味とその種類について、備忘録としてまとめておきます。

box:
vagrantではあらかじめOSのパッケージのようなものを用意してくれており、
そのパッケージのようなものをboxと言う。
使用者は使用したOS(box)を指定するだけで、
ローカルまたはvagrant cloud上から自動的にプロビジョニングしてくれる。
要するにわざわざOSのメディアだったりファイルを使用者が用意することなく
構築が可能になる。

network:
基本サーバのIPを設定する項目になるが、
それ以外にも「どのようなネットワークで構築するか」を設定することができる。
要するにどことどこを通信できるようにするかを決めることができる。
(仮想OSどうしだけかホストOSと仮想OSどうしだけか、
はたまた仮想OSと外部ネットワークどうしを可能にするかなど)



■設定後の疎通確認

①−3 設定後は実際にvagrantを立ち上げて設定したIPとホスト名、仮想サーバどうしで疎通ができているかを確認する。

    # vagrant up    仮想サーバの立ち上げ
    # vagrant ssh   仮想サーバへのアクセス

    $ hostname  config.vm.hostnameで設定した値が確認できる
    $ ip addr   config.vm.networkで設定した値が確認できる。
    $ ping [参照するNTPサーバのIP]


②起動したサーバにてchronyの設定

■chronyの設定ファイルの変更
②−1 同期先NTPサーバの設定ファイル(/etc/chrony.conf)を修正する

    allow 192.168.22.0/24  ⇦clientが疎通できる許可をここで設定する

他はデフォルトの状態にしておく。

②−2 clientNTPサーバの設定ファイル(/etc/chrony.conf)を修正する

    server 0.centos.pool.ntp.org iburst 削除
    server 1.centos.pool.ntp.org iburst 削除
    server 2.centos.pool.ntp.org iburst 削除
    server 3.centos.pool.ntp.org iburst 削除
        
    server 192.168.22.10 iburst 追加

同期先NTPサーバのIPを設定する。

■設定の反映(サービスの再起動)
②-3 サービスを再起動してステータスが正常なことを確認する。

    # systemctl start chronyd
    # systemctl status chronyd
       chronyd.service - NTP client/server
           Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
           Active: active (running) since 土 2023-08-19 13:33:37 UTC; 11s ago
            ~省略~

③client側の同期の確認

■同期先の確認
③-1 client側にて設定したNTPサーバに同期できているか確認。

    chronyc sources
    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample               
    ===============================================================================
    ^* 192.168.22.10                 2   6    17    15  -2638ns[  +25us] +/- 5581us

※「*」があれば正常に同期が行えている。

全体を通して

NTP自体の設定・構築は簡単だった。
vagrantを通じてのvirtualboxの設定、ネットワーク関連に苦戦。
仮想環境の構築について今後もっと詳しい箇所まで触れてみたい
vagrantでできることをもっと知りたい

次回やってみたいこと…

上記でも述べましたが、今回でvagrantについてすごい興味を持てたので、
もっとvagrantの機能について触れていきたいと思います。
その中でもvagrantを通じてのAWS構築にも挑戦できたらと思います。

ざっと調べると、vagrant-awsを導入することで実現可能とのこと。

上記サイトも参考にしつつ、設定を行なっていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0