Edited at

【連載01】218.chrony(タイムサーバ)

More than 3 years have passed since last update.

当記事はケーススタディの連載となっています。目次は【こちら】です。

最新のソースコードは【GitHub】で公開中です。

サーバの責務はこちらで確認ください。


1.NTP設定概要

サーバの時刻同期の為、NTPをインストールして設定する。


2.playbookファイルの相関


3.playbook(site.yml)

${ANSIBLE_HOME}/site.yml

メインとなるplaybook(site.yml)参照


4.NTP設定のplaybook(/operations/1041_chrony.yml)

${ANSIBLE_HOME}/operations/1041_chrony.yml

playbook中のコメントの補足に関しては「6.補足説明」を参照。

# ===================

# NTP(chrony)をインストール
# ===================
- hosts: all
sudo: no
remote_user: root
vars_files:
- ../vars/yum.yml
tasks:
# ===================
# 【4.A】:すべてのサーバにNTP(chrony)をYUMにてインストール
# ===================
- name: YUMにてchronyをインストール
yum: name={{rpm.package.chrony }} state=present  

# ===================
# dbserv01,adminserv01はapserv01をタイムサーバにする
# ===================
- hosts: db_admin
sudo: no
remote_user: root
tasks:
# ===================
# apserv01以外(dbserv01/adminserv01)はインターネット上の
# タイムサーバ(0.centos.pool.ntp.org)を参照せず
# apserv01をNTPとする。
# ===================
- name: chrony設定ファイルの書き換え(apserv01をタイムサーバとする)
# 【4.B】:設定ファイルを置換する
replace:
dest=/etc/chrony.conf
regexp='^server 0.centos.pool.ntp.org iburst'
replace='server apserv01 iburst'

# ===================
# すべてのサーバのNTPサーバを再起動する
# ===================
- hosts: all
sudo: no
remote_user: root
tasks:
# ===================
# NTPを再起動する
# ===================
- name: chronyを再起動する
# 【4.C】:設定ファイルを置換する
service: name=chronyd enabled=yes state=restarted
ignore_errors: True


5.変数設定のplaybook(/vars/yum.yml)

${ANSIBLE_HOME}/vars/yum.yml

  rpm:

package:
vim: vim
openssl: openssl
httpd: httpd
wget: wget
unzip: unzip
gcc: gcc
git: git
rsync: rsync
libffi_devel: libffi-devel.x86_64
bind_utils: bind-utils
net_tools: net-tools
mod_ssl: mod_ssl
manpage: man-pages-ja
chrony: chrony # 【5.A】yumリポジトリからインストールする名称
openssl_devel: openssl-devel
readline_devel: readline-devel
zlib_devel: zlib-devel
psmisc: psmisc
nfs_utils: nfs-utils
mlocate: mlocate
mariadb: mariadb
mariadb_server: mariadb-server
epel: epel-release
openvpn: openvpn
expect: expect
libselinux_python: libselinux-python
easy_rsa: easy-rsa


6.補足説明

コメント4.A~4.Cについて。

chrony.ymlではタイムサーバ(chrony)の設定を行う。

yumにてインストール後、設定ファイルを修正(置換)する

(1) 4.Aですべてのサーバに対し、yumを利用してNTPをインストールする。


yum: name={{rpm.package.chrony }} state=present


yumモジュールを使用してchronyをインストールする。

{{rpm.package.chrony }}は5.Aの"chrony"という文字列を取得する為の変数設定。

(2) 4.Bの部分でインストール直後のchronyの設定ファイルを文字列置換する。

「dbserv01」と「adminserv01」のみが当該設定対象。


replace:

dest=/etc/chrony.conf

regexp='^server 0.centos.pool.ntp.org iburst'

replace='server apserv01 iburst'


/etc/chrony.confはデフォルトで[server 0.centos.pool.ntp.org]サーバに接続しに行く。

「dbserv01」と「adminserv01」は直接インターネットに触れる必要がない。

「apserv01」はインターネットからの参照/インターネットへの参照を行う為、当該サーバのみが[server 0.centos.pool.ntp.org]に時刻同期を行い、「dbserv01」と「adminserv01」は「apserv01」への時刻同期をする設定にしたいと思う。

設定名
内容

dest
置換対象のファイル名

regexp
正規表現にて置換する対象部分を探す

replace
置換する文字列です

(3) 4.Cではサービスを再起動する。


service: name=chronyd enabled=yes state=restarted

ignore_errors: True


すべてのサービスが対象となる。

サービス名chronydを自動起動(enable)設定にして再起動する。


systemctld enable chronyd

systemctld restart chrony


と同じになる。

ignore_errorsはエラーが発生しても無視する。

次回は「219.アパッチのインストール・配置」について。

連載の目次は【こちら】です。