서버 구성 "설치 스크립트"에 대한 모범 사례는 무엇입니까? [폐쇄]

서버 구성 "설치 스크립트"에 대한 모범 사례는 무엇입니까? [폐쇄]

다양한 "표준" 패키지(Apache, PHP, MariaDB, 여러 프로그래밍 언어)와 여러 웹 애플리케이션(Moodle 포함)으로 구성되고 구성 요소의 git 저장소에서 설치되는 웹 애플리케이션을 실행하기 위해 서버를 설정해야 합니다. (패키지 버전이 너무 오래되었거나 존재하지 않기 때문입니다).

현재 우리는 이를 위해 Debian을 사용하고 있지만 (다른 내부 서버를 더 잘 수용하기 위해) 기본 패키지가 사용할 수 있을 만큼 충분히 업데이트되면 향후 어느 시점에 Scientific Linux로 전환할 수도 있습니다.

많은 시스템과 마찬가지로 첫 번째 버전은 (최소한의 OS 설치 후) 패키지를 설치하고 git 저장소 등에서 다운로드하기 위한 빠르고 더러운 셸 스크립트로 시작되었으며 어떤 작업을 시도할 프로젝트 시간이 없었습니다. 솔루션을 설치하십시오.

시간이 지남에 따라 두 번째 반복은 점차적으로 이 기반을 바탕으로 구축되었으며 이제는 필요한 모든 구성 요소를 다운로드하고 웹 및 DB 서버를 구성하고 Moodle을 설정하는 등의 작업을 수행하는 1100줄(!) 대화형 쉘 스크립트로 발전했습니다.

나는 이 스크립트가 상당히 강력하고 해킹적이지 않다고 생각하지만, 이 프로세스를 수행하는 이상적인 방법은 아니라고 확신합니다. 제가 고려한 한 가지는 읽기/편집/업데이트를 더 쉽게 하기 위해 스크립트를 각 기능(적어도 기능은 있음)에 대해 별도의 파일로 나눈 다음 이를 올인원 설정 파일로 연결하는 것입니다.

아니면 내가 괴물을 만들었고 그러한 소프트웨어의 설치 및 구성을 관리하는 더 나은 방법이 있어야 합니까?

내가 고려한 다른 가능성은 다음과 같습니다.

내 소프트웨어 설치 프로세스를 일종의 데비안 패키지로 변환할 수 있나요? dpkg-reconfigure(또는 이와 유사한 것?)를 사용하여 관리자에게 필요한 설정을 쿼리하는 것이 가능하지만 안타깝게도 저는 이에 대한 경험이 없습니다. 이는 일부 필수 "패키지"를 데비안 패키지 종속성으로 추가하는 대신 git 저장소에서 다운로드해야 하기 때문에 가능합니다.

이 특정 작업을 위해 쉘 스크립트에 의존하기보다는 기존의 다른 소프트웨어 관리 또는 스크립팅 시스템을 고려해야 합니까?

관련 정보