Мы размещаем наш собственный внутренний реестр Docker и используем Ansible для настройки ведомого устройства Jenkins, которое будет создавать / выгружать контейнеры. Поскольку наша регистрация не является SSL, мы должны добавить:
"$DOCKER_OPTS --insecure-registry our.registry.com:5000"
в файл / etc / default / docker, чтобы демон docker запускался с этим флагом при запуске. Правильный ли способ использовать доступный шаблон и просто заменить весь файл? Или мы должны использовать модуль lineinfile и просто добавить эту строку?
Как правило, использование lineinfile является антипаттерном. «Всего одна строка» обычно превращается в несколько, и справляться с побегами всегда сложно.
Я бы сказал, это зависит от вашей настройки. Если вы уверены, что по умолчанию /etc/default/docker
файл на всех ваших хостах докеров одинаков, и все, что вам нужно добавить, это $DOCKER_OPTS
вариант, который вы указали выше, то нет необходимости lineinfile
модуль. Подойдет либо шаблон, либо копирование модулей, вы просто помещаете шаблон в каталог шаблонов или каталог файлов для своих ролей соответственно. Одним из преимуществ использования модуля шаблона является то, что вы можете использовать --diff
возможность увидеть, какие изменения он собирается внести. Добавьте к этому --check
для режима пробного прогона с включенным ведением журнала намного проще отслеживать все внесенные изменения.
Но если файлы конфигурации докеров различаются в зависимости от вашей среды, скажем, у некоторых из них разные DNS-серверы, я бы использовал lineinfile
с участием regex
вариант. Таким образом, вы можете сохранить существующие DOCKER_OPTS на удаленных хостах, добавив при этом дополнительную небезопасную опцию. Просто не забудьте использовать, backup=yes
вариант для lineinfile на случай, если вам нужно восстановить файл из резервной копии.