Faça login remotamente em vários computadores e execute um script python

0

Atualmente, estou tentando configurar a renderização de rede com o Blender usando computadores em redes diferentes. Eu fiz um script que lança o liquidificador e se conecta ao computador do host. Meu problema é que preciso logar em todos esses computadores remotamente para iniciar o script e não tenho certeza do que usar para fazer isso. Idealmente, eu gostaria de poder fazer isso com um único pressionamento de tecla, em vez de ter que fazer login em cada computador separadamente para iniciar o script.

    
por QuantumPie 26.06.2016 / 21:55

2 respostas

1

Outra opção é Ansible . Como o SaltStack, o Ansible é uma solução de gerenciamento de configuração. O Ansible foi construído literalmente para executar comandos em várias máquinas remotas.

Ansible é legal porque você não precisa instalar nada nas "máquinas de destino". Basta instalá-lo na máquina host (ou seja, seu computador) e ele usa o SSH para fazer login nas máquinas de destino e executar comandos da shell nelas.

Aqui estão as instruções para instalar o Ansible no Ubuntu .

Digamos que você queira executar seu script em duas máquinas de destino, em ip1 e ip2 . Você pode criar um manual Ansible, playbook.yml , da seguinte forma:

---
- hosts: "ip1:ip2"
  user: "my_login_user"

  tasks:
    - name: "execute my script"
      script: my_script.sh

Em seguida, crie seu script, my_script.sh ou my_script.py ou qualquer outra coisa, no mesmo diretório que playbook.yml .

Por fim, execute o seguinte na linha de comando:

ansible-playbook -u my_login_user -i "ip1,ip2" --private-key=<path_to_my_private_ssh_key> playbook.yml

Se você tiver acesso SSH às máquinas de destino por meio desse usuário e da chave SSH, o Ansible fará SSH nelas e executará seu script. Você pode estender isso para quantas máquinas quiser.

    
por kylebebak 24.07.2017 / 16:15
0

Uma opção disponível é usar pilha de sal para executar o mesmo comando em cada minion . Depois de adicionar sal a cada computador, você pode executar o mesmo comando em cada máquina com algo como

salt '*' cmd.exec_code python 'import sys; print sys.version'

Se você estiver usando o addon de renderização de rede do blender, você também pode configurar um arquivo de mesclagem para ter a renderização de rede ativada e configurada como um cliente, então inicie o blender e abra o arquivo de configuração quando o computador estiver ligado.

Se você planeja renderizar bastante, talvez esteja interessado em fazer um pouco mais de configuração e criar um farm de renderização. Um dos desenvolvedores do blender é o flamenco .

    
por sambler 27.06.2016 / 07:44