AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 788431
Accepted
M. Glatki
M. Glatki
Asked: 2016-07-08 00:35:57 +0800 CST2016-07-08 00:35:57 +0800 CST 2016-07-08 00:35:57 +0800 CST

r10k: fluxo de trabalho de mesclagem adequado com git

  • 772

No momento, estou executando o Puppet no modo sem mestre. Estou usando o r10k para implantação de módulo e ambiente.

Versão simplificada: O repositório de controle r10k possui duas ramificações: teste e produção . As alterações na produção serão distribuídas automaticamente para os servidores de produção. Mudanças nos testes para alguns servidores de teste.

Agora, se estou alterando as coisas no teste, às vezes também preciso alterar o repositório de controle r10k. Um exemplo comum seria o Puppetfile, que atualmente se parece com isso na produção :

forge 'forge.puppetlabs.com'

# Forge modules
mod 'puppetlabs/stdlib'
mod 'puppetlabs/concat'
mod 'saz/ssh'

# Custom modules
mod 'ownmodule1',
        :git => 'https://git.example.org/configuration/ownmodule1.git',
        :ref => 'production'
mod 'ownmodule2',
        :git => 'https://git.example.org/configuration/ownmodule2.git',
        :ref => 'production'

A configuração dos módulos personalizados pode ser semelhante a esta na ramificação de teste :

mod 'ownmodule1',
        :git => 'https://git.example.org/configuration/ownmodule1.git',
        :ref => 'testing'
mod 'ownmodule2',
        :git => 'https://git.example.org/configuration/ownmodule2.git',
        :ref => 'testing'

Agora, um commit em testing pode ficar assim:

+mod 'ownmodule3,
+        :git => 'https://git.example.org/configuration/ownmodule3.git',
+        :ref => 'testing'

Se eu mesclar isso com a produção e não for cuidadoso, ownmodule3 será adicionado à produção com o ramo de teste , o que pode ser fatal. Isso também evita a mesclagem automatizada quando todos os testes são bem-sucedidos.

Como posso modificar meus repositórios ou fluxo de trabalho para evitar a mesclagem acidental de alterações específicas da ramificação?

puppet git puppet-agent r10k
  • 2 2 respostas
  • 633 Views

2 respostas

  • Voted
  1. Greg Dubicki
    2016-08-15T12:29:37+08:002016-08-15T12:29:37+08:00

    Substituir os nomes de ambiente embutidos em código usados ​​como referências no seu Puppetfilepor uma variável substituída pelo nome do ambiente atual ajudaria a tornar seu Puppetfile mescável entre as ramificações.

    Pseudocódigo :

    mod 'ownmodule1',
      :git => 'https://git.example.org/configuration/ownmodule1.git',
      :ref => ${environment}
    

    Para o código real , veja esta resposta , mas não garanto que funcionará em sua configuração, é um pouco hacky.

    Mas, é claro, para fazer com que seus ambientes sejam implantados corretamente após essa alteração, você teria que criar uma productionramificação em seus módulos testinge iniciá-los com algum código mínimo, não operacional, mas de compilação para novos módulos.

    PS Se esta resposta for útil e você decidir votar nela, por favor, vote na resposta vinculada também.

    • 2
  2. Best Answer
    M. Glatki
    2016-09-27T05:17:55+08:002016-09-27T05:17:55+08:00

    Desde r10k 2.4.0 , é possível fazer com que os módulos marionetes correspondam à ramificação no repositório de controle. No branch testing, o Puppetfile da minha pergunta pode ficar assim:

    mod 'ownmodule1',
      :git => 'https://git.example.org/configuration/ownmodule1.git',
      :ref => :control_branch
    

    Isso resultaria na ramificação testingdo módulo ownmodule a ser usado com r10k deploy . Isso é bastante confiável. Com :default_branchvocê pode especificar uma ramificação de fallback.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve