Automatizando implantações silenciosas de software no Solaris 10

2

Essencialmente, a pergunta que gostaria de fazer está relacionada à automação de implantações de pacotes de software no Solaris 10.

Especificamente, tenho um conjunto de componentes de software em arquivos tar que são executados como processos daemon depois de serem extraídos e configurados no ambiente host. Muito parecido com qualquer pacote de software do lado do servidor, preciso garantir que uma lista de pré-requisitos seja atendida antes de extrair e executar o software. Por exemplo:

  • Verificando se determinados usuários existem e estão associados a um ou vários grupos de usuários. Se não, crie-os e suas associações de grupo.

  • Verificando se as pastas do aplicativo de destino existem e, caso contrário, crie-as com valores de caminho pré-configurados definidos quando o pacote foi montado.

  • Verificando se essas pastas têm o nível de controle de acesso e a propriedade apropriados para um determinado usuário. Caso contrário, defina-os.

  • Verificando se um conjunto de variáveis de ambiente está definido em / etc / profile, apontou para locais de caminho predefinidos, foi adicionado à variável de ambiente $ PATH geral e, finalmente, exportado para o ambiente do usuário. Outros arquivos incluem / etc / services e / etc / system.

Obviamente, fazer isso para muitas caixas (o objetivo em questão) manualmente pode ser lento e propenso a erros.

Eu acredito que uma alternativa melhor é de alguma forma automatizar esse processo. Até agora eu tenho pensado sobre as seguintes opções e descartá-las por um motivo ou outro.

1) Scripts de shell tradicionais. Só resolvi isso antes, e não tenho muita experiência com eles. Este seria meu último recurso.

2) Scripts Python usando a biblioteca pexpect para analisar a saída do comando do sistema. Essa foi a minha escolha inicial desde que os ambientes Solaris de destino a instalaram. No entanto, quero ter certeza de que não estou reinventando a roda novamente: P.

3) Scripts Ant ou Gradle. Eles podem ser uma opção, já que as caixas também possuem o java 1.5 ativado, e as abstrações do conjunto de arquivos podem ser muito úteis. No entanto, eles podem ficar aquém quando lidando com a verificação / configuração de permissões de usuários e pastas.

Parece óbvio para mim que não sou a primeira pessoa nessa situação, mas parece que não encontro uma estrutura de serviços voltada para esse propósito. Por favor, deixe-me saber se há uma maneira melhor de conseguir isso.

Agradeço pelo seu tempo e ajuda.

    
por Jesús Zazueta 19.11.2010 / 00:09

1 resposta

1

Você provavelmente deseja usar a automação de alterações para isso. por exemplo, Puppet, Chef, cfengine, bcm2 ou o que for.

Pessoalmente, usei o Puppet on Solaris nos últimos três anos e fiquei muito feliz com a decisão. Nós o usamos para gerenciar todos os aspectos da administração de nossos sistemas: usuários, arquivos, cron jobs, sistemas de arquivos ZFS, montagens NFS, zonas, serviços (via SMF) e assim por diante. É bastante útil.

O provedor de pacote Puppet SRV4 funciona, mas não tem a capacidade de enviar arquivos remotamente (por exemplo, via HTTP). Você pode contornar isso escrevendo uma função que instala seus pacotes para você. Se os pacotes estiverem disponíveis localmente (via NFS), o provedor deve funcionar.

Além do Solaris 10, usamos o mesmo repositório Puppet para gerenciar nossos sistemas Solaris Express e Debian Linux.

Eu escrevi este post um tempo que pode ser útil: link

    
por 04.01.2011 / 12:36