서버가 실제로 작동하는지 확인하기 위해 새로 설치된 서버의 전제 조건을 확인하는 방법

서버가 실제로 작동하는지 확인하기 위해 새로 설치된 서버의 전제 조건을 확인하는 방법

새 서버를 설치할 때 일반적으로 서버가 실제로 작동하는 데 필요한 사항을 잊어버리는 경향이 있습니다. 처음으로 서버를 시작하기 전에 누락된 기능을 확인하고 실제 사용자가 서버에서 실행되도록 일종의 자동 비행 전 검사를 갖고 싶습니다.

로드 밸런서 뒤에서 Tomcat이나 PHP와 같은 플랫폼을 사용하여 애플리케이션 서버 풀을 실행하고 있다고 가정해 보겠습니다. 서비스에는 일반적으로 다음 중 몇 가지 사항이 필요합니다.

  • 설치된 소프트웨어(wget 또는 ImageMagick 등과 같은 외부 프로그램)
  • 설치된 모듈(예: libcurl, mod_rewrite, Oracle 등)
  • 구성 파일(예: tnsnames, php.ini 등)
  • 마운트된 파일 시스템, 어딘가에 심볼릭 링크, 일부 디렉토리에 대한 특정 권한
  • 특정 네트워크 포트는 머신에서 연결할 수 있어야 합니다(예: mysql 또는 http 프록시).
  • 특정 네트워크 포트는 컴퓨터에서 연결할 수 있어야 합니다(이는 rsync 또는 포트 8080과 같은 다른 컴퓨터에서 테스트해야 함).
  • 특정 프로세스를 시작해야 함
  • cronjob이 존재해야 합니다.

나는 대부분의 조건에 대해 단위 테스트를 작성하고 설치 후 각 컴퓨터에서 실행하는 것이 가능할 것이라고 가정합니다. 그러나 이러한 작업을 위해서는 테스트를 작성하기 위한 특수 쉘과 같은 언어를 사용하는 등 보다 구체적인 도구를 선호합니다. (모든 것을 테스트하려면 다양한 도구가 필요하다는 점을 고려하면 여기에는 Perl 스크립트, Java 프로그램 실행, 파일 확인, 권한 확인, confic 파일의 행 등이 포함됩니다).

누락된 항목을 수정할 수 있는 것이 아니라 운영 동료에게 추가 변경을 요청해야 하는지 확인하고 싶다는 점을 덧붙여야 합니다.

답변1

이를 수행하는 방법은 CFengine(그러나 Puppet도 마찬가지로 작동함)을 사용하여 중앙 집중식 구성을 기반으로 개별 노드를 구성하는 것입니다. CFengine은 올바른 순서로 머신의 올바른 구성을 시행하고 계속해서 그렇게 합니다. 예를 들어 프로세스가 중지되면 다시 시작됩니다.

모든 노드에서 스크립트를 사용하여 여러 가지 사항을 확인할 수 있습니다(중앙 저장소의 파일을 읽을 수 있는지, MySQL 클러스터에 대한 연결을 열 수 있는지 등). 이 스크립트는 로드 밸런서에서 상태 확인으로 사용됩니다. 모든 확인이 통과된 경우에만 노드가 로드 밸런서가 기대하는 값을 반환하고 '작동'으로 플래그가 지정되어 트래픽을 처리할 수 있습니다.

답변2

새 시스템의 "준비 상태"를 테스트하는 스크립트를 만들기 전에 빌드 프로세스를 문서화해야 합니다. 프로세스 문서는 확인하려는 체크리스트와 각 서버의 일관된 빌드를 제공합니다. Cfengine과 puppet은 빌드를 자동화하는 훌륭한 방법이지만 이를 사용하려면 구성해야 하는 모든 항목의 목록이 필요합니다.

관련 정보