Pergunta

Gostaria de automatizar a criação de links simbólicos nos meus laptops de um aplicativo Simple Rails em execução em um servidor remoto. Eu precisaria executar tarefas de kernel no laptop de qualquer lugar. Isso é possível fazer?

Foi útil?

Solução

Pegue um script do controle remoto e execute -o

Seu servidor pode criar um shell ou script rubi direcionado para ser executado no seu laptop. Seu laptop agora precisa verificar regularmente este script e executá -lo. As vantagens disso são:

  • Isso funciona não apenas para o seu laptop, mas também para qualquer outra máquina que verifique o script.
  • Você não precisa de nenhum outro transporte além de http
  • O servidor não precisa saber do cliente com antecedência
  • Isso funciona para qualquer outra tarefa além de criar links simbólicos sem alterações no lado do cliente.

O lado do cliente pode ser tão simples quanto:

wget -O - "url" | ruby -

ou

wget -O - "url" | sh -

Gerar uma lista de links simbólicos em seu servidor

Seu servidor pode criar uma lista dos links simbólicos necessários. Na sua máquina cliente, você precisaria de um programa que analise essa lista e cria os links simbólicos. As vantagens são:

  • Você não precisa confiar no servidor
  • Seu servidor não pode fazer rm -rf / por acidente
  • Você não precisa de nenhum outro transporte além de http
  • Isso funciona não apenas para o seu laptop, mas também para qualquer outra máquina que verifique a lista.

O lado do cliente pode ser tão simples quanto

wget -O - "url" | ruby -r yaml -e "YAML.load(STDIN).each { |a, b| \`ln -s \"#{a}\" \"#{b}\" \` }"

Outras dicas

Você pode fazer isso montando o sistema de arquivos usando o fusível. É uma coisinha bastante legal, na minha opinião.

Encontre fusível aqui

Editar: Alterou o link para apontar para Fusefs, que é fusível com ligações Ruby, que é o que você precisará se estiver usando o Ruby.

Você pode usar o Puppet que é baseado em Ruby.

Se for apenas sua Laptop e nenhum outro cliente, você pode fazer o servidor SSH no seu laptop e fazer o que precisar. Em geral, não, não é possível que um servidor HTTP faça qualquer coisa na máquina cliente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top