... Стал тут "на всякий случай" делать локальные зеркала репозиториев софта, который так или иначе используется в компании. А то чё-то в последнее время роскомпозор дюже часто стал шалить со своими ТСПУ. Применяю я для сей гнусной цели утилитку "debmirror", которая есть суть perl-овый скрипт, умеющий дёргать всякие rsync-и и выкачивать не всё подряд, а только то, что нужно.
Прошелся по одному-другому, всё нормально. Очередь дошла до ClickHouse-а. И вот не хочет зеркалироваться, хоть тресни. Причём APT-ом все нормально забирается, а Debmirror-ом не хочет. Стал смотреть. Затыкается на этапе получения URL-а "
https://packages.clickhouse.com/deb/dists/lts/Release", получает 403 Forbidden.
Моя не понимать. Копирую URL, вставляю в браузер: всё нормально. Натравливаю на него же "wget -O-": всё нормально. Прописываю в APT, всё нормально. И тут до поручика начинает медленно доходить...
Смотрю где хостятся репозитории. Cloudflare. Раньше они лежали на "repo.yandex.ru", но в связи с известными событиями "Яндекс" резко переобулся. Так что "Clickhouse" теперь до фига калифорнийская конторка, и репозитории нонче хостятся на "packages.clickhouse.com".
Смотрю дальше. APT отсылает HTTP-заголовок "User-Agent: Debian APT-HTTP/1.3 (2.2.4)" и всё нормально. Debmirror отсылает заголовок "User-Agent: libwww-perl/6.52" и получает 403.
Сука-cloudflare. Ну какая ему на фиг разница кто именно к нему пришёл? Вот за это тоже я не люблю эти ваши "облака". Они чё-то стали умнее тебя. Непонятно где наступишь на грабли в следующий раз.
Пришлось лезть в код debmirror-а и дописывать туда
$ua = LWP::UserAgent->new(keep_alive => 1, ssl_opts => {
verify_hostname => ! $disable_ssl_verification }, agent => 'Debian APT-HTTP/1.3 (2.2.4)');
"ua" - это "user agent", а не то, что вы, возможно, подумали.
Вот так мы победили сырость. © А облака - зло.