DC追加の項目samba/2ndDCでも述べたが、sambaはまだ複数台のDCで構成された際のSYSVOL複製が不十分です。
なのでグループポリシーオブジェクトを作成しても、すべてのDCでそのグループポリシーオブジェクトを提供できるわけではない。
手立てが必要です。

参照先https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaroundによれば、
1.グループポリシーオブジェクトを作成するDCは一か所にする
2.その一か所から定期的に他のDCへグループポリシーオブジェクトをrsyncで配信する
3.マスターとなるDCは、fsmoの「PDC Emulator」を有するサイトにする
2015y12m30d_012319005.png
ここでは2台のDCにおいて、片方をマスターとしてrsyncの設定方法を示す。

マスターなDCを選ぶ

ここでは2台のDCの内、c.sybyl.localをマスターとします。
マスターの証として、fsmoのPDCEmulationを与える。fsmoを別々のDCに置いていいか不明だが
「samba-tool fsmo transfer」を使用してこのマスター一か所にfsmoを集めた。

[root@c ~]# /opt/samba/bin/samba-tool fsmo transfer --role=all --username=Administrator --password=xxxxxxx

留意
GPOを作る際、samba/リモートサーバ管理ツールのGUIツール「グループポリシーの管理」を使用するのだが、この管理アプリが常に選んだDCと繋がる訳ではない。手じかな他のDCと繋がる場合もある。その場合は、管理アプリを立ち上げて、左ツリーを展開して目的のドメインを選択する。そしてその右クリックから「ドメインコントローラの変更」を選ぶ
2015y12m30d_014800367.png
表示された「ドメインコントローラーの変更」画面で目的のDCに繋がる様に調整する。
2015y12m30d_014927537.png
基本は「PDOエミュレータの操作マスター トークンがあるドメインコントローラ」が選ばれている。そのため、前述の「samba-tool fsmo transfer」コマンドでfmsoを選んでいれば、「グループポリシーの管理」は自動的に目的のDCに繋がるようになっている。

GPOをrsyncを使って他のDCへ配布する

冒頭の図は、マスターなDCからデータが他のDCへ渡る様に書かれているが、rsyncを使った方法では、他のDCがマスターなDCにアクセスしてデータを持ってくる形である。

rsync   root@<マスターなDC>:/opt/samba/var/locks/sysvol    /opt/samba/var/locks/sysvol

マスターなDCをrsyncサーバにする

xinetd経由でrsyncサーバを作る。

[root@c ~]# yum install xinetd rsync

だが、/etc/xinetd.d にrsync用のサービス定義ファイルがない...どうやらCentOS7では提供されなくなったようだ。なので自作する

[root@c ~]# cat << _EOF_ > /etc/xinetd.d/rsync
service rsync
{
   disable         = no
   only_from       = 192.168.0.0/24   # 提供を制限
   socket_type     = stream
   wait            = no
   user            = root
   server          = /usr/bin/rsync
   server_args     = --daemon
   log_on_failure += USERID
}
_EOF_
[root@c ~]#
[root@c ~]# systemctl enable xinetd
[root@c ~]# systemctl start xinetd

*「journalctl -u xinetd」でログを確認する
次に参照対象となる sysvol をrsyncdで晒させる。sysvolの場所は /opt/samba/var/locks/sysvol/ で、
書き込みは禁止、rsync内で有効なアカウント(sysvol-replication)を作って、そのアカウントのパスワードはsecrets fileで指定する。

[root@c ~]# cat << _EOF_ >> /etc/rsyncd.conf 
[SysVol]
path = /opt/samba/var/locks/sysvol/
comment = Samba Sysvol Share
uid = root
gid = root
read only = yes
auth users = sysvol-replication
secrets file = /opt/samba/etc/rsyncd.secret
_EOF_
[root@c ~]#

rsync内部アカウントsysvol-replicationのパスワードは、下記のように定義する。
*他には読めないようにする

[root@c ~]# vi /opt/samba/etc/rsyncd.secret
sysvol-replication:sambaReplication
[root@c ~]# 
[root@c ~]# chmod 0600 /opt/samba/etc/rsyncd.secret

その後にxinetdを再起動して、/etc/xinetd.d/rsyncを再読み込みする。

[root@c ~]# systemctl restart xinetd

*「journalctl -f」で確認する

sysvolをダウンロードするDC(rsyncクライアント)

rsync内部アカウントsysvol-replicationのパスワードを設置する。マスターなDCと同じ場所で構わない。
注意 パスワードファイルのフォーマットに注意。ここではパスワードのみです。

[root@2nd ~]# vi /opt/samba/etc/rsyncd.secret
sambaReplication
[root@2nd ~]# 
[root@2nd ~]# chmod 0600 /opt/samba/etc/rsyncd.secret

まずはrsyncの「--dry-run」オプションを付けて、マスターなDCからsysvolをrsyncする。
*実際にはrsyncは行っていない

[root@2nd ~]# rsync --dry-run -XAavz --delete-after --password-file=/opt/samba/etc/rsyncd.secret \
                 rsync://sysvol-replication@192.168.0.3/SysVol/  /opt/samba/var/locks/sysvol/
 
receiving file list ... done
 
sent 70 bytes  received 8514 bytes  17168.00 bytes/sec
total size is 1366  speedup is 0.16 (DRY RUN)
[root@2nd ~]#

と成功した模様。次にrsyncの「--dry-run」を外して実行して、最終的にはcronで処理を行うようにする。

[root@2nd ~]# crontab -e
MAILTO=""
*/5 * * * * rsync -XAavz(略)rsync://sysvol-replication@192.168.0.3/SysVol/  /opt/samba/var/locks/sysvol/
[root@2nd ~]#

これでsysvolの複製、伝播対応は完了


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-12-31 (木) 16:46:46 (1680d)