저는 여기에 처음 왔으며 Linux 서버의 대규모 원격 구성에 대해 흥미로운 질문을 하고 싶었습니다.
Ubuntu를 새로 설치하고, 인터넷에서 공개적으로 액세스할 수 있고, Authorized_keys에 SSH 키가 있고, 각 서버에 대한 sudo 비밀번호가 있는 100개의 서버에 대한 IP 주소 목록이 제공된다고 상상해 보세요. 이러한 서버를 구성하고 OpenVPN을 설치하는 방법을 설명합니다.
Puppet은 새 서버에 설치되지 않으며 SSHD만 활성화됩니다.
답변1
가장 쉬운 방법은 sudo
서버 이름/IP 및 비밀번호 목록을 얻는 것입니다.
server1 pass1
server2 pass2
server3 pass3
...
server100 pass100
그런 다음 파일을 반복하고, 서버와 비밀번호를 변수로 읽고, 다음을 ssh
사용하여 서버에서 원격 명령을 실행할 수 있습니다.
while read server pass; do
ssh "$server" sudo -S apt-get install network-manager-openvpn <<<"$pass"
done < file
옵션을 사용하면 표준 입력에서 비밀번호를 전달할 -S
수 있습니다 .sudo
-S, --stdin
Write the prompt to the standard error and read the password
from the standard input instead of using the terminal device.
The password must be followed by a newline character.
다음은 <<<
bash(및 기타 쉘) 트릭입니다.여기에 있는 문자열.