1. Visão geral O Puppet é uma ferramenta de automação de software de código aberto para configuração e implantação, fácil de usar e poderosa, e está ganhando cada vez mais atenção, e muitas grandes empresas de TI agora estão usando o puppet para gerenciar e implantar softwares em clusters, como o Google usando o puppet para gerenciar mais de 6.000 computadores desktop Mac (dados de 2007). Este artigo apresenta principalmente o método de instalação, arquitetura de design e método de uso do fantoche.
2. Arquitetura de design Puppet é baseado na arquitetura C/S. O lado do servidor armazena todo o código de configuração do servidor cliente, que é chamado de manifest in puppet. Após o cliente baixar o manifesto, o servidor pode ser configurado de acordo com o manifesto, como gerenciamento de pacotes, gerenciamento de usuários e gerenciamento de arquivos.
Como mostrado na figura acima, o fluxo de trabalho do fantoche é o seguinte: (1) O cliente marionete chama facter, e o facter detecta algumas variáveis do host, como nome do host, tamanho da memória, endereço IP, etc. o pupppetd envia essas informações para o servidor via uma conexão SSL; (2) O mestre de marionetes do lado do servidor detecta o nome de host do cliente, então encontra a configuração correspondente do nó no manifesto e analisa essa parte do conteúdo. A análise é dividida em várias etapas: verificação de sintaxe e relatório de erros caso a sintaxe esteja errada. Se a sintaxe estiver correta, continue analisando, e o resultado da análise gerará um "pseudocódigo" intermediário, e então enviará o pseudocódigo ao cliente; (3) O cliente recebe o "pseudocódigo" e o executa, e o cliente envia o resultado da execução para o servidor; (4) O lado do servidor escreve o resultado de execução do cliente no log. Há dois pontos a destacar no processo de trabalho com PUPPET: primeiro, para garantir a segurança, o cliente e o mestre são baseados em SSL e certificados, e somente o cliente autenticado pelo certificado mestre pode se comunicar com o mestre; Segundo, o puppet manterá o sistema em um determinado estado que você espera e o mantém o tempo todo, como detectar um arquivo e garantir que ele exista sempre, garantir que o serviço ssh esteja sempre ativo, se o arquivo for excluído ou o serviço ssh for fechado, na próxima vez que o puppet for executado (30 minutos por padrão), ele recriará o arquivo ou iniciará o serviço ssh.
3. Instalação de software Não é recomendado usar o comando apt-get para instalação porque o fantoche baixado por esse comando tem um bug. Ele pode ser instalado diretamente do código-fonte, e o software que precisa ser instalado é ruby, facter e puppet.
3.1 Procedimento de Instalação Edite /etc/host para modificar o nome do host, pois puppet é baseado em certificado e contém o nome do host no certificado; Instale Ruby, Facter e Puppet no Master e Slave, e use Ruby Install.rb para instalar Facter e Puppet.
3.2 Estrutura de diretórios após a instalação (1) Diretório de instalação O diretório de instalação é armazenado em /etc/puppet, e os manifestos são armazenados nesse diretório e armazenam arquivos de manifestos. Outros arquivos executáveis sob /user/sbin incluem principalmente: Puppet: Usado para executar arquivos mainfests independentes escritos pelo usuário, como: fantoche -l /tmp/manifest.log manifest.pp puppetd: Um programa cliente que roda no host gerenciado, como: puppet –server servername –waitforcert 60 puppetmasterd: Um programa servidor que roda na máquina de gerenciamento, como: puppetmasterd –debug O programa de certificação de marionetes Puppetca é usado principalmente para autenticar certificados de escravos, tais como: Verifique o escravo a ser autenticado: puppetca –list Certificar esses escravos: puppetca -s –a Puppetrun é usado para conectar ao cliente, forçando a execução do arquivo de configuração local, como: puppetrun -p 10 –host host1 –host host2 -t remotefile -t servidor web (2) Arquivos de configuração puppet.conf O arquivo principal de configuração do Puppet é /etc/puppet/puppet.conf para usuários root, e ~user/.puppet/puppet.conf para usuários normais Para parâmetros de configuração específicos, veja:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf O arquivo de configuração do servidor de arquivos fantoche. Use o caminho do arquivo de configuração do caminho e permita/nege a configuração de permissões de acesso, veja http://docs.puppetlabs.com/guides/file_serving.html
3.3 Verifique se a instalação foi bem-sucedida Selecione um escravo para verificar com o mestre, assumindo que o host do escravo é slave00 e o host do mestre é masterhost, insira em slave00: puppetd –test –server servername Depois, veja o escravo a ser autenticado no masterhost: puppetca –lista Se não for problema, você pode ver o slave00 assinando o certificado do escravo: puppetca -s -a Dessa forma, o slave00 passou pela validação do certificado e pode interagir ainda mais com o mestre. Escreva o arquivo site.pp no diretório /etc/puppet/manifests do masterhost, que diz: node default { file { "/tmp/test": conteúdo=>"olá", modo => 0644;
}
} Ao mesmo tempo, insira puppetd –test –server namename no slave00, verifique a pasta /tmp do slave00 e gere um novo teste de arquivo, cujo conteúdo é hello, e a permissão do arquivo é -rw-r—r-. Dessa forma, a instalação do fantoche se comprova bem-sucedida
|