Acabei de configurar o Foreman pela primeira vez e não sei como colocar todas as minhas configurações sob controle de versão. Eu sei que posso usar o Git para cada módulo que instalo no meu Puppet master, mas preferiria uma solução mais holística que englobe não apenas módulos, mas também quais classes estão associadas a cada host e quaisquer variáveis definidas nos hosts. Todas as sugestões serão muito bem-vindas, juntamente com os fluxos de trabalho relacionados. Caso seja relevante, eu tenho a configuração do GitLab como um servidor Git central no local e planejo configurar um servidor de CI como o Jenkins em breve.
8
Respostas:
Existe um plug-in para manter sua definição de infraestrutura no Foreman, praticamente uma versão serializada de seus dados no Git, e fazer upload (e alterar sua infraestrutura) de alterações. Talvez isso seja útil para você
https://github.com/marianitadn/foregit
fonte
Com o foreman, você deve poder visualizar todas as classes, juntamente com qualquer variável de configuração atribuída nos detalhes do host. Veja: http://theforeman.org/manuals/1.4/index.html .
fonte
Não sei se entendi sua pergunta, mas você encontrou o "bibliotecário fantoche" https://github.com/rodjek/librarian-puppet ? Lá você pode definir quais versões / sha1 dos módulos fantoches você gostaria de usar.
fonte
Caso alguém esteja lendo isso mais tarde: Com o puppet, você pode definir qual versão do pacote / software você gostaria de instalar com a declaração "version => XYZ".
Gene, tentei o meu melhor, mas ainda não entendi sua pergunta. Desculpe por isso :(
fonte
Eu acho que o que você procura é muito simples.
As configurações do Puppet estão em
/etc/puppet
. A opção mais simples é apenas executargit init /etc/puppet/
você pode adicionar o Gitlab como um controle remoto e empurrá-lo.
Como alternativa, você pode tentar algo parecido com o que descrevo aqui, que não é centrado no Foreman, mas não vejo razão para que você não possa usá-lo como inspiração.
fonte
Você também pode considerar o etckeeper, o que faz automaticamente
Você pode até escrever um invólucro como
vi puppet_wrapper.sh
Eu estou trabalhando com isso por um tempo e tudo bem para as minhas necessidades.
fonte
Eu acho que você só precisa configurar um repositório no git, onde cada ramo do repositório git será mapeado para um ambiente fantoche e quando você quiser alterar algo no fantoche, basta clonar o repositório, fazer alterações e enviá-lo para o ramo correspondente. Você também precisa configurar um gancho git que será acionado quando você enviar suas alterações ao repositório git, para que ele atualize o ambiente mapeado no servidor fantoche. Você pode fazer tudo isso manualmente ou apenas através deste módulo de marionetes.
https://github.com/theforeman/puppet-puppet
fonte