Ubuntu → Установка Ubuntu по сети ( apt-cacher, tftpd-hpa, pxe )
Если в организации есть локальная сеть, то искать болванку, потом на ее записывать образ диска — не выход, со временем установочные диски имеют обыкновение теряться или просто их кладут в такое место, где их потом сложно найти. Но если есть возможность сохранить все на сервере, то это сильно экономит и время и нервы, да и потерять данные можно только вместе с сервером, а это уже намного сложнее, хотя и этот вариант не исключен. Если вы хоть раз пытались устанавливать операционную систему, одновременно более чем на 5-10 ПК и не важно, ставится Linux или Windows-сетевая установка сильно упростит вам жизнь и сэкономит время. Мне не известны примеры больших сетей построенных исключительно на Linux в целом и Ubuntu в частности, возможно для них потребуется несколько иная схема работы – в соответствии более высокими нагрузками.
Статья была обновлена, с обновленным вариантом можно ознакомиться: Установка Ubuntu по сети (DHCP, PXE, boot-menu)
Сама проблема имеет как минимум 2 пути решения:
1-Использование кеширования пакетов ПО и обновлений т.е принцип работы следующий, все запросы от клиентов к репозиториям, проходят через наш сервер, который пересылает их уже официальному репозиторию в интернете, получив оттуда пакет, наш сервер оставляет себе его копию и следующему клиенту который запросил этот пакет, выдает уже из кеша, что намного быстрее и снижает загрузку на канал доступа в интернет. Данный вариант подходит для тех, у кого очень медленный интернет и при этом нет возможности сделать копию официального репозитория.
2-Поднятие собственного репозитория, для этого необходимо сделать локальную копию официального, я его выкачал заранее дома, а потом перенес уже имеющиеся файлы на боевой сервер, после этого с помощью скрипта в добавленного в CRON было создано задание которое запускалось ночью — в то время когда канал интернета не используется. При таком подходе серверу приходится выкачивать примерно 100-200 Мб за ночь что не много, за то мы получаем наиболее полный и свежий набор ПО и обновлений в дальнейшем, для установки программ, интернет нам не нужен вовсе. Система получается самодостаточной.
В данной статье, я рассмотрю только первый вариант т.к хранить у себя копию официальных серверов, не вижу особого смысла, там получается примерно 60 Гб, а потребность в них не такая частая, да и интернет довольно шустрый.
Для поднятия сервера сетевой установки нам потребуется скачать установочный диск с пометкой alternate в названии (весия desktop не подходит) + установить необходимые пакеты:
Настраиваем DHCP, на раздачу сетевых адресов:
находим и снимаем комментарии со следующих строк
Теперь создаем пул адресного пространства нашей локальной сети
Также добавим туда опцию использования сетевого загрузчика
Чтобы выглядело:
с DHCP все, теперь нам необходимо закачать образ диска на сервер, это можно сделать через FTP например можно установить ftp сервер ProFTPd, он начинает работать сразу после установки и не требует настройки (если вы захотите настроить его более тонко, то естественно, необходимо править его конфиги).
Но это уход от основной темы, предположим образ уже лежит на сервере зальем его в директорию /home чтобы путь к нему выглядел /home/ubuntu.iso
Нам необходимо смонтировать этот образ для сетевой установки, также нам необходимо создать папку, в которую мы и будем его монтировать:
переходим в папку с нашим образом
Монтируем его в папку, которую мы создали ранее:
Проверяем, что образ примонтировался, идем в папку /var/lib/tftpboot/ubuntu в ней должно находиться содержимое нашего диска.
Диск примонтирован –все будет работать, но только до перезагрузки сервера, каждый раз подключать его в ручную -не наш метод. Попробуем этот процесс автоматизировать, чтобы наш ISOшник монтирвлся автоматически при старте системы.
и добавим туда перед строкой exit 0
Сохраняем изменения и выходим, теперь наш установочный диск будет монтироваться при старте системы и всегда готов к установке ОС по сети.
Но это еще не все, tftp сервер выдает только образ для загрузки, но сами установочные файлы по сети не перекидывает, для этого необходим WEB или FTP сервер. В сети рекомендуется устанавливать WEB сервер Apache на локальном сервере, но мы можем обойтись и без него. Мы будем использовать Официальные сервера обновлений, но «ходить» к ним будем через наш прокси, это немного упростит нашу систему, сэкономит ее ресурсы, а также даст нам возможность пользоваться самыми свежими версиями пакетов доступных на официальных серверах например на ru.mirror.ubuntu.com/ubuntu и самое главное-нам не придется, настраивать клиентские ПК на использование нашего прокси-сервера, его настройки будет автоматически сохранены после установки ОС. А это уже серьезно экономит время!
Теперь нам необходимо настроить apt-cacher, сразу после установки он не запускается
и в строке AUTOSTART установить 1, чтобы выглядело
Теперь отредактируем конфигурационный файл этого пакета:
cache_dir-указывает на то куда на будут собираться пакатеы которые наши клиенты закачали, я его перенес на тот раздел где больше всего свободного места
настраиваем порт на котором работает сервер, я его перенес на 20000, это исключительно мой выбор, не влияющий на работоспособность.
Указываем на каком сетевом интерфейсе будет работать наш сервер, необходимо указать тот который смотрит в локальную сеть, например eth0
остальное можно оставить как есть.
С настройкой все
Рассмотрим процесс установки ОС
Я не буду описывать полностью процесс установки ОС, он не сильно отличается, а покажу, в картинках, моменты которые имеют отличия, от привычной установки.









