여러 대의 Linux 서버를 한 번에 관리

여러 대의 Linux 서버를 한 번에 관리

몇 개의 Linux 노드로 구성된 작은 클러스터가 있습니다. 공유 NFS가 있고 모든 노드에 공유 SSH 키가 있는 동일한 사용자 계정이 있지만 각 노드에는 자체 파일 시스템과 구성이 있습니다.

중앙 노드에서 모든 노드의 구성을 제어할 수 있기를 원합니다. 일반적인 구성은 대부분 사용자 디렉토리와 /etc또는 에 있는 구성 파일로 구성됩니다 /opt. 때로는 모든 노드에 동일한 패키지를 설치하거나 다른 셸 명령을 실행해야 할 때도 있습니다.

이는 엔터프라이즈 수준의 자동화 시스템이나 기타 복잡한 설치를 거의 정당화하지 않는 소규모 클러스터입니다. 시도하고 테스트한 다른 방법(가급적 가볍고 오픈 소스인 방법)이 있습니까? 아니면 BASH/SSH 해킹을 직접 기반으로 합니까? 감사해요.

답변1

솔트스택을 적극 추천합니다. 유연하고 확장 가능하며 가볍고 무료입니다.

http://www.saltstack.com

답변2

앤서블홈브류를 사용하여 Linux 또는 Mac OS X에서 제어하는 ​​경우 트릭을 수행해야 합니다. 제어 시스템에는 Windows가 지원되지 않습니다. Linux 노드에는 SSH와 Python이 필요하지만 대부분의 Linux 배포판은 기본적으로 Python을 설치하므로 이미 다루었을 것입니다. 당신이해야 할 일은설치하다마스터에서 ansible을 사용할 수 있습니다. 이는 쉬울 것입니다.

23분부터 보세요빠른 시작 비디오더 나은 아이디어를 얻기 위해. 저도 한번 보시는걸 추천드려요임시 명령 소개문서의 섹션:

  • 그룹의 모든 서버(이 경우 atlanta)에서 10개의 병렬 포크로 명령을 실행합니다.

    $ ansible atlanta -a "/sbin/reboot" -f 10
    
  • 패키지가 설치되어 있는지 확인하되 업데이트하지 마세요.

    $ ansible webservers -m yum -a "name=acme state=installed"
    
  • 파일을 여러 다른 서버로 직접 전송하려면:

    $ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
    
  • 모든 웹서버에서 서비스가 시작되었는지 확인하세요.

    $ ansible webservers -m service -a "name=httpd state=started"
    

또한 일부플레이북의.

답변3

명령을 실행하려면 여러 SSH 서버에서 명령을 실행할 수 있는 도구를 사용할 수 있습니다.

그중 일부는 다음과 같습니다.

  1. pssh
  2. 클러스터 SSH

둘 다 데비안과 우분투에서 사용할 수 있습니다.

답변4

노력하다예상하다스크립트. 이는 여러 컴퓨터에서 동일한 작업 실행을 자동화하는 좋은 방법입니다.

예상 스크립트를 사용하면 각 시스템에 수동으로 로그인하여 동일한 작업을 반복해서 수행할 필요가 없습니다. 나는 모든 컴퓨터에서 사용자의 비밀번호를 변경하거나 각 컴퓨터에서 확인 스크립트를 실행하는 등의 작업에 사용합니다.

관련 정보