[Sysadmins] Странное поведение резолвера

Konstantin Lepikhov lakostis на unsafe.ru
Чт Мар 26 15:10:28 MSK 2020


Hi Maxim!

On 03/26/2020, at 10:49:27 AM you wrote:

> <div>Добрый день!</div><div> </div><div>Есть задача - автоматизировать сборку в LXD-контейнере с Альтом:</div><div>- создаем чистый контейнер из образа;</div><div>- настраиваем окружение;</div><div>- обновляем систему и доставляем нужные пакеты;</div><div>- подкачиваем исходники из Git;</div><div>- собираем и забираем результат;</div><div>- удаляем контейнер.</div><div> </div><div>Делается вся втупую - внешним скриптом (с помощью команд вида lxc exec/file push и т.п., без глубоких ковыряний в самом образе, системе инициализации и пр.)</div><div> </div><div>По ходу столкнулся со странным поведением резолвера: даже после полного поднятия сети и __гарантированной__ отработки пинга на mirror.yandex.ru, apt-get еще некоторое время не может этот самый mirror.yandex.ru найти.</div><div> </div><div>Подробности - после старта контейнера вставил костыль в виде цикла для ожидания полного поднятия сети:</div><div>    while true; do</div><div>         ping -c1 mirror.yandex.ru &amp;&amp; break;</div><div>    done</div><div>Цикл отрабатывает (видно визуально), имя mirror.yandex.ru разрешается и пинг проходит.</div><div>После этого выполняем apt-get update и получаем 'Can't resolve hostname mirror.yandex.ru' (или как-то так).</div><div>Вставленный после цикла update_chrooted --force all не помогает...</div><div>Приходится городить еще один костыль в виде sleep 10 - тогда apt-get отрабатывает нормально.</div><div> </div><div>Получается - костыль, подпираемый костылем, чего не хотелось бы совсем. Отчего так происходит и есть ли какой-нибудь вменяемый способ это побороть?</div><div> </div><div>С уважением,</div><div>М.П. Вецало.</div><div>---</div>

собирать что-то в LXD это плохая идея (я могу написать уже целую статью по
ужасы LXC в Сизифе). Используйте docker или hasher. Если у вас какой-то CI
там.

-- 
WBR et al.


Подробная информация о списке рассылки Sysadmins