Execute o script em um servidor remoto contido no lado do cliente

4

Estou tentando descobrir como gerenciar com mais facilidade meus servidores. Gostaria de saber se posso disponibilizar meus scripts para todos os servidores sem copiá-los para os servidores.

Eles estão localizados no meu computador (lado do cliente),

bash-3.2$ ls -l my_local_script
-rwxr--r--  1 mario  staff  554 Jan  9 13:35 my_local_script

Sempre faço login remotamente com meu terminal usando SSH

bash-3.2$ ssh [email protected]
[email protected]'s password:
[root@prodsrvr00 ~]#

Uma vez que eu esteja logado no servidor, eu gostaria de saber se existe alguma maneira de executar o script como se estivesse disponível localmente sem copiá-lo para o servidor.

[root@prodsrvr00 ~]# my_local_script

Como é uma rede NAT, não consigo voltar ao meu computador (o cliente).

    
por mrgamertag 10.01.2017 / 00:16

1 resposta

5

Para fazer isso depois de fazer login no servidor remoto, faça:

ssh <local_machine_where_script_resides> "cat <Full_path_to_my_local_script>" | bash

substitua "bash" por qualquer que seja o intérprete exigido pelo seu script (I wouldn't recommend this way and prefer below)

Existe uma maneira de fazer isso sem efetuar login na máquina remota:

ssh <remote_machine> "bash -s" -- < ./my_local_script "Arg1" "Arg2"

No seu caso, é:

ssh [email protected] "bash -s" -- < ./my_local_script "Arg1" "Arg2"

Gostaria também de sugerir opções como puppet , chef , ansible etc.,.

    
por 11.01.2017 / 06:03