当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【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.アパッチのインストール・配置」について。
連載の目次は【こちら】です。