Distribuindo uma ferramenta de linha de comandos personalizada para servidores corporativos

2

Recebi a tarefa de criar uma ferramenta de linha de comando que forneceremos aos clientes corporativos para que eles possam usar a API para enviar dados para nossa plataforma. A API trabalha com solicitações cURL padrão, então eu posso fazer a maior parte da funcionalidade básica com script bash simples, embora eu gostaria de fornecer algo que seja sólido e realmente facilite o uso deles e eu não sei o que eu faço não sei. Já faz uns bons 8 anos desde que eu realmente fiz qualquer trabalho sério de sysadmin.

A maioria das boas ferramentas que uso hoje em dia são escritas em Ruby ou Python e possuem um processo de distribuição padrão (Gems, por exemplo). No entanto, sei que o rhel e outras plataformas têm seus próprios gerenciadores de pacotes.

Por fim, a pergunta: No dia e na era de hoje, que método de idioma / distribuição devo considerar para cobrir a maior variedade de plataformas sem precisar criar versões completamente diferentes para cada plataforma?

Eu também adoraria qualquer feedback geral que você tenha sobre a construção de projetos similares, ou links para projetos que você acha que fazem um bom trabalho agora e têm código-fonte aberto que eu poderia ler.

Obrigado antecipadamente!

    
por Jeremy Baker 12.11.2012 / 20:52

1 resposta

1

Bem, sua pergunta é bem ampla, mas tenho escrito ferramentas de sysadmin em python no ano passado. Então, como você está solicitando comentários gerais, aqui estão algumas coisas que encontrei.

Você pode usar urllib2 para escrever sua solicitação curl no código puro de Python. Se você precisar apenas de algumas solicitações REST básicas, poderá consultar as solicitações ou qualquer outro cliente REST python. / p>

Se você precisar dar suporte ao rhel 5 (como eu), você não poderá usar nada que esteja em python > 2,4

Para distribuição: você pode usar setuptools Tudo o que você precisa fazer é criar um script setup.py que informe ao setuptools como fazer a instalação. Você pode então fazer upload de um tarball para pypi

Depois disso, seus clientes podem instalar suas ferramentas com:

easy_install toolname

ou

pip toolname

easy_install ou pip irá fazer o download do tarball do pypi e executar as instruções no script setup.py .

Como alternativa, se você deseja distribuir para servidores corporativos, agora também é possível criar facilmente rpms :

python setup.py bdist_rpm

Isto irá usar yout setup.py e criar um rpm, o mesmo deve ser possível para .deb's (com alguns plugins extras do bdist)

Eu trabalho na Universidade de Ghent, e nós abrimos algumas das ferramentas / bibliotecas de python que escrevemos, por exemplo, você provavelmente começará analisando argumentos de linha de comando, nós escrevemos generaloption.py que estende o utilitário básico python 2.4 optionparser, e oferece algumas novas opções interessantes. (por exemplo, permite que você sobrescreva qualquer opção de linha de comando com uma variável de ambiente por padrão). Também um registrador estendido chamado fancylogger.py

Você pode dar uma olhada no repositório para ver algumas outras coisas que podem ajudar a escrever scripts de sysadmin sob o python 2.4

    
por 18.11.2012 / 03:26