여기에서 물어봐야 할지 아니면 다른 스택 교환 커뮤니티에서 물어봐야 할지 잘 모르겠지만, Python 구성을 사용하여 서버 목록에서 몇 가지 간단한 명령을 실행하려고 합니다.
명령 코드:
from fabric.api import run
def host_type():
run('uname -s')
uname -s
그러면 다음을 호출하여 모든 Linux 서버에서 명령이 실행됩니다.
$fab -H < ......Comma, separated , Servers , List , Here.....> host_type
이제 문제는 실행 중에 사용자/루트 비밀번호를 묻지 않고 결과를 반환하도록 어떻게 실행/구성하는지입니다. 몇 가지 Linux 명령줄 트릭이 있을 수 있지만 기억이 나지 않습니다.
편집 1:
음, fab 명령에는 -p 옵션이 있지만 각 서버마다 비밀번호가 다르기 때문에 해당 옵션이 작동하지 않을 수 있습니다.
답변1
이를 수행하는 방법에는 두 가지가 있습니다. 백엔드에서 Fabric
사용되므로 openssh
비밀번호 없는 연결을 구성한 경우 아무것도 설정할 필요가 없으며 작동합니다.
또 다른 방법도 매우 간단합니다. env
변수 만 설정하면 됩니다 .
from fabric.state import env
env.user = "user"
env.password = "password"
env.colorize_errors = True
env.connection_attempts = 3
env.disable_known_hosts = True
env.skip_bad_hosts = True
env.parallel = False
env.linewise = True
이것은 트릭을 수행해야합니다. 저는 보통 별도의 파일에 넣어서 import 합니다.
추신: 저는 개인적으로 더 간단한 작업에 paramiko
어떤 라이브러리를 Fabric
사용하는 것이 더 쉽다고 생각합니다.