А вот это самый главный момент, ради которого все и затевалось, указываем наш прокси сервер для кеширования пакетов и порт

Процесс разметки диска нет смысла рассматривать, по этому я его не включил в обзор
Выбираем вариант установки системы, в нашем случае ubuntu desktop, хотя можно выбрать и другой, список вариантов целая куча.

Нам необходимо закачать из сети около 1000 пакетов, на медленном интернете при установке системы на первый ПК закачка заняла почти 20 мин, а вот загрузка на 2й и последующие рабочие станции – чуть больше минуты, результат очевиден!
Взвесим за и против.
Плюсы данной схемы:
1) Нет необходимости хранить большие объемы данных
2) В случае необходимости установки более нового дистребутива, достаточно закачать на сервер образ новойверсии ОС вместо этого (Имя присвоить тоже самое) и перезагрузить сервер, он смонтируется автоматически.
3)Высокая скорость работы
Недостатки (Они тоже есть)
1) Зависимость от интернета
2) Время хранения пакетов в кеше 24 часа ( Хотя это можно отключить )
3) Использование канала по с полной загрузкой в рабочее время
Статья была обновлена, с обновленным вариантом можно ознакомиться в статье: Установка Ubuntu по сети (DHCP, PXE, boot-menu)на примере
Статья была обновлена, с обновленным вариантом можно ознакомиться: Установка Ubuntu по сети (DHCP, PXE, boot-menu)
Сама проблема имеет как минимум 2 пути решения:
1-Использование кеширования пакетов ПО и обновлений т.е принцип работы следующий, все запросы от клиентов к репозиториям, проходят через наш сервер, который пересылает их уже официальному репозиторию в интернете, получив оттуда пакет, наш сервер оставляет себе его копию и следующему клиенту который запросил этот пакет, выдает уже из кеша, что намного быстрее и снижает загрузку на канал доступа в интернет. Данный вариант подходит для тех, у кого очень медленный интернет и при этом нет возможности сделать копию официального репозитория.
2-Поднятие собственного репозитория, для этого необходимо сделать локальную копию официального, я его выкачал заранее дома, а потом перенес уже имеющиеся файлы на боевой сервер, после этого с помощью скрипта в добавленного в CRON было создано задание которое запускалось ночью — в то время когда канал интернета не используется. При таком подходе серверу приходится выкачивать примерно 100-200 Мб за ночь что не много, за то мы получаем наиболее полный и свежий набор ПО и обновлений в дальнейшем, для установки программ, интернет нам не нужен вовсе. Система получается самодостаточной.
В данной статье, я рассмотрю только первый вариант т.к хранить у себя копию официальных серверов, не вижу особого смысла, там получается примерно 60 Гб, а потребность в них не такая частая, да и интернет довольно шустрый.
Установка ОС Ubuntu по сети, с использованием кешированных пакетов.
Для поднятия сервера сетевой установки нам потребуется скачать установочный диск с пометкой alternate в названии (весия desktop не подходит) + установить необходимые пакеты:
sudo apt-get install dhcp3-server openbsd-inetd tftpd-hpa apt-cacher
Настраиваем DHCP, на раздачу сетевых адресов:
sudo nano /etc/dhcp3/dhcpd.conf
находим и снимаем комментарии со следующих строк
authoritative;
Теперь создаем пул адресного пространства нашей локальной сети
Также добавим туда опцию использования сетевого загрузчика
Чтобы выглядело:
# A slightly different configuration for an internal subnet.
ping-check = 1;
filename = "ubuntu/install/netboot/pxelinux.0";
subnet 192.168.0.0 netmask 255.255.255.0 { # подсеть и маска
range 192.168.0.5 192.168.0.254; # указываем диапазон IP адресов, которые будут выдаваться клиентам
option domain-name-servers 192.168.0.2; # IP DNS-сервера
option domain-name "internal.example.org"; # можно задать название своей сети
option routers 192.168.0.1; # адрес шлюза или маршрутизатора через который мы выходим в Интернет.
option broadcast-address 192.168.0.255; #широковещательный адрес который находится последним в диапазоне IP данной подсети
default-lease-time 600; # время аренды IP адреса в сек.
max-lease-time 7200; # максимальное время аренды IP адреса
с DHCP все, теперь нам необходимо закачать образ диска на сервер, это можно сделать через FTP например можно установить ftp сервер ProFTPd, он начинает работать сразу после установки и не требует настройки (если вы захотите настроить его более тонко, то естественно, необходимо править его конфиги).
Но это уход от основной темы, предположим образ уже лежит на сервере зальем его в директорию /home чтобы путь к нему выглядел /home/ubuntu.iso
Нам необходимо смонтировать этот образ для сетевой установки, также нам необходимо создать папку, в которую мы и будем его монтировать:
sudo mkdir /var/lib/tftpboot/ubuntu
переходим в папку с нашим образом
cd /home
Монтируем его в папку, которую мы создали ранее:
sudo mount -o loop ubuntu.iso /var/lib/tftpboot/ubuntu
Проверяем, что образ примонтировался, идем в папку /var/lib/tftpboot/ubuntu в ней должно находиться содержимое нашего диска.
Диск примонтирован –все будет работать, но только до перезагрузки сервера, каждый раз подключать его в ручную -не наш метод. Попробуем этот процесс автоматизировать, чтобы наш ISOшник монтирвлся автоматически при старте системы.
sudo nano /etc/rc.local
и добавим туда перед строкой exit 0
mount -o loop /home/ubuntu.iso /var/lib/tftpboot/ubuntu
Сохраняем изменения и выходим, теперь наш установочный диск будет монтироваться при старте системы и всегда готов к установке ОС по сети.
Но это еще не все, tftp сервер выдает только образ для загрузки, но сами установочные файлы по сети не перекидывает, для этого необходим WEB или FTP сервер. В сети рекомендуется устанавливать WEB сервер Apache на локальном сервере, но мы можем обойтись и без него. Мы будем использовать Официальные сервера обновлений, но «ходить» к ним будем через наш прокси, это немного упростит нашу систему, сэкономит ее ресурсы, а также даст нам возможность пользоваться самыми свежими версиями пакетов доступных на официальных серверах например на ru.mirror.ubuntu.com/ubuntu и самое главное-нам не придется, настраивать клиентские ПК на использование нашего прокси-сервера, его настройки будет автоматически сохранены после установки ОС. А это уже серьезно экономит время!
Теперь нам необходимо настроить apt-cacher, сразу после установки он не запускается
sudo nano/etc/default/apt-cacher
и в строке AUTOSTART установить 1, чтобы выглядело
AUTOSTART=1
Теперь отредактируем конфигурационный файл этого пакета:
sudo nano /etc/apt-cacher/apt-cacher.conf
cache_dir-указывает на то куда на будут собираться пакатеы которые наши клиенты закачали, я его перенес на тот раздел где больше всего свободного места
cache_dir=/home/apt-cacher
настраиваем порт на котором работает сервер, я его перенес на 20000, это исключительно мой выбор, не влияющий на работоспособность.
daemon_port=20000
Указываем на каком сетевом интерфейсе будет работать наш сервер, необходимо указать тот который смотрит в локальную сеть, например eth0
interface=eth0
остальное можно оставить как есть.
С настройкой все
Рассмотрим процесс установки ОС
Я не буду описывать полностью процесс установки ОС, он не сильно отличается, а покажу, в картинках, моменты которые имеют отличия, от привычной установки.









А вот это самый главный момент, ради которого все и затевалось, указываем наш прокси сервер для кеширования пакетов и порт

Процесс разметки диска нет смысла рассматривать, по этому я его не включил в обзор
Выбираем вариант установки системы, в нашем случае ubuntu desktop, хотя можно выбрать и другой, список вариантов целая куча.

Нам необходимо закачать из сети около 1000 пакетов, на медленном интернете при установке системы на первый ПК закачка заняла почти 20 мин, а вот загрузка на 2й и последующие рабочие станции – чуть больше минуты, результат очевиден!
Взвесим за и против.
Плюсы данной схемы:
1) Нет необходимости хранить большие объемы данных
2) В случае необходимости установки более нового дистребутива, достаточно закачать на сервер образ новойверсии ОС вместо этого (Имя присвоить тоже самое) и перезагрузить сервер, он смонтируется автоматически.
3)Высокая скорость работы
Недостатки (Они тоже есть)
1) Зависимость от интернета
2) Время хранения пакетов в кеше 24 часа ( Хотя это можно отключить )
3) Использование канала по с полной загрузкой в рабочее время
Статья была обновлена, с обновленным вариантом можно ознакомиться в статье: Установка Ubuntu по сети (DHCP, PXE, boot-menu)на примере
9 комментариев
и…
Тоже пришлось в компьютерном классе перейти на Убунту, тк лицензии на винду пришел виндец…
Ну и проблема с установкой и обновлением (12 компов в классе) сразу появилась — траф и скорость в школах ясно какие. Завтра же буду пробовать. Спасибо!
Да, кстати в локалке еще 2 десятка виндовых компов, но, судя по описанию с ними не должно быть проблем — инет им тоже будет открыт
А вот будут ли виндовые машины через него работать-вопрос интересный, там можно в локальных политиках прописать сервер обновлений, но это рассчитано на работу с WSUS.
можно поподробнее про установочный диск с такой пометкой… или ссылочку плз =)
releases.ubuntu.com/12.04.2/ubuntu-12.04.2-alternate-i386.iso.torrent