3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-03-12

当記事はケーススタディの連載となっています。目次は【こちら】です。
最新のソースコードは【GitHub】で公開中です。
サーバの責務はこちらで確認ください。

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

image

##2.playbookファイルの相関

image

##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.アパッチのインストール・配置」について。

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

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?