Author Topic: Мой опыт переноса пользователей из Zentyal 2.2 в Zentyal 3.3  (Read 3176 times)

fintnovo

  • Zen Apprentice
  • *
  • Posts: 39
  • Karma: +1/-0
    • View Profile
Добрый день,

решил поделиться опытом переноса пользователей из Zentyal 2.2 в Zentyal 3.3.
Инструкция, которую я нашёл здесь :
http://trac.zentyal.org/wiki/Documentation/Community/Migrate_2.2_to_3.0
не работает. И уже год её не могут исправить, по запросу (добавить символ > в команду дампа пользователей):
Ветки форума наподобие :
http://forum.zentyal.org/index.php?topic=18105.0
показывают, что не всё гладко ).

Коротко процесс переноса пользователей состоит из следующих шагов :
1. Выгружаем конфигурацию Zentyal 2.2 в файл (System- Import\Export Configuration - Backup).
2. Выгружаем пользователей из файла конфигурации в CSV файл.
3. Редактируем CSV файл и импортируем пользователей на новый сервер.

Теперь подробнее :
1. Скачиваем скрипты для переноса пользователей:
    https://raw.github.com/Zentyal/zentyal/3.0/extra/migrate-2.2-to-3.0/dump-users-from-backup
2.  Складываем скрипты и  configuration backup в один каталог и запускаем команду из-под пользователя root :
# perl dump-users-from-backup confbackupname.tar > users.csv
3. Данные проэкспортируются в файл users.csv формата CSV с автоматически сгенерированными паролями.
   * ВНИМАНИЕ : файл с разделителями запятыми, поэтому если CSV будет редактироваться, нужно использовать запятые в качестве разделителя. LibreOffice (которым я редактировал файл) по-умолчанию использует разделители символ табуляции. Для смены настроек по умолчанию поставить галку ИЗМЕНЕНИЕ ФИЛЬТРА НАСТРОЕК - СОХРАНИТЬ - СОХРАНИТЬ В CSV и далее выбрать необходимый разделитель.
Столбцы CSV файла (при необходимости можно добавить):
username password givenname surname description email

4.  Импортируем файл users.csv:
Для этого адаптируем под себя скрипт :
http://doc.zentyal.org/en/appendix-c.html#importing-configuration-data

#!/usr/bin/perl
use strict;
use warnings;
use EBox;
use EBox::Users::User;
EBox::init();
my $parent = EBox::Users::User->defaultContainer();
open (my $USERS, 'users.csv');
while (my $line = <$USERS>) {
    chomp ($line);
    my ($username, $password, $givenname, $surname, $description, $email) = split(',', $line);
    EBox::Users::User->create(
    uid => $username,
        parent => $parent,
        password => $password,
        givenname => $givenname,
        surname => $surname,
        description => $description,
        mail => $email
    );
}
close ($USERS);
1;


Размещаем его в одном каталоге с файлом users.csv
Меняем запускаемый бит для скрипта :
chmod +x <имя_файла_скрипта>

Грабли, на которые я наступал:  В Zentyal 3 сменили названия модулей, поэтому старый скрипт не работал. Пришлось PERL - модуль (расширение .pm) в скрипте переименовать.

Это мой опыт.

P.S. Может у кого есть опыт по переносу компьютеров из одного домена Zentyal 2.2 в другой Zentyal 3.3  (чтобы не пришлось перезаводить все компьютеры в новый домен заново) ? Буду очень признателен. Всем удачи.