テンプレート構成を作成するPuppetモジュールを作成しようとしていますが、これはonlyif
RPMの基本構成です(どの形式を使用しても壊れないように)。残りの構成管理はaugeasによって行われます。以前は、これはうまくいきましたが、何らかの理由でrpm -Vf
smb.confが印刷されず、実際に最初にインストールされたときとは異なります。たとえば、その項目とタイムスタンプを大幅に変更しました。
[root@vlmat ~]# rpm -Vf /etc/samba/smb.conf
[root@vlmat ~]# echo $?
0
md5sumへの変更は反映されず、戻りコードも変更されません。
smb.confはrpmデータベースにありますが、パッケージ全体をチェックしても結果は得られません。
[root@vlmat ~]# rpm -qf /etc/samba/smb.conf
samba-common-3.6.23-35.el6_8.x86_64
[root@vlmat ~]# rpm -V samba-common
[root@vlmat ~]#
このrpmで他の設定ファイルを編集した後:
[root@vlmat ~]# rpm -V samba-common
S.5....T. c /etc/sysconfig/samba
SHA256の合計は実際にはデータベースの合計とは異なります。
[root@vlmat ~]# rpm -ql --dump samba-common | grep smb
/etc/samba/smb.conf 9778 1461617087 2474992be3adf11ef60aa754151f19b5756aaf9919cd6eacbd3f6b75c303dbb1 0100644 root root 1 0 0 X
[...snip..]
[root@vlmat ~]# sha256sum /etc/samba/smb.conf
270cd0ca5bce64448c31dc6c8e01d12f3d1217b8c208008a1dd1ddc976714774 /etc/samba/smb.conf
この方法が以前に動作していたことを覚えていますが、何が変わったのかはわかりません。
編集する:
この問題を解決しました。バッシュスクリプトファイルのsha256チェックサムがデータベースのsha256チェックサムと同じであれば、テンプレートはコピーされますが、上記の方法がうまくいくと思います。表示している構成ファイルではなく、1つの構成ファイルに対する変更が表示されるのはなぜですか?
答え1
rpm 仕様ファイル作成者は、基本コンテンツをオーバーライドして、そのファイルの検証を確認できます。例えば、
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/samba/smb.conf
ファイルのmd5sum(サイズまたはmtime)が確認されていないことを示します。これらの内容はデータベースに記録され続けますが、-V
操作中は変更は表示されません。-v
リストに追加することで、すべての確認を一覧表示できます-V
(たとえこれがない場合は、私のrpmにmd5 diffが表示されますが)。
$ rpm -Vvf /etc/samba/smb.conf | grep /etc/samba/smb.conf
......... c /etc/samba/smb.conf
答え2
このような構成ファイルはsmb.conf
システム管理者が操作することが多いため、rpm
何が変わるのかを確認する必要はありません。 「stock」は、最初のインストール時にインストールされたものだけです。smb.conf
最初にインストールしたバージョンがsamba
変更された場合は、smb.conf
このファイルの内容が異なる場合があり、システム管理者がそれを変更した場合は、これらの/etc/smb.conf
(新しい!)インベントリ値が表示されます。に表示されることがあります/etc/smb.conf.rpmnew
。
smb.conf
構成管理で含める項目を指定し、その状態から外れたときにのみ構成を変更するようにしたいですか?これにより、時間の経過とともにインベントリ構成リストを維持する必要がある複雑さが回避され、smb.conf
インベントリまたは構成管理で指定されたバージョン以外の項目が生成される状況をよりよく処理できます。