/var/discourse에 shared만 있고 git 저장소가 아닌 경우 업그레이드 방법

모두 안녕하세요,

이전 관리자가 우리 부서 웹 서버에 설정해 둔 Discourse 인스턴스가 있습니다. 저는 Discourse에 대해 많이 알지 못하지만, 업데이트가 필요하며 다음과 같이 실행할 것을 제안합니다:

        cd /var/discourse
        git pull
        ./launcher rebuild app

하지만 /var/discourse로 cd 명령을 입력하면 해당 디렉터리에는 shared 폴더만 있고, git pull은 당연히 실패합니다(이곳은 git 저장소가 아니기 때문입니다). 어떻게 해야 할까요?

새 VM에서 클린 인스톨을 수행하고, 백업을 만든 후 이를 새 설치 환경에 복원해야 합니다.

이 답변이 마음에 들지 않는다면, 해당 환경을 설정한 담당자를 불러와서 문제를 해결하도록 하세요.

@pfaffman 새로운 VM이라는 게 무슨 뜻인가요? Discourse용 Docker 이미지인가요? 문제는 Docker를 통해 Discourse를 관리하는 방법을 설명한 매뉴얼을 찾지 못한다는 것입니다.

새 VM은 새로운 가상 서버를 의미하며, 인스턴스가 전용 하드웨어에 있지 않다고 가정합니다.

Discourse가 실행 중이지만 /var/discourse가 비어 있다면, 매우 오래된 설치이거나 지원되지 않는 패키지일 가능성이 있습니다.

어떤 경우든 백업을 생성한 후, 새로운 가상 서버를 시작하고, 표준 설치 가이드를 따르고, 마지막으로 백업에서 복원해야 합니다.

다음과 같이 진행하세요: https://meta.discourse.org/t/discourse-official-standard-installation/142537

사실 그 가능성이 가장 높습니다. 현재 실행 중인 버전은 Discourse 2.1.0입니다(상황을 명확히 하기 위해).

여기서 핵심은 제 인스턴스가 전용 하드웨어(dedicated hardware)에 있다는 점입니다.

즉, 현재 Docker가 관여하지 않는다는 것을 이해했습니다. 적어도 수동으로는요. 설치는 git clone과 설치 스크립트만 사용하는 단 하나의 방식으로 이루어진다는 것을 알게 되어 다행입니다.

제가 걱정하는 것은 모든 것이 실제 물리적 머신(즉, "가상"이 아닌 환경)에서 이루어지고 있는 상황에서, 기존 버전을 어떻게 부드럽게 제거할 수 있느냐는 것입니다. 백업은 이미 완료했습니다. 그건 쉬운 일이었죠. 이제 어떻게 해야 할까요?

이제 다른 머신에 설치하세요. 리소스를 쉽게 확장할 수 있으므로 VM이 권장됩니다. 시스템 요구 사항은 설치 문서에 나와 있습니다.

새로운 설치 환경이 실행되면 해당 백업을 복원하세요.

이 인스턴스는 어떤 종류인가요? 부하가 얼마나 걸리나요? 지속적으로 사용되고 있나요?

아니, 그건 2018년 중반 말의 버전이네요. 업데이트를 절대 하셔야 합니다. 수많은 훌륭한 기능이 누락된 것 외에도, 여러분이 아직 적용하지 않은 치명적인 보안 수정 사항이 꽤 많이 있습니다.

불행히도 저는 다른 머신이 없습니다.

피드백에 감사드립니다. 하지만 그 부분은 의문視하고 있는 것이 아닙니다: 저는 업데이트를 시도하고 있습니다. 저는 어제까지 이 인스턴스의 관리자가 아니었고, 업데이트의 중요성을 잘 알고 있습니다.

모두의 답변에 감사드립니다! 기존 관리자에게 물어보니 도움을 주었습니다. Git 저장소가 /var/discourse가 아니라 /var/docker 안에 있었습니다. 그 이후로는 표준 절차를 적용할 수 있었습니다. 이제 최신 릴리스(2.6)로 업데이트되었습니다. 화이팅! :tada:

아하! 그건 아주 오래전(제가 4년 전 Discourse를 사용하기 시작하기 전)에 권장되던 위치였네요.

제 “노인에게 물어보기” 방식이 정말로 효과가 있었네요!

만약을 대비해 문서화를 조금 남겨두는 것을 권장합니다:

echo "it's in /var/docker" > where-is-launcher

좋은 아이디어네요. 아니면

 cd /var/
 ln -s /var/docker discourse

하지만 그렇게 하면 launcher가 혼란스러워할 수 있습니다.

/var/discourse가 이미 존재하고 shared를 포함하고 있으므로 좋은 아이디어가 아닙니다.