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


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.