📜  jumpssh 执行多个命令 - Python (1)

📅  最后修改于: 2023-12-03 15:32:26.596000             🧑  作者: Mango

使用 jumpssh 在多个服务器上执行命令

jumpssh 是一个 Python 库,可以让你在多个服务器上无缝执行命令。这非常适合那些需要在多台服务器上部署和管理应用程序的 DevOps 工程师。

安装

安装 jumpssh 很简单,只需使用以下命令:

pip install jumpssh
使用方法

开始之前,你需要有 SSH 私钥并添加到你的本地 ssh-agent 中。这可以通过以下方法完成:

ssh-add ~/.ssh/my-ssh-key

然后,你可以这样使用 jumpssh:

from jumpssh import SSHSession

# server 1
server1 = SSHSession('user1', ' jump.server.com')
server1.open()

# server 2
server2 = server1.get_remote_session('user2', 'server2.internal.local')
server2.open()

command_output = server2.run_command('ls -l')
print(command_output)
执行多个命令

如果你需要在多个服务器上执行多个命令,你可以使用以下代码:

from jumpssh import SSHSession

servers = [
    {'user': 'user1', 'host': 'jump.server.com'},
    {'user': 'user2', 'host': 'server2.internal.local'},
    # add more servers here
]

# open all servers
ssh_sessions = []
for server in servers:
    ssh_session = SSHSession(server['user'], server['host'])
    ssh_session.open()
    ssh_sessions.append(ssh_session)

# run commands on all servers
for ssh_session in ssh_sessions:
    command_output = ssh_session.run_command('ls -l')
    print(command_output)

# close all servers
for ssh_session in ssh_sessions:
    ssh_session.close()

这将在服务器列表中的所有服务器上执行命令 ls -l,并列印输出。

总结

jumpssh 可以使 DevOps 工程师更容易地在多个服务器上部署和管理应用程序。通过这种便利的方法执行命令,你可以更快地完成任务,并减少手动输入命令的时间。