O uso do Capistrano para tarefas de manutenção de usuários no laboratório universitário é viável?

1

Eu tenho procurado ferramentas para substituir alguns scripts legados por criar e manter contas em um ecossistema de laboratório de computadores da universidade que consiste em coisas como:

  • LDAP e Kerberos para autenticação
  • Armazenamento inicial do usuário e páginas da web
  • Entradas em um banco de dados SQL
  • Cotas de impressão
  • Listas de e-mail, etc.

Eu também gostaria de automatizar a associação de máquinas e VMs para Kerberos e Puppet, se possível.

Encontrei o Capistrano, e embora o princípio básico de executar tarefas em hosts remotos por meio do SSH pareça se ajustar, e a DSL em Ruby pareça muito boa, descobri que a maioria da documentação está relacionada à implantação de aplicativos, não a tarefas genéricas . Eu também não estou ciente de nenhuma boa maneira de parametrizar tarefas para que eu possa passar as informações do usuário para criação.

Alguma coisa de Capistrano está faltando ou não é a ferramenta correta para esse trabalho? Existem alternativas mais úteis?

    
por danielkza 28.10.2013 / 01:23

1 resposta

2

O Capistrano, como você descobriu, é basicamente uma ferramenta de implantação. O que parece que você precisa é de uma ferramenta de gerenciamento de configuração. Puppet, Chef, Salt e Ansible são exemplos de ferramentas CM. Eles usam todos os produtos muito capazes, mas, para a sua situação, eu recomendo que você dê uma olhada primeiro na Ansible.

Todas essas linguagens têm algum tipo de linguagem declarativa com a qual você pode descrever o estado desejado de seus sistemas. Esta funcionalidade sozinha serve para alguns fluxos de trabalho, mas em alguns casos, você só quer que seu CM execute um conjunto de comandos sequencialmente. É onde o Ansible se destaca - ele permite que você declare os bits de configuração para partes do seu sistema, e então especifique os comandos do shell para executar também.

Um outro benefício enorme que o Ansible tem sobre as outras opções é que o único requisito no lado do cliente é um interpretador python e um servidor ssh é isso - nenhum agente é necessário.

    
por 28.10.2013 / 02:39