Alternativa baseada em Javascript para Fabric

8

Existe uma ferramenta DevOps semelhante ao tecido com JavaScript como linguagem de script? Estou especificamente interessado no lado da execução remota.

A maioria das ferramentas que encontrei dependem de python (por exemplo, fabric ) ou Ruby (por exemplo, Capistrano, Chef). No entanto, na minha equipe, não usamos esses idiomas para mais nada. Embora essas linguagens possam ser ótimas, elas não são tão universais quanto o JavaScript no setor de desenvolvimento web.

Menciono tecido porque é ideal para o que eu quero, exceto que eu tenho habilidades mínimas em python (infelizmente).

Henry
fonte
2
A que tecido você está se referindo? Poderia obter um link? É este MySQL Fabric ? É ideal para "o que você quer", mas o que você quer?
James Shewey
2
@JamesShewey Atualizei minha publicação. fabfile.org . Thx
Henry

Respostas:

1

Shipit é o que você está procurando.

O Shipit é um mecanismo de automação e uma ferramenta de implementação criada para o node / iojs.

O Shipit foi construído para ser uma alternativa de Capistrano para pessoas que não conhecem o ruby ​​ou que tiveram alguns problemas com ele. Se você deseja gravar tarefas em JavaScript e aproveitar o ecossistema de nós, o Shipit também é para você.

Você pode automatizar qualquer coisa com o Shipit, mas na maioria das vezes você desejará implantar seu projeto usando a tarefa de implantação do Shipit.

vaughan
fonte
6

Fabric (e Capistrano, presumivelmente a ferramenta Ruby sem nome que você encontrou) são um pouco incomuns, pois são executores de tarefas com recursos extras para executar tarefas facilmente em hosts remotos. Não conheço outras ferramentas populares que fazem exatamente a mesma coisa, mas, dependendo das suas necessidades, existem algumas outras opções que podem funcionar para você.

Grunt e Gulp são os principais executores de tarefas no ecossistema Javascript. Embora não tenham sido projetados especificamente para implantar software, ambos têm sistemas baseados em plugins que permitem fazer isso, e você encontrará muitos artigos de pessoas que usam um deles . Por exemplo, este tutorial usa o grunt-sshplug - in para integrar ssh com grunt, enquanto este depende gulp-rsync.

O uso de executores de tarefas para implantar código tende a ser uma abordagem preferida pelos desenvolvedores que estão usando um chapéu de operações. Quando você pergunta a um engenheiro de operações, é mais provável que sugira invadir esse comportamento em uma ferramenta de configuração. Isso pode assumir várias formas (por exemplo, empacotar seu aplicativo em um rpm ou deb e instalá-lo como qualquer outro software), mas vou focar no que acho que seria o método mais simples e direto para você.

O Ansible é ostensivamente uma ferramenta de gerenciamento de configuração, mas realmente brilha na orquestração de tarefas , que eu definiria como "executando um conjunto de ações em um conjunto de servidores". A documentação oficial é um bom lugar para começar, mas para lhe dar uma idéia de como isso pode ser, você pode ter um manual (um arquivo YAML que define um conjunto de tarefas) como este:

- hosts: webservers
  tasks:
    - name: update code checkout
      git:
        repo: ssh://[email protected]/mylogin/hello.git
        dest: /var/www
        version: master

    - name: restart webserver
      command: restart-command-you-run

Quando você executa esse arquivo ansible-playbook, ele pesquisa sua lista de hosts (tão simples quanto um arquivo ini, mas também pode ser uma lista dinâmica escrita em qualquer linguagem de programação) para determinar em que servidores existem e em quais grupos eles estão. execute as tarefas definidas nos servidores para os quais você diz.

Agora, você especificou que queria permanecer no ecossistema Javascript. No entanto, embora o Ansible seja algo novo para você, ele não possui todas as complexidades de outra linguagem de programação, pois as configurações são escritas em YAML. Ele também permitirá que você faça muito mais tarde e, diferentemente de vários de seus concorrentes, usa ssh para se comunicar, então há muito pouca configuração envolvida (nada para instalar nas máquinas remotas).

Boicote SE para Monica Cellio
fonte
1
Muito útil obrigado. (e sim, eu estava referindo-se a Capistrano - Eu atualizei meu post)
Henry