Conheço o Puppet por experiência (limitada) e notei que no gerenciamento de configurações agora há uma forte tendência em direção ao Ansible.
Por um lado, entendo que o Ansible não requer um agente, porque faz uso inteligente dele ssh
.
Por outro lado, estas são características que gostaram do Puppet:
- acesso ao estado e histórico de configuração em todo o sistema (PuppetDB) via API REST
- capacidade de manter backups de arquivos sobrescritos (filebuckets)
- capacidade de criptografar parte das configurações do Hiera (
.eyaml
)
Entre eles, o PuppetDB me parece o mais importante e útil (por exemplo, para integração com outras ferramentas). Portanto, minha pergunta é a seguinte: O Ansible tem algo parecido com o PuppetDB, isto é, um componente que oferece uma API na qual poderia, por exemplo, ser perguntado "Quais pacotes estão instalados no host x ?" ou "Em quais hosts o pacote y está instalado?"
(Esta questão foi migrada do StackOverflow ).
ATUALIZAÇÃO A desvantagem significativa do Puppet é a minha experiência até agora: não tanto o fato de exigir um agente (pelo que vi, o uso do Ansible no Python também introduz um tipo de agente na forma de um intérprete do Python ;-), mas que deseja que seu agente aja como root
único e sempre.
root
direitos de acesso em um cluster de servidores, mas ainda pode usar o Ansible para gerenciar um aplicativo Web grande lá. Além disso, existem SAs que não efetuam login como root
, mas usam sudo
mais moderadamente.
root
? Ele substitui a necessidade de um SA fazer login e fazer as coisas manualmente, portanto, deve poder fazer tudo o que um SA pode fazer.