「NTP」タグアーカイブ

CentOS 7 NTP設定・・・ちょっと待て!?

こんな感じではじまった

CentOS 7で時刻同期を行おうとNTPの設定を行った。
デフォルトでインストールされているだろうと思い込んで進んだのだが、ntpdが無いではないか!?

そんじゃ・・・ということでyumにお願いしてインストールしてsystemctlをstartとenableやって、ntpqコマンドで動作確認。。。。おっ!動いた!OK(^^♪

と思ったよ!!俺でもこれくらいは出来るぞ!と、思ったよ!

しばらくして、マシンの再起動なんかもして、翌日ntpqで時刻同期はどうなってるかなぁ~なんて、楽しみに見てみたら・・・・

# ntpq -p
ntpq: read: Connection refused

あれ?動いてない?systemctl enable ntpdを忘れてたの?
と再度実行して、再起動してみたものの同じ現象やん!?

やばい!いつも簡単な設定だから適当決め込んでいたのだが、不味い!!((((;゚Д゚))))ガクガクブルブル

ググったら出てきた。CentOS 7からntpdは標準ではなく、代わりにChronydが標準になったのが原因だった。
当然、デフォルトで設定されてたよw

と言うことで本題!

でもって、/etc/chrony.confを開いて以下の部分を適当に変更。

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#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 10.20.30.1 iburst
server 10.20.30.2 iburst

不要なサーバ設定を削除して、必要なサーバを指定(IPは適当なものに置き換えてください)して、再起動したらOKでした。

こんな感じで再起動

ちなみに、

# systemctl restart chronyd

確認はやらなくちゃ!

更に確認方法は・・・

# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ v.dyn.im                      2  10   377   409  +1406us[+1406us] +/-   32ms
^- x.ns.gin.ntt.net              2  10   377   416  +1495us[+1495us] +/-   81ms
^+ jiro.paina.net                2  10   377   419  -1292us[-1292us] +/-   59ms
^* sv1.localdomain1.com          2  10   377   431  +3607us[+4336us] +/-   50ms
#

こんな感じで表示されたらOKらしい。(表示されているのはデフォルトの状態で試した時です。)

ほんま焦りますわ(^^♪

ついでにちょっとだけコメント

ちなみに、サーバとして動作させるには、/etc/chrony.confの以下の部分を設定してあげる必要があります。

# Allow NTP client access from local network.
#allow 192.168.0.0/16

allowする相手のネットワークを必要に応じて記載することが必要です。

サーバとして動作させる必要が無ければ、この状態でOKです。

ちにみに設定変更を行ったら、サービスの再起動を行うこと!

自動機能もデフォルトで設定されている様ですが、どうしてもやりたい人は、systemctl enableで実施してください。

chronydは嫌だぁ~!って人は、chronydをdisableしてntpdを設定してあげれば良いそうです。

 

MantisをCentOS 7へインストールする。

Mantisのインストールは比較的に楽だということで、インストールしてみた。

最初は順調にインストール出来たのだが、データベース絡みのセキュリティに引っ掛かったために大幅に時間をロスすることとなった。

CentOS 6までならばその問題に遭遇することなくインストール出来るようです。

CentOS 6でも下記のインストール方法でインストール出来るはずですが、CentOS 7では少しだけ設定が追加になりますので、その点も記載しながらインストール方法をまとめます。

インストール準備

まずは動作環境について整理します。

対象OS:7.3.1611
Web:Apache 2.4.6
mariadb:15.1
php:5.4.16

今回は、OSのみインストール済みでした。各種パッケージは順次インストールします。

今回インストールを行ったマシンのH/W環境は以下の様な感じです。
4コア程度の安価なマシン。
メモリは16GB入れていますが、4GBとかでも十分に動くでしょう。
HDDは。。。たまたま無かったので、空いていたSSD500GBを使いましたが、基本的にそんなスペックは必要ありませんw
実際に必要な環境は調べていませんが、各々で必要に応じて調べてください。

インストール作業

これからインストール作業を開始します。

nkfを入れたりしないのであれば多分必要ないのですが、何かとデフォルトのリポジトリだけだと足りなくって、結局入れることになるのがEPELリポジトリなんですよねw

そこで、面倒なことは先に済ませておこうということで、EPELリポジトリを登録しておきます。

EPELリポジトリ

# yum install epel-release

デフォルトで使うとか使わないとか・・・あるけど、取りあえず無視します。必要な人は、一通りインストールが終わった後で設定してください。

Apache

yumを使って簡単にインストールします。

# yum install  httpd mod_ssl

いろいろと設定を行うところはありますが、Mantisを入れることが目的ですから、簡単なインストール方法だけです。
セキュリティ面など詳細な設定を行いたい方は、別途調べてください。

Apacheを起動します。

# systemctl start httpd

CentOS 6では、

# service httpd start

自動起動の設定を行います。

# systemctl enable httpd.service

CentOS 6では、

# chkconfig httpd on

なんとなく、CentOS 6と7の違いがわかると思います。
これ以降はsystemctrl/service/chkconfig関連のCentOS 6および7による違いに関しては省略し、CentOS 7の設定方法のみ記載します。

nkf

文字コード変換ツールのnkfをインストールします。
どこのサイトにもMantisインストールに際し必要という記載は無かったのですが、readme.txtなどの日本語が入っているファイルでSJISが使われているところがあったのでインストールしました。
普通は使いませんが、必要になった時の為と思ってください。
要らない人は無視してください。

こちらも簡単に。。。

# yum install nkf

PHP

こちらも簡単にyumでインストールします。

# yum install php php-mysql php-mbstring

ntpとwget

時間を管理するためにNTPをインストールします。
またついでになりますが、wgetをインストールします。
wgetはファイルをダウンロードする際に使用しますが、今回は直接使用しません。
Mantisが使うために必要になるみたいです。

# yum install ntp wget

ここで少しタイムゾーンの設定だけしておきます。

多分、Mantisをこのまま入れてしまうと、時間の設定がゴチャゴチャするのかも知れません。意外と問題ないのかも知れませんが、取り敢えず。

# vi /etc/php.ini

内容は以下です。
タイムゾーンを指定しています。

[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Tokyo

該当箇所を修正してください。

mariadb

さて、CentOS 7からMySQLがmariadbに変更となっていることは既にご承知のことと思います。

ということで、以下のコマンドを実行してみてください。

# yum list installed | grep mariadb
mariadb-libs.x86_64             1:5.5.56-2.el7

OSのインストール手順によってこの辺りの環境はことなりますが、私の環境ではmariadb-serverが不足していました。

ということで、mariadb-serverをインストールします。

# yum install mariadb-server

続いて、mariadbを起動します。

# systemctl status mariadb
●mariadb.service - MariaDB daabase server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
# systemctl enable mariadb.service
# systemctl start mariadb.service

 

データベースの作成

mantisで使用するデータベースを作成します。

※MySQLのバージョンは大丈夫ですか?バージョンが古い場合、この後の作業を進めてしまうと後で面倒なことになります。十分注意してください。

mysqlへアクセスします。

mysql -u root

DBを作成します。

mysql> CREATE DATABASE bugtrackerdb;
mysql> CREATE USER mantisuser@localhost IDENTIFIED BY 'db_user';
mysql> GRANT ALL ON bugtrackerdb.* TO mantisuser;

※db_userについては、適当な名称を指定してください。
※その他mantisuserやbugtrackerdbについても適当に名称変更してください。

CentOS 6では、この設定だけで基本的にDBへのアクセスが許可されるのですが、CentOS 7ではもう少し作業を行います。

 

Mantisインストール

下準備が上記までの手順で完了しました。
ここからがMantisインストールの本丸です。

下記URLへブラウザでアクセスします。

https://sourceforge.net/projects/mantisbt/

「Download」のボタンをクリックすることでダウンロードされます。

ダウンロードを適当なディレクトリへ保存します。

ダウンロードしたファイル:mantisbt-2.5.0.zip

ファイルを解凍します。

unzip mantisbt-2.5.0.zip

解凍して得られたディレクトリを移動します。

mv mantisbt-2.5.0 /var/www/html/mantisbt

所有権の変更を行います。

chown apache:apache -R /var/www/html/mantisbt

ブラウザで以下のアドレスにアクセスします。

https://127.0.0.1/mantisbt/admin/install.php
※必ずローカルでアクセスしてください。外部からIPアドレスを指定しても上手く出来ない気がします。

 

CentOS 6であれば、これで上手く行くはずなのですが、CentOS 7ではエラーが発生します。

ブラウザ画面ではこれ以上何をやっても駄目でした。
パスワードを変更してみたりいろいろと手をつくしましたが、結局はlocalhostでアクセスを行える様にする際にパスワードをきちんと登録してあげる必要があるみたいです。
他の解決方法もあると思いますが、私はそれで解決しました。

では具体的に解決します。

ブラウザの「戻る」ボタンで戻ります。
駄目なら再読込みするなど元の画面に戻ります。

MySQLへ再度アクセスして、以下のコマンドを実行すると登録されているユーザ一覧が表示されます。

select Host, User, Password from mysql.user;
MariaDB [(none)]> select Host, User, Password from mysql.user;
+-----------------------+------------+-------------------------------------------+
| Host                  | User       | Password                                  |
+-----------------------+------------+-------------------------------------------+
| localhost             | root       |                                           |
| localhost.localdomain | root       |                                           |
| 127.0.0.1             | root       |                                           |
| ::1                   | root       |                                           |
| localhost             |            |                                           |
| localhost.localdomain |            |                                           |
| %                     | mantisuser |                                           |
| localhost             | mantisuser | *60E011DB435E0C2761CFC05F4D78A3FA39B912BD |
+-----------------------+------------+-------------------------------------------+
8 rows in set (0.00 sec)

ここで注目するのは、mantisuserが2つあります。

localhostと%になっている行が2つあります。

片方は何かパスワードが設定されているようですが、もう片方の%になっている方はパスワードが設定されていません。

そこにパスワードを設定します。

SET PASSWORD FOR mantisuser = PASSWORD('****');

****には適当なパスワードを指定してください。

同じようにlocalhost側のmantisuserにもパスワードを再設定します。

SET PASSWORD FOR mantisuser@localhost = PASSWORD('****');

 

先程と同じようにブラウザの画面で登録を行います。

そうするとエラーが取れました。

少し画面を省略しますが、最後のところに以下の記載が確認できます。

「Continue」をクリックすると、ログイン画面が表示されます。

初期のIDとパスワードは

ID:administrator
パスワード:root

になっています。

ログインすると以下の画面が表示されます。

 

新しいIDとパスワードを設定します。

まだ、メールの設定が出来ていませんが、一応の設定を済ませます。

「更新」しますと、再度ログイン画面が表示され新しいパスワードでログインを求められます。

再度ログインを行うと以下の画面が表示されます。

 

日本語化されていない場合は、以下の設定をconfig/config_inc.phpへ追加します。

$g_default_language = 'japanese';

以上でMantisのインストールは完了です。

メールの設定はまた別の機会に記載します。

 

 

PTP(Precision Time Protocol)を使用した時刻同期

PTP(Precision Time Protocol)を使用してみたくて、試しにやってみた。

PTPを実装するには、本来、PTPに対応したハードウェアである必要があるらしい。

普通に使っているだけならNTPで十分なのですが、諸所の事由から2台にマシンで精度の高い時刻同期を行わせたいことになり、已む無く実装検証を試みることにしました。

さて、上手く行くのか?
試した環境は、これまた諸所の事由によりホストOSとゲストOS・・・つまり、1台のマシンで実装検証(^^ゞ
#意味あるんかいな?