Puppet, как победить кодировки?
Вопрос несколько оффтопичен, но мало ли, кто в курсе может.
Пытаюсь заставить Debian-сервер с Puppet управлять гетерогенной сетью.
Если определение и разделение машин на Lin - Win ещё боле-мене прошло,
то вот отдать манифест с кодировкой UTF в Винду не получается никак.
Дело всё в том, что любые параметры на русском не принимаются: пути не
находятся, пользователи создаются кракозябрами. Оно-то и понятно бы:
Винда ущербная, до сих пор консоль на cp866 работает. А вот что с этим
делать - непонятно. Уже попробовал:
1. Подобавлять везде в *.bat-файлы перевод консоли на cp65001 (UTF),
конструкция типа "chcp 65001 && puppet", не помогло. Может потому, что
Ruby-программа собирается страшным методом: самый главный бинарник
puppet-агента выглядит как текстовый файл такого содержания:
#!/usr/bin/env ruby
require 'puppet/util/command_line'
Puppet::Util::CommandLine.new.execute
Это на Винде-то. Может как-то можно отконфигурировать Ruby или что-то
запатчить на предмет понимания кодировок?
2. Написать файл в виндовой кодировке и раздать с сервера. Ругается:
Puppet-агент скачивает манифест, проверяет - впереди файла нету кода
UTF, на этом свечи гаснут. Не вариант, короче. Если только как-то
накодить поддержку не-UTF манифестов для клиента.
3. Использовать англоязычную винду с MUI-паком (не у всех пользователей
сети с английским нормально). Во-первых, решение кривое, во-вторых,
нормального MUI не найти, в-третьих, русифицируется только редакция
Ultimate, даже Prof не умеет.
4. Сменить винде кодировку cmd.exe вообще на UTF-8 через реестр. На чём
она, болезная, и скончалась.
Написал в puppet-сообщество, там молчат как рыбы об лёд, не обращают
внимания уж который день. Вот и получается, что вроде как есть
гетерогенная утилита, а вроде как и нет. Может, будут у кого мысли по
сему поводу?
(Варианты идти ставить виндовый домен с GPO и прочим не рассматриваются)
Reply to: