以下を使用してキーをインポートできます。
rpm --import / path / to / key
しかし、このキーを既にインポートしたかどうかを後でどのように確認できますか?再インポートしようとするとエラーで失敗し、Puppetを使用してキーをインストールするため、これを回避しようとしています。
以下を使用してキーをインポートできます。
rpm --import / path / to / key
しかし、このキーを既にインポートしたかどうかを後でどのように確認できますか?再インポートしようとするとエラーで失敗し、Puppetを使用してキーをインストールするため、これを回避しようとしています。
回答:
を使用して、キーがすでにインポートされてrpm -qi gpg-pubkey-<version>-<release>
いるかどうかを再確認できます。インストールされている場合、rpmはそれに関するすべての情報を提供します。インストールされていない場合は、戻り値1で終了するため、パペットレシピにunless
パラメーターを追加できます。
exec { "rpm --import /path/to/package":
# ...
unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}
KEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
インポートされるすべてのキーは、rpmdbエントリを追加しますgpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>
。gpg-pubkey
rpmdb でその名前()と適切なバージョン(16進数のキーフィンガープリントの最初の8文字)を確認するだけです。
rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1
(取得する方法を含む基準、FINGERPRINT
:をrobinbowes.com/article.php/20081107174415581)
KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID