2017-01-19 8 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를 하나 하나 수동으로 다시 시작하여 상황을 완전히 제어 할 수있는 완전한 Anework 플레이 북을 실행하고 싶습니다.

변경할 수있는 방법이 있습니까? 대체 MongoDB 패키지일까요? 또는 스크립틀릿을 사용하지 않으려면 약간의 yum/rpm 명령 옵션을 사용 하시겠습니까?

간단한 .tar.gz 설치로 전환 할 수 있다는 것을 알고 있지만 이것이 최후의 수단입니다.

답변

2

rpm을 처음 다운로드하고 rpm을 사용하여 수동으로 설치하는 경우; RPM을 man 페이지에서

rpm -Uvh mongodb***rpm --nopostun 

: 당신은 --nopostun 옵션을 사용할 수 있습니다

--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). 

가 AFAIK yum--nopostun 및 다른 플래그를 처리 할 수 ​​없습니다.

+0

나는 현재 yum-plugin-tsflags를 조사하고 있는데, 아마 이것을 처리 할 수있을 것이다. – beevee

+0

예, 실제로 도움이 될 수 있습니다. 그러나 조심하십시오; 'yum upgrade --nopostun'을 실행하면 (yum가 이해한다고 가정); 그는 아마도 그가 설치할 모든 RPM을위한 모든 postun 스크립트를 비활성화 할 것입니다 ... –

+3

yum-plugin-tsflags는 다음과 같이 작동합니다 : yum -y --setopt = tsflags = noscripts mongodb-org 설치 – beevee