This will be pretty short tutorial about NTP. I will show you how to install and configure NTP on your server.
What is NTP?
NTP stands for Network Time Protocol and it keeps the server synchronised with correct time. Moreover you can synchronise all servers to one of your server to make sure that all have the same time and there are no time-shifts between them. It's nice to have such tool installed on your server.
How to set system timezone on CentOS?
First thing before that you need to do before installing and configuring NTP server is to set correct timezone. By using
timezonectl command you can get information about your current timezone:
timedatectl | grep "Time zone"
Now, you need to decide which timezone you want to use. I'm strongly recommend using
UTC as a timezone. Some servers are configured to particular timezone like
Pacific/Honolulu for instance. But you should use UTC. If you are curious why, I highly recommend reading this article about UTC.
It will have some downsides, especially when you will have to translate output of
date command to your local timezone. Most probably, there will be a time-shift.
In order to set timezone as UTC execute following command:
sudo timedatectl set-timezone UTC
However if you want to stick to your local timezone you can use replace UTC in command above to one of the options from this command:
timedatectl set-timezone UTC
sudo timedatectl set-timezone Europe/Kiev
Now once you have your correct timezone set, you can proceed to setting up NTP server
How to install and configure Chrony as NTP server?
There are couple of options when you want to choose tool for NTP server. Two most popular are:
In this tutorial I will use Chrony. It comes out of the box with CentOS and it's a bit faster than NTP. There is nice comparison of these two tools here.
Before you will install
chrony make sure that you don't have
ntp installed. Having two servers on one machine can cause some issues.
Execute following command to remove ntp and ntpdate packages:
sudo yum remove ntp ntpdate -y
Once you are sure that you don't have ntp installed, make sure that chrony is installed. It should be installed by default, but it is nice to check it:
sudo yum install chrony -y
Now you need to configure pooling from external NTP server. I highly recommend commonly used pool.ntp.org for that purpose.
In order to use the servers for pooling edit chrony configuration file:
sudo vi /etc/chrony.conf
At very top of the file there should be lines that starts with
server. Remove them all and use the one from
pool.ntp.org. So the beginning of your file after changes should look like that:
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.pool.ntp.org iburst server 1.pool.ntp.org iburst server 2.pool.ntp.org iburst server 3.pool.ntp.org iburst # Ignore stratum in source selection. stratumweight 0 ...
Save the changes. Now it's time to start NTP service and enable it on boot, so it will start automatically after system reboot:
sudo systemctl start chronyd.service sudo systemctl enable chronyd.service
That's it! You configured NTP server!
You can use following commands here to check synchronisation status:
chronyc tracking chronyc sources -v
You can use our Ansible LAMP on Steroids project to make configuration of your server easier!
It is based on Ansible. If you don't know what Ansible is, check our tutorial first.