PowerShell의 "일대다" 원격 기능에 해당하는 Linux

PowerShell의 "일대다" 원격 기능에 해당하는 Linux

저는 Windows 관리팀에서 왔으며 Linux(Debian)에 대해 더 알고 싶습니다. 온라인으로 검색한 후에도 답을 찾을 수 없는 가장 긴급한 질문 중 하나는 다음과 같습니다. Windows용 PowerShell에서와 같이 소위 "일대다" 원격을 구현하는 방법은 무엇입니까?

이를 기본으로 분류하면 다음과 같습니다.

리눅스에 대한 나의 생각:

  • 서버에 SSH를 통해 접속하고 명령을 입력할 수 있습니다.
  • 나는 결과를 얻었다. 10개 서버 환경의 경우 각 서버에 명령을 보내려면 (perl/python?) 스크립트를 작성해야 합니까?

Windows에서의 내 경험:

  1. 명령을 입력한 다음 "호출 명령"을 사용하여 이를 여러 서버(아마도 텍스트 파일에서)로 "전송"하여 동시에 실행하고 결과를 얻을 수 있습니다(추가 작업을 위한 개체로).

  2. 백그라운드에서 연결을 유지하면서 여러 세션을 설정하고 필요에 따라 원격 입력 및 출력을 통해 해당 세션에 선택적으로 명령을 보낼 수도 있습니다.

(셰프, 인형 등을 들어보신 적이 있으신가요?)


Update 2019:
많은 시도 끝에 - 추천합니다렉스(바라보다다음 코멘트) - 설정이 간단하고(실제로는 ssh만 필요하고 다른 것은 필요 없음) 사용이 간단합니다(약간 알고 있는 경우).진주더 좋지만 선택 사항입니다
.)렉스넌 할 수있어애드 혹명령을 내리고 현실로 나아가다구성 관리(...의미: 무엇보다도 CM이지만 임시 작업에도 적합합니다.) 웹사이트는 오래된 것 같지만 현재(2019년 1월 현재) 활발하게 개발되고 있으며 IRC 채널도 활성화되어 있습니다.

새로운 Windows와 함께SSH를 열어더 많은 가능성이 있습니다

당신은 시도 할 수 있습니다: rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

답변1

일반화하다

  • Ansible은 DevOps 도구이자 PowerShell의 강력한 대안입니다.
  • RunDeck은 그래픽 인터페이스로 매우 편리합니다.
  • 어떤 사람들은 RunDeck+Ansible을 함께 실행합니다.

클러스터

초보자의 경우 여러 서버에 원격 명령을 보내려면 다음을 권장합니다.클러스터

clusterssh데비안에 설치 하려면 :

apt-get install clusterssh

다른클러스터시 튜토리얼:

ClusterSSH는 XTerm 및 SSH와 같은 표준 Linux 도구를 위한 Tk/Perl 래퍼입니다. 따라서 라이브러리가 존재하는 거의 모든 POSIX 호환 운영 체제에서 실행됩니다. 저는 Linux, Solaris 및 Mac OS X에서 실행했습니다. xterm 및 OpenSSH와 X11::Protocol(Debian 또는 Ubuntu의 libx11-protocol-perl) 외에도 Perl 라이브러리 Tk(Debian 또는 Ubuntu의 perl-tk)가 필요합니다.

안시푸르

다중 시스템 관리를 위한 원격 프레임워크의 경우,안시푸르Puppet에 대한 매우 흥미로운 대안입니다. 더 간소화되었으며 SSH를 통해 작동하므로 전용 원격 에이전트가 필요하지 않습니다(RedHat에서도 인수됨).

플레이북은 명령줄 옵션보다 더 장황합니다.

그러나 Ansible을 사용하려면 간단한 설치를 수행하고 클라이언트 목록 텍스트 파일을 설정해야 합니다.

그런 다음 모든 서버에서 명령을 실행하려면 다음을 수행하는 것만 큼 간단합니다.

ansible all -m command -a "uptime"

출력의 형식도 매우 잘 지정되어 있으며 규칙/서버별로 구분되어 있으며 백그라운드에서 실행되는 동안 파일로 리디렉션되어 나중에 참조할 수 있습니다.

간단한 규칙으로 시작할 수 있으며 Linux에서 성장하고 인프라가 커지면 Ansible을 사용하는 것이 더 흥미로워질 것입니다. 따라서 PowerShell보다 더 많은 기능을 수행합니다.

예를 들어, 저는 Linux 서버 업그레이드를 위한 매우 간단한 플레이북을 작성했습니다.

---
- hosts: all
  become: yes
  gather_facts: False
  tasks:
   - name: updates a server
     apt: update_cache=yes
   - name: upgrade a server
     apt: upgrade=full

또한 포괄적인 전략을 쉽게 작성할 수 있는 많은 모듈을 정의합니다.

모듈 인덱스 - Ansible 문서

또한 커뮤니티가 개발한 견고한 정책을 검색하기 위한 흥미로운 공식 허브/"소셜" 저장소 네트워크가 있습니다.앤서블 갤럭시

Ansible도 널리 사용되며 내 프로젝트와 같이 github에서 많은 프로젝트를 찾을 수 있습니다.FreeRadius 설정.

Ansible은 무료 오픈 소스 프레임워크이지만 유료 웹 패널 인터페이스도 있습니다.안시푸르타그런데 라이센스 비용이 꽤 비쌉니다.

이제 RedHat이 인수한 후 tower에는 다음과 같은 오픈 소스 버전도 있습니다.AWX.

보너스로 Ansible은 Windows 서버도 관리할 수 있지만 저는 사용해 본 적이 없습니다.

또한 네트워크 장치(라우터, 스위치 및 방화벽)를 관리하는 기능이 있어 매우 흥미로운 자동화 턴키 솔루션입니다.

앤서블 설치 방법

렌드케

다시 한번 말씀드리지만, 사용하기는 쉽지만 Ansible만큼 강력하지는 않은 원격 프레임워크를 위해 저는 다음을 권장합니다.렌드케.

이는 많은 일반적인 일상 작업을 자동화하고 시스템 운영자나 헬프 데스크 직원에게 간략한 보기를 제공할 수 있는 매우 강력한 다중 사용자/로그인 그래픽 인터페이스입니다.

명령을 실행하면 서버/작업별로 분류된 출력 창도 제공됩니다.

백그라운드에서 여러 작업을 원활하게 실행하고 나중에 보고서와 출력을 볼 수 있습니다.

런 데크 이미지

RunDeck 설치 방법

어떤 사람들은 웹 인터페이스로 Ansible+RunDeck을 실행합니다. 모든 경우에 이에 적합한 것은 아닙니다.

Ansible 및/또는 RunDeck을 사용하는 것은 인프라 문서의 형식이나 일부로 해석될 수 있으며 운영/레시피/플레이북은 시간이 지남에 따라 복제되고 개선될 수 있다는 것은 말할 필요도 없습니다.

마지막으로 중앙 명령 서버에 대해 이야기하면 이 작업 전용 서버를 만들겠습니다. 실제로 기술 용어는 박스 점프입니다.올바르게 설정되면 "박스 점프"로 보안이 향상될 수 있습니다..

답변2

이 작업을 대화형으로 수행하려는 경우 terminator이를 사용하여 명령이 여러 터미널에 브로드캐스트되도록 할 수 있습니다.

여기에 이미지 설명을 입력하세요.

바라보다:동시에 여러 탭/셸에서 동일한 Linux 명령을 실행하는 방법은 무엇입니까?

답변3

호스트 목록에 연결하고 모든 호스트에서 병렬로 명령을 실행하는 SSH 클라이언트인 pssh(또는 )를 사용할 수도 있습니다 .parallel-ssh

$ parallel-ssh -i -H "host1 host2" uname -a
[1] 11:37:12 [SUCCESS] host2
Linux host2 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[2] 11:37:12 [SUCCESS] host1
Linux host1 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

답변4

KDE를 사용한다면 다른 방법이 있습니다.
- Konsole 창을 엽니다.
통신하려는 각 서버에 대해:
- 탭 열기
- 서버에 대한 SSH 연결 설정
편집 메뉴에서 모든 탭에 입력 복사를 선택합니다.

이 탭에 입력하는 모든 명령은 모든 서버에 복사됩니다.
한 탭에서 다른 탭으로 전환하여 다른 결과를 볼 수 있습니다.

참고: 나는 KDE 영어 버전을 사용하지 않기 때문에 내 메뉴 라벨(따옴표 포함)이 틀릴 수도 있습니다.

관련 정보