여러 컴퓨터에 프로그램을 배포하는 방법

여러 컴퓨터에 프로그램을 배포하는 방법

약 40대의 쿠분투 13.04 머신에 일부 프로그램을 설치해야 하는데, 최대한 효율적으로 설치를 완료하려면 어떤 옵션이 필요한지 알고 싶습니다.

편집: 저장소를 설정했으며 컴퓨터는 LDAP 인증이나 중앙 집중식 서버 없이 모두 동일한 복제본입니다.

답변1

모든 구성 관리 소프트웨어가 가능합니다. 그것이 바로 그것이기 위한 것입니다. Chef를 살펴보는 것이 좋습니다. 웹페이지의 광고문은 다음과 같습니다.

Chef는 인프라를 코드로 전환하는 자동화 플랫폼입니다. 물리적 서버와 가상 서버에 대해 생각하지 마세요. Chef를 사용하면 이러한 서버와 서버가 제공하는 서비스에 생명을 불어넣는 코드가 실제 자산이 됩니다. 자동화된 인프라는 출시 기간을 단축하고, 규모와 복잡성을 관리하고, 시스템을 보호하는 데 도움을 줍니다.

네트워크가 클라우드, 온프레미스 또는 하이브리드 네트워크에 있든 Chef는 서버 5개, 5,000개 또는 500,000개를 관리하는지 여부에 관계없이 서버와 애플리케이션을 구성, 배포 및 확장하는 방법을 자동화할 수 있습니다. Facebook 및 Amazon과 같은 회사가 미션 크리티컬 과제를 해결하기 위해 Chef를 선택하는 것은 놀라운 일이 아닙니다.

이 영상은 많은 도움이 될 것입니다: http://www.youtube.com/watch?v=0UXh5EnFZrM

홈페이지: http://www.opscode.com/chef/

답변2

Rahul의 매우 좋은 답변을 확장하기 위해 다음 방법을 사용하여 각 컴퓨터에 대한 비밀번호 없는 액세스를 쉽게 설정할 수 있습니다.

  1. 설치하다sshpass로컬 컴퓨터에서:

    sudo apt-get install sshpass
    

    이렇게 하면 비밀번호를 명령줄 인수로 전달할 수 있습니다.

     sshpass -p '<password>' ssh user@server
    
  2. SSH 키 생성

    ssh-keygen -t rsa
    

    빈 비밀번호를 허용하면 작업을 단순화할 수 있습니다(이 답변의 나머지 부분에서는 이미 이 작업을 수행했다고 가정합니다. 보안 문제로 인해 이를 금지하는 경우 알려주시면 그에 따라 수정하겠습니다).

  3. 관심 있는 모든 IP와 해당 사용자 이름 및 비밀번호를 한 줄에 하나씩 포함하는 파일을 만듭니다.

    1.2.3.4 bob bobs_password
    11.22.33.44 hary harrys_password 
    

    이제 sshpass다음을 사용하여 키 파일을 복사합니다.

    while read ip user pass; do 
      sshpass -p "$pass" ssh ssh-copy-id -i ~/.ssh/id_rsa.pub $user@$ip;
    done < ips.txt
    
  4. 이제 비밀번호 없는 액세스가 설정되었으므로 각 컴퓨터에 소프트웨어를 설치하십시오( 기본적으로 $user작동 한다고 가정 ) .apt-get$userroot

     while read ip user pass; do 
       ssh $user@$ip "apt-get install package; 
     done < ips.txt
    

답변3

장기적인 목표를 위해

네트워크에서 실행되는 다양한 *nix 버전을 중앙에서 관리하고 구성의 모든 측면을 관리하는 자동화된 도구를 원하는 경우 다음을 확인해 보세요.

  1. 인형
  2. 요리사
  3. cf엔진3

단기적인 목표를 위해

apt-get일부 패키지를 전달하거나 설치하기 위한 임시 솔루션을 원하는 경우 yum쉘 또는 Perl, Python 스크립트를 사용할 수 있습니다.

이미 비밀번호 없는 인증을 설정한 경우 다음 스크립트를 사용할 수 있습니다.

#!/usr/bin/env bash

Servers_list=/opt/servers_list
PackageName="package-name"

for Host in $(< $Servers_list )
do
    echo "Installing package on $Host"
    ssh "${Host}"  apt-get -y install "${PackageName}"

done

비밀번호 없는 인증이 없으면 expectPython의 도구나 모듈을 사용할 수 있습니다.paramiko

관련 정보