Modelo aninhado ou lineinfile para padrões do Docker?

2

Estamos hospedando nosso próprio registro interno do Docker e usando o Ansible para configurar o escravo Jenkins que criará / carregará os contêineres. Como nosso registro não é SSL, precisamos adicionar:

"$DOCKER_OPTS --insecure-registry our.registry.com:5000"

para o arquivo / etc / default / docker para que o daemon do docker seja executado com esse sinalizador na inicialização. É a maneira correta de usar um modelo ansible e apenas substituir o arquivo inteiro? Ou devemos usar o módulo lineinfile e apenas adicionar esta linha?

    
por fender4645 03.07.2015 / 22:39

2 respostas

1

Eu diria que depende da sua configuração. Se você tiver certeza de que o arquivo /etc/default/docker padrão em todos os seus hosts de janela de encaixe é o mesmo e tudo que você precisa adicionar é a opção $DOCKER_OPTS especificada acima, não há necessidade de lineinfile module. O modelo ou até mesmo os módulos de cópia funcionariam, basta colocar o modelo no diretório de modelos ou no diretório de arquivos de suas funções, respectivamente. Uma vantagem de usar o módulo de modelo é que você pode usar a opção --diff para ver quais alterações ela fará. Adicionar a esse --check para o modo de execução a seco com o log ativado, torna muito mais fácil rastrear todas as alterações feitas.

Mas se os arquivos de configuração do docker variarem em seu ambiente, digamos que alguns deles tenham servidores DNS diferentes, eu usaria a opção lineinfile with regex . Dessa forma, você pode manter os DOCKER_OPTS existentes nos hosts remotos, adicionando a opção extra insegura. Apenas certifique-se de usar a opção backup=yes para o lineinfile, caso precise restaurar o arquivo do backup.

    
por 04.07.2015 / 15:22
1

Geralmente, usar lineinfile é um antipadrão. "Apenas uma linha" normalmente se transforma em mais, e lidar com fugas e tal é sempre difícil.

    
por 04.07.2015 / 00:12