[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: