2017-01-19 17 views
0

MongoDB RPMパッケージ(バージョン3.4.1の公式repo.mongodb.orgリポジトリによって提供)は、自動的かつ無条件にサーバーオンパッケージアップグレードを再開します。この動作はpostunハンドラーにハードコードされていますアップグレード時のMongoDBの再起動を無効にする(RPMパッケージ)

if test $1 -ge 1                                                  
then                                                     
    /usr/bin/systemctl restart mongod >/dev/null 2>&1 || :                                        
fi 

は、これは、あなたのサーバーをセットアップするための構成管理ツールを使用する場合は特に、不便や危険な行動です。たとえば、サーバーをセットアップしてから、MongoDBを手動で再起動して状況を完全に制御できるように、完全なAnsibleプレイブックを実行します。

これを変更する方法はありますか?代わりのMongoDBパッケージ、多分?あるいは、スクリプトレットを無効にするためのyum/rpmコマンドオプションがあいまいですか?

私は単純な.tar.gzのインストールに切り替えることができますが、これが最後の手段です。

答えて

2

rpmを最初にダウンロードして、rpmを使用して手動でインストールする場合は、 RPMのmanページから

rpm -Uvh mongodb***rpm --nopostun 

:あなたは--nopostunオプションを使用することができますyum私の知る限り

--noscripts 
    --nopre 
    --nopost 
    --nopreun 
    --nopostun 
    --nopretrans 
    --noposttrans 
     Don't execute the scriptlet of the same name. The --noscripts option is equivalent to 
     --nopre --nopost --nopreun --nopostun --nopretrans --oposttrans 
     and turns off the execution of the corresponding %pre, %post, %preun, %postun %pretrans, and %posttrans scriptlet(s). 

--nopostunや他のフラグを扱うことができません。

+0

私は現在yum-plugin-tsflagsを探していますが、おそらくこれを処理できます。 – beevee

+0

本当にそれはあなたを助けるかもしれません。しかし注意してください。 'yum upgrade --nopostun'を実行すると(yumが理解していると仮定して);彼はおそらく彼がインストールするすべてのRPMのすべてのpostunスクリプトを無効にするでしょう... –

+3

yum-plugin-tsflagsは私のためにこのように働きます:yum -y --setopt = tsflags = noscripts install mongodb-org – beevee

関連する問題