한 컴퓨터에서 모든 컴퓨터로 무언가를 설치하는 방법은 무엇입니까?


9

내 대학 실험실에서 모든 컴퓨터가 LAN에 연결되어 있으므로 한 컴퓨터에서 모든 컴퓨터로 '스파이더'소프트웨어를 설치하고 싶습니다.
가능합니까?


관리자입니까? 그렇지 않은 경우 먼저 허가를 받으십시오.
Thorbjørn Ravn Andersen 님

내가 설치 한 Ubuntu동일한 사용자 이름 (CSLAB)와 같은 passwrod (E201) 내 대학 연구실의 각 컴퓨터에있는 모든 컴퓨터가 동일한 LAN에 연결되어 있습니다. 각 컴퓨터 사용자의 관리자가되는 방법은 무엇입니까?
Abhishek Kamal

1
@AbhishekKamal, 조언의 한마디. 공용 웹 사이트에 실제 사용자 이름 (및 비밀번호 ??)을 게시하지 마십시오. 또한 "E201"이 실제로 관리자 암호 인 경우 훨씬 안전한 것으로 바꾸십시오.
tplive

Ansible 및 clusterssh (아래 언급)와 같은 솔루션은 SSH를 사용하여 관리하려는 컴퓨터에 연결합니다. 자동화가 원활하게 작동하도록 컴퓨터간에 신뢰를 확인하는 암호없는 액세스를 설정할 수 있습니다 (예 : 컴퓨터가 모든 관리 컴퓨터에서 신뢰 됨).
tplive

1
우분투에서 "관리자"는 루트가 될 수있는 사람, 예를 들어 "sudo -s"(그리고 소프트웨어를 설치하기 위해 "apt"를 실행)가 될 수 있습니다. 처음에 왜 이러는거야?
Thorbjørn Ravn Andersen 님이

답변:


14

이를 위해 내가 선호하는 솔루션은 Ansible ( https://www.ansible.com/ )입니다. 가능한 많은 컴퓨터에서 모든 종류의 구성 또는 설치를 자동화 할 수 있습니다. Ansible의 또 다른 장점은 대부분의 구성 및 설치 작업을 수행하기 위해 이미 강력한 스크립트를 많이 제공 한 커뮤니티입니다.

이것은 Ansible을 시작하고 실행 하는 데 매우 이해 하기 쉬운 자습서처럼 보입니다 .

그러나 이것이 여러 컴퓨터에서 실행하려는 일회성 명령 인 경우 Bash로 스크립팅하는 것이 좋습니다 .


12

간단한 명령 몇 개만 실행하면 복잡한 자동화 소프트웨어 (예 : ansible, salt 또는 puppet)를 구성하지 않으려는 경우 사용할 수 있습니다 clusterssh.

명령 행 창을 열어 설치

sudo apt-get install clusterssh

이제 다음과 같이 여러 호스트에 대한 연결을 열 수 있습니다

clusterssh -l username labhost1 labhost2 labhost3

clusterssh는 명령을 입력 할 수있는 창과 연결하는 각 호스트에 대해 하나의 터미널 창을 제공하므로 실제로 어떤 일이 발생하는지 확인할 수 있습니다!

ClusterSSH 예 이 예에서는 오른쪽에 "apt-get update"가 있고 왼쪽에 모든 클러스터 터미널이있는 명령 창을 볼 수 있습니다.

호스트 중 하나에 문제가 있으면 즉시 오류 메시지를보고 해당 터미널을 클릭하여 상황을 해결하십시오.

clusterssh연결할 목록을 작성할 수도 있습니다. 좋아하는 편집기를 열고$HOME/.clusterssh/clusters

collegelab labhost1
collegelab labhost2
collegelab labhost3

그런 다음

clusterssh -l username collegelab

추가 자료


당신이 클러스터 SSH에 대한 제안으로 공정하게, 당신은 아마 :) .. 간단하고 쉽게로 Ansible 명령 행에서 동일한 기능을 수행 할 수있는 인벤토리 파일에 호스트를 넣고, 다음 터미널에서 명령을 실행, 같은ansible inventory -a 'shell command goes here'
tplive

1
@tplive 확실히, 당신은 ssh 명령으로도 그렇게 할 수 있습니다 pssh.... 그러나 clusterssh를 사용하면 즉각적인 피드백과 문제가있을 경우 중지 / 재조정 할 수 있는 방법이 있습니다. 이것은 일에 대한 대안적인 방법 일뿐입니다. 개인적으로 저는 소프트웨어 자동화 (예 : ansible)를 선호합니다.
Robert Riedl

대학 실험실에서 각 컴퓨터는 동일한 사용자 이름과 동일한 암호를가 집니다. 그래서 내가 사용할 수 있습니다 clusterssh또는 ansible그것을 위해?
Abhishek Kamal

@RobertRiedl 그리고 그게 내가 당신의 대답을 찬성했던 이유입니다 .. :)
tplive

1
트윗 담아 가기 암호없는 로그인을 가장 원활하게하려면 공용 ssh 키를 사용 ssh-copy-id하거나 이와 유사한 방법 으로 각 컴퓨터의 authorized_keys 파일에 넣으십시오 .
tplive

0

다음은 네트워크에있는 컴퓨터의 모든 호스트 이름 또는 IP 주소를 알고 있고 공개 키 인증을 사용한다고 가정 한 매우 기본적인 순차적 솔루션입니다. 자세한 내용은 여기를 참조하십시오-https: //man.openbsd.org/ssh-keygen.1

  1. 예를 들어 새 파일 만들기 hosts.txt
  2. LAN에있는 상자의 IP 주소 또는 호스트 이름으로 해당 파일의 각 줄을 채 웁니다.
  3. 파일의 각 줄을 반복하고 호스트에 소프트웨어를 다음과 같이 설치하십시오.

for i in `cat hosts.txt`; do ssh $i apt-get --assume-yes install spyder; echo ; done


@bunnydrug 내 LAB에있는 모든 컴퓨터의 호스트 이름은 CSLAB이고 암호는 E201입니다. 그래서 난에 무엇을 작성해야 hosts.txt파일
Abhishek 카말
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.