단일 명령이나 스크립트로 여러 Linux 시스템을 종료하는 방법은 무엇입니까?

단일 명령이나 스크립트로 여러 Linux 시스템을 종료하는 방법은 무엇입니까?

나는 10대 이상의 리눅스 머신을 가지고 있다. 단일 스크립트를 사용하여 모든 시스템을 종료하는 방법은 무엇입니까?

비밀번호와 사용자는 모든 컴퓨터에서 동일합니다.

답변1

앤서블을 사용해 보세요.

앤서블 설치:

apt-get install ansible

호스트 파일에 호스트를 추가합니다.

vim /etc/ansible/hosts
server1
server2
server3

SSH 키를 생성하고 원격 서버에 추가합니다.

ssh-keygen
cat /etc/ansible/hosts | xargs -i ssh-copy-id {}

서버에서 shutdown을 실행합니다.

ansible all -m shell -a "shutdown -h now"

종료 전후에 다음 명령을 사용하여 호스트 가용성을 확인할 수 있습니다.

ansible all -m ping

소스 1, 소스 2

답변2

이를 수행할 수 있는 가능성은 많습니다.

한 가지 옵션은 비밀번호를 묻지 않고 SSH에 비밀번호 대신 SSH 키 쌍을 사용하는 것입니다. 그런 다음 다음을 수행할 수 있습니다.

#!/bin/bash

for server; do ssh $server 'halt; exit'; done

용법:

./script.bash server1 server2 1.2.3.4

또는 다음과 같은 도구를 사용하여 더 나은 접근 방식을 사용할 수 있습니다.또는퍼프 퍼프

답변3

사용자 "shutdown"에 대한 SSH 키를 설정합니다. /etc/passwd를 보면 이 사용자의 기본 셸이 /sbin/shutdown임을 알 수 있습니다. 따라서 로그인하는 동안 종료 명령이 실행됩니다.

답변4

나는 직물을 사용합니다 (http://www.fabfile.org/). Python 스크립트를 작성한 다음 원격 시스템에서 실행할 수 있습니다. 속도가 빠르고 원격 시스템 관리에 적합합니다.

관련 정보