IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [144]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [512]
    Видеорегистраторы [188]
    Гаджеты для спорта и здоровья... [191]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [446]
    Накопители данных [233]
    Нетбуки, Ноутбуки, Ультрабуки [691]
    Мультиварки, блендеры и не только... [164]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [40]
    Своими руками [366]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4963]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [53]
    Электронные книги [102]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [109]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3983]
    mini computers и не только... [412]
    News IT, Это интересно, ликбез... [1121]
    Smart TV, UltraHD, приставки, проекторы... [416]
    Smart Watch [269]
    Sound: наушники, плееры, усилители... [619]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 14
    Гостей: 14
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Март » 16 » Разворачиваем рабочий образ linux с минимальным интерактивом
    16:13
    Разворачиваем рабочий образ linux с минимальным интерактивом

    Разворачиваем рабочий образ linux с минимальным интерактивом

    Эта публикация может быть интересна тем ленивым системным администраторам, которые используют что-то из нижеперечисленнго:

    • Linux — based систему на машинах-клиентах;
    • Тонкие/толстые однотипные клиенты на различном железе;
    • Сетевое хранилище клиентских данных;
    • Предустановленный регламентированный софт;
    • Openvpn/rdp к серверам приложений.
    • Плюшевый (мягкий и пушистый) мониторинг linux клиентов типа Nagios.


    Речь пойдет о том, как с минимальными усилиями со стороны пользователя или штатного «эникейщика» установить на компьютер пользователя готовую систему с набором софта, настроенными сетевыми службами, предопределенными конфигами и т.д. Статья ориентирована в первую очередь на энтузиастов и начинающих линуксоидов, но приемы и скрипты вполне могут использоваться в боевом развёртывании группы из десятков машин ежедневно.

    Для начала определимся с дистрибутивом. Это, конечно, зависит прежде всего от задач. Я выбрал xubuntu 14.04 по трем простым причинам:

    1. ubuntu — deb based система с широчайшей поддержкой и огромным количеством форумов;
    2. xubuntu — легковесный вариант без рюшек и понтов, который не тормозит на машинах от 512Мб ОЗУ (есть в моём парке и такие динозаврики);
    3. 14.04 — это LTS (Long Term Support) вариант c поддержкой до 2019 года.

    Есть, конечно, варианты быстрее и поменьше, но по ряду тех или иных причин выбор был сделан и сожалений на протяжении года с небольшим не вызывает.

    Забегая вперед, отмечу: чтобы повторить описанное потребуется настроенный vpn сервер или «конфиг-мониторинг-сервер» в локальной сети, пара виртуальных или реальных машин, пара часов свободного времени и внимание к деталям.

    Итак, первое, подготовка образа. Все этапы важны, но первый — это фундамент. Устанавливаем систему с cd/dvd/usb/сети и выбираем разметку дисков. Важно понимать, что наш образ не будет поддерживать динамического ресайза ДО развёртывания. А после, скорее всего такой ресайз и не потребуется. Под корень имеет смысл отдать 6-10 Гб.

    Больший объем оправдан в случае, когда заведомо известно, что а) диски на клиентских машинах не будут меньше этого объема и б) действительно будет установлено много разных нужных пакетов.

    Разметим /home и, наконец, swap разделы. В совокупности все три раздела у автора не вылезают за 30Гб (чтобы спокойно разместиться на ssd 30 Gb, это минимальная конфигурация по диску для моих клиентов). В случае, если заранее известен минимальный объём диска — приемника, имеет смысл подгонять разделы под него. Своп рекомендую размечать сразу за корнем диска, /home сразу за свопом, чтобы в случае ресайза не «возить их по диску в консоли», а сделать изящно одной командой. Устанавливаем локаль, имя пользователя, пароль, hostname и заходим в новоиспеченный Linux. Для продолжения потребуются пакеты x11vnc, ssh, rsync, openvpn, mc (обожаю mcedit, он мне родной, как нортон из девяностых).
     

    sudo apt-get install x11vnc ssh rsync openvpn mc ntp 
    


    В базу я на свой вкус добавил skype, icedove (thunderbird), iceweasel(firefox), chromium-browser, rdesktop калькулятор, монитор ресурсов, viber, libre office, wine и пару windows-приложений (гореть мне, конечно, за это в аду, но аналогов нет и не предвидится). Настраиваем медленно и неторопливо всё это дело. Проверяем, что всё запускается и работает.

    Настраиваем vpn. У меня сеть распределенная, по два-три компьютера на одну геолокацию, больше 50 локаций по России, не наездишься. Создаем ssh-ключ к серверу и на сервере к клиенту (кому надо вводить эти пароли, подробности, к примеру, тут). На сервере создаем каталог безусловной синхронизации (для меня это рабочие скрипты, ключи openvpn, клиентский cron, служебные скрипты на python, бинарники С++). В рабочем примере это /var/sync/in, /var/sync/in/cron, /var/sync/out. В out будут логи и любая нужная нам информация с клиентов: скриншоты, отчеты по процессам, итд. В in как раз и будут скрипты синхронизации, задания cron, скрипты хартбитов для мониторинга, многочисленные конфиги системных служб (того же cups или openvpn).

    Подготовка всего этого дела к тиражированию займет не многим больше времени, чем установка системы одному пользователю, но тщательная проработка деталей может существенно уменьшить время, которое админ в будущем потратит на скрипты «допиливающие» все образы в бою. Настроим openvpn на клиенте и убедимся, что пользовательский ключ[и] работа[ею]т. Не лишним будет и настроить grub2.
     

    • Хинт1: Хорошо, когда хостнейм, ip в openvpn и сертификат юзера содержат свой уникальный id, к примеру user10.key, x.y.z.10 и vladivostok_10 в качестве хостнейма;
    • Хинт2: Хорошо, когда копии этих файлов лежат под рукой, скажем /var/sync/hostname, /var/sync/id, /var/sync/location;
    • Хинт3: Зарезервировать 5-10 адресов под незарегистрированных пользователей тоже будет полезным.


    Файлы из Хинт2 мы создавать не будем сознательно, по их отсутствию будет понятно, когда «новенькие» подключатся к нашему vpn.

    Итак, всё шуршит, офис работает, калькулятор запускается, для rdp с сервером приложений уже есть ярлычок на рабочем столе.

    Пришло время делать образ.

    Разрешу себе отвлечься. Способов сделать образ с готовой системой под тираж я перепробовал немало. Данная статья не претендует на звание лучшего способа, скажу лишь, что способ лучший для меня и очень кратко прокомментирую другие способы и их минусы.

    Clonezilla — отличная вещь, но в интерактивном режиме вводит в ступор любого эникейщика за триста миль от админа.
    dd if=/dev/sda of=img.img — волшебная вещь, но вместе с данными мы получим мусор с пустой части диска, объём и скорость метода ужасают.

    Norton ghost — не поддерживает ext4.

    Partition copy из gparted — классная вещь, но, увы, тоже не для начинающих.

    Я долго спрашивал себя, каким я вижу идеальное развертывание. Тут мы подходим к теме статьи, от которой уже порядком отвлеклись.
     

    • Образ должен помещаться на небольшой (в моем случае 2Гб) флешке;
    • Образ должен ставиться нажатием одной-двух кнопок;
    • После развертывания образ сам должен синхронизироваться и «докладывать» админу, что новая машина «в строю»;
    • Регистрация новой машины не должна занимать много времени;
    • (Важно!) Образ скорее всего будет записан на флешку из-под windows непрофессионалом по инструкции;
    • (АрхиВажно!) Образ скорее всего будет развиваться версионно, и его нужно периодически доделывать и быстро распространять.


    Пришлось изобретать маленький велосипед, а точнее — писать разворачивающий скрипт. Для вышеупомянутых задач был выбран дистрибутив PartedMagic. Для заворачивания образа потребуется unetbootin+partedmagic или любой live-cd(usb) с линуксом и tar+b[g]zip на борту. Будем считать, что образ мы загрузили PartedMagic «run from ram» и флешка монтирована в /media/sdb1 (FAT32).
     

    Пара напоминалок про fat/ntfs на флешках
    • Ахтунг1 Напоминаю, раздел файла в fat32 не должен быть более 4Гб, следите за объёмом образа или выбирайте ext4 раздел.
    • Ахтунг2 NTFS раздел флешки под linux хоть и работает, но забирает огромное кол-во процессорного времени.


    После загрузки монтируем наш диск (скорее всего /dev/sda1) и жмём прямо с него всю нашу систему, не забываем и про /home раздел:
     

     mount /dev/sda1 /media/sda1


    Затем сделаем архив со всем содержимым нашего диска:
     

    tar -czvpf /media/sdb1/image.tgz /media/sda1


    Тоже самое и для /home раздела:
     

    mount /dev/sda5 /media/sda5
    tar -czvpf /media/sdb1/home.tgz /media/sda5


    Затем дампим таблицу разделов в файл на нашу суперфлешку:
     

    sfdisk /dev/sda1 -d >parts.txt



    Таким образом, на флешке у нас появятся архивы и файл с таблицей разделов эталонного образа.

    Ну и на сладкое. Ниже скрипт c говорящим названием, который собирался по частям с разных уголков интернета буквально по строчке.

    Комментарии автора прямо в тексте скрипта. Ничего сверхъестественного, просто как на уроке информатики, однако отлаживался с кровавыми слезами, разок даже убил домашнюю систему флешкой с этим скриптом. Не рекомендую оставлять как есть, т.к. это его безусловная неинтерактивная версия.

    cat /pmagic/pmodules/scripts/kill_your_hdd_data.sh (путь для автозагрузочного скрипта в PartedMagic)

    !#/bin/bash
    #старая версия, условий и проверок нет, ломает всё на своём пути, использовать "как есть" нельзя. 
    #свежая версия с проверкой и выбором завернуть/развернуть/пропустить и загрузиться в PartedMagic будет доступна после апдейта статьи.
    #и кстати в этой версии всего один раздел / , т.к. home изначально не выносился на отдельный раздел
    #отменить этот скрипт нельзя, он гарантировано убьет все данные на жестком диске (надеюсь, виртуальном)
    #автор не несёт никакой ответственности за потерю Ваших данных, вы делаете всё сами на свой страх и риск
    #2014 (c) Urban Software LLC under GPLv3 urbansoftware.ru, usrbb.ru
    dd if=/dev/zero of=/dev/sda bs=512 count=1 # затираем загрузочную область диска и информацию о разделах
    sleep 1s
    sfdisk /dev/sda < /media/sdb1/parts.txt # создаем новую таблицу разделов из нашего файла с нашей таблицей
    sleep 1s
    mkfs.ext4 -L "" /dev/sda1 -F # Создаем корневой раздел 
    sleep 1s
    mkdir /media/sda1 
    fsck.ext4 /dev/sda1 # проверяем на наличие ошибок вновь созданный корневой раздел (эти процедуры повторяем для home)
    sleep 5s
    mount /dev/sda1 /media/sda1 
    #mount /dev/sdb1 /media/sdb1
    sleep 1s
    mkdir /media/sda1/tmp
    tar -xzvpf /media/sdb1/image.tgz -C / # разворачиваем архив
    sleep 5s
    echo "This script damn work!" # ругаемся от радости, мы на финише
    mount --bind /dev /media/sda1/dev 
    mount --bind /sys /media/sda1/sys
    mount --bind /proc /media/sda1/proc 
    chroot /media/sda1/ /bin/bash -c 'grub-install /dev/sda' # установим загрузчик в корень диска
    chroot /media/sda1/ /bin/bash -c 'update-grub2' 
    sleep 5s
    umount /dev/sda1
    umount /dev/sdb1
    echo 'done, remove media, system will reboot in 30s'
    sleep 30s
    reboot
    exit 0
    


     

    Вместо эпилога:


    Lанный метод используется в Urban Software для заливки информационных сенсорных киосков c веб-приложениями под управлением linux. Чаще всего это бесклавиатурные машины, которые разворачиваются десятками вдали от цивилизации нашей техподдержки, поэтому важно изначально не создать проблем при их мониторинге и вводе в работу.

    P.S. Статья получилась большая. О том, как «встречать» только что развернутые компьютеры, управлять удаленным cron, синхронизировать скрипты и получать хартбиты мониторинга, будет написана вторая часть, если, конечно, первая когда-нибудь вылезет из песочницы.

     

    http://habrahabr.ru/post/253193/

    Категория: Linux и не только | Просмотров: 556 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024