Меню Рубрики

Установка pxe сервера centos

Configure PXE (Network Boot) installation Server on CentOS 7.x

by Pradeep Kumar · Updated August 3, 2017

PXE (Preboot eXecution Environment) Server allows unattended or automated OS installation over the Network.The main benefit of pxe is that we don’t need any bootable drive to boot OS(Operating system) and we do not need to to burn any ISO file into DVD or usb device.

Once the PXE server is configured we can install hundreds of System at the same time over the network.As it works on Client-Server architecture, to get the OS installation on clients, boot the clients via PXE option.

In this article i am going to setup PXE Server on CentOS 7.x and then will try to install OS on the client using pxe boot.

Below are details of my Setup :

  • Server IP = 172.168.1.11
  • Host name = pxe.example.com
  • OS = CentOS 7.x
  • SELinux = enabled
  • Firewall = enabled

Step:1 Install required packages for PXE Setup

To install and Configure pxe server on centos 7.x we need the following packages “dhcp, tftp-server, ftp server(vsftpd), xinted”. Open the terminal execute beneath command :

Step:2 Configure DHCP Server for PXE

When we install dhcp package then a sample configuration file of dhcp server is created at “/usr/share/doc/dhcp*/dhcpd.conf.example“, though the configuration file of dhcp is at ‘/etc/dhcp/dhcpd.conf’.

Copy the following lines into the file ‘/etc/dhcp/dhcpd.conf’, replace the ip subnet and other details as per your environment.

Step:3 Edit and Config tftp server (/etc/xinetd.d/tftp)

TFTP (Trivial File Transfer Protocol ) is used to transfer files from data server to its clients without any kind of authentication. In case of PXE server setup tftp is used for bootstrap loading. To config tftp server, edit its configuration file ‘ /etc/xinetd.d/tftp’, change the parameter ‘ disable = yes ‘ to ‘ disable = no’ and leave the other parameters as it is.

All the network boot related files are to be placed in tftp root directory “/var/lib/tftpboot

Run the following commands to copy required network boot files in ‘/var/lib/tftpboot/’

Step:4 Mount CentOS 7.x ISO file and copy its contents to local ftp server

In my case i have already downloaded CentOS 7.x iso file on my PXE Server. Run the beneath commands to mount iso file and then copy its contents in ftp server’s directory ‘/var/ftp/pub

Copy Kernel file (vmlimz) and initrd file from mounted iso file to ‘/var/lib/tftpboot/networkboot/

Now you can unmount the iso file using ‘umount’ command

Step:5 Create kickStart & PXE menu file.

Before creating kickstart file, let’s first create the root password in an encrypted string because we will using that encrypted password string in kickstart file.

System default kickstart file is placed under /root with name ‘anaconda-ks.cfg’. We will be creating a new kickstart under the folder /var/ftp/pub with the name ‘centos7.cfg

Copy the following content into the new kickstart file. Please modify the kickstart file as per your needs.

Create a PXE menu file (/var/lib/tftpboot/pxelinux.cfg/default), copy the following contents into the pxe menu file.

Step:6 Start and enable xinetd, dhcp and vsftpd service.

Use the beneath commands to start and enable xinetd, dhcp and vsftpd.

In Case SELinux is enabled, then set the following selinux rule for ftp server.

Open the ports in the OS firewall using following firewall-cmd commands

Up to this point, PXE server installation and configuration is completed now.

Step:7 Boot the clients with pxe boot option.

As can see above that installation has been started with any human interaction. I hope you enjoy the installation and configuration of PXE server. Please share your feedback and comments.

  • Next story How to Access Google Drive in Ubuntu 16.04 LTS
  • Previous story 11 Reason Why To Migrate From Windows Desktop To Linux Desktop

23 Responses

I was getting a Connection Timed Out when connecting to my PXE server. The instructions don’t specify to start and enable tftp. Doing that fixed that issue!

источник

PXE загрузочный сервер

Настроим загрузочный PXE сервер. Загрузить настроенную операционную систему на компьютере без жесткого диска всегда приятно. Использовать утилиты для диагностики и работы с жесткими дисками удобно и практично. Настройка на любом дистрибутиве Linux.

Введение

Давно хотел иметь в локальной сети загрузочный сервер PXE с помощью которого можно запускать на компьютерах не имеющих жесткого диска нужную мне операционную систему со всеми необходимыми настройками. Использование набора утилит для диагностики и работы с системой загружаемых по локальной сети тоже весьма удобная штука. В дистрибутиве Calculate Linux создание своего загрузочного образа делается просто, понятно и при хорошем знании позволяет творить чудеса.

После всех настроек мы получим возможность используя PXE загрузчик:

  • Загружать операционную систему Calculate Linux,
  • Проверить память программой Memtest86+,
  • Проверить жесткие диски программами MHDD и Victoria,
  • Работать с жесткими дисками программой Clonezilla.

Вся настройка производится на операционной система CentOS 7. Настроить можно и на любой другой системе, так как используемые пакеты присутствую во всех операционных системах Linux.

Подготовка системы для работы PXE сервера

Для загрузки по PXE в Bios подключаемого компьютера должна быть включена и настроена данная функция.

Установим необходимые пакеты без вопросов:

Настройка DHCP сервера

В локальной сети должен работать только один сервер DHCP.

Мои настройки будут производится на системе работающей в качестве шлюза локальной сети. Я не буду рассматривать настройку самого шлюза а лишь затрону моменты необходимые для нас.

Читайте также:  Установка комфортного доступа бмв

Параметры сетевой карты которая смотрит во внутреннюю сеть:

Как видна моя внутренняя локальная сеть будет 192.168.1.0/24

Приведем конфигурационный файл DHCP сервера к следующему виду:

Использование DHCP сервера очень удобно, так как позволяет указывает различные параметры которые значительно упрощают жизнь при работе с локальной сетью.

Одно из таких возможностей, это закреплении ip адреса компьютера на основании мак адреса сетевой карты. Достаточно зная мак адрес нужного компьютера добавить в файл настройки DHCP строчки:

После перезагрузки службы параметры вступят в силу:

Настройка TFTP сервера

TFTP сервер используется главным образом для первоначальной загрузки бездисковых рабочих систем. Настроим конфигурационный файл:

Настройка NFS сервера

Приведем файл настройки к виду:

Например, я использую сервер nfs для размещения бэкапов виртуальных машин Proxmox.

В моем случае необходимо добавить строчку:

Где парметры имеют следующие значения:

  • /sevo44/pve/backup — расшариваемая директория;
  • 192.168.0.100 — IP адрес клиента с которого может быть подключение (можно укащать 192.168.0.0/24 тогда будет возможность подключения для всей подсети);
  • rw – доступ на чтение и запись (может принимать значение ro-только чтение);
  • sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;
  • no_root_squash – запрет подмены uid/gid для суперпользователя (root). По умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
  • all_squash / no_all_squash — установка подмены идентификатора от всех пользователей all_squash — подмена запросов от ВСЕХ пользователей (не только root) на анонимного uid/gid, либо на пользователя, заданного в параметре anonuid/anongid. Используется обычно для публичного экспорта директорий. no_all_squash — запрет подмены uid/gid для от всех пользователей.

Создание папки и назначение прав доступа осуществляется командами:

Для полноценой работы необходимо открыть доступ необходимым портам. Для FirewallD команды имеют вид:

Внимательно отнеситесь к указанию зоны! Более подробно можно прочитать в статье FirewallD базовая настройка.

Создание загрузочного меню PXE сервера

Скопируем необходимые файлы для работы меню:

Создадим папку для файлов меню загрузки:

Создание главного меню PXE сервера

В главном меню мы будем использовать варианты загрузки системы и переход на подменю с утилитами по паролю.

Создадим файл главного меню:

Файл фонового изображения меню должен быть размером 640х480 пикселей, в формате PNG или JPEG.

Создадим папку для фоновых изображений и папку для загрузочных live образов систем:

Загружаем необходимый iso образ любыми удобными вам способами и копируем содержимое в нужную папку.

При использовании образа с графической оболочкой KDE для стабильной работы необходимо использовать 4 G оперативной памяти!

Приведу лишь команды которые необходимы для монтирования и размонтирования образа iso:

Настройки параметров для загрузки разных операционных систем различаются.

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

Создание подменю для PXE сервера

Все утилиты я намеренно вывел в отдельное подменю и закрыл паролем. Так мне спокойней и пользователи не полезут туда куда им не надо.

Мой файл подменю для utilits выглядит так:

Скачать необходимый iso образ Clonezilla вы на сайт разработчика. На сайте вы можете найти всю необходимую информацию для настройки и работы с этой замечательной системой.

Видео

На видео показано как работает система Calculate Linux которую я настроил под свои нужды запускаемая с помощью PXE сервера.

Вывод

Имея под рукой такой сервер я без труда могу запустить на любом компьютере, с возможностью PXE загрузки, операционную систему и поработать в ней. Можно загрузить ClineZilla и произвести любые манипуляции с жесткими дисками. Конечно система с KDE тяжеловата и я обязательно настрою образ с XFCE, для работы на компьютерах со слабыми техническими параметрами.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-01

Всем привет продолжаем настройку нашего PXE server, в 6 части мы рассмотрели как установить FreeBSD по сети, сегодня мы разберем как установить CentOS 6 и CentOS 7 через PXE сервер. Для выполнения поставленной задачи у вас должны быть скачаны нужные вам релизы CentOS.

Как и с другими ОС нужно создать отдельную папку в /srv/tftp, назовем ее centos.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-02

В папке centos создадим несколько папок с именами 6 и 7, на будущее можно и 8.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-03

Теперь нам нужно поместить в эти папки загрузочные файлы, найти которые можно на установочном диске, если его нет то скачать можно у меня с яндекс диска . Диски необходимые нам называются initrd.img и vmlinuz

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-05

копируем их на наш сервер PXE.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-06

Далее нужно подправить конфиг /srv/tftp/pxelinux.cfg/linux и добавить в него вот такие вот строки

Читайте также:  Установка лифта в ростове

LABEL CentOS-7-x64
kernel centos/7/vmlinuz
append initrd=centos/7/initrd.img method=http://mirror.mirohost.net/centos/7/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000

LABEL CentOS-6-x64
kernel centos/6/vmlinuz
append initrd=centos/6/initrd.img method=http://mirror.mirohost.net/centos/6/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-07

Пробуем с клиентской машины загрузить CentOS по PXE, выбираем для примера CentOS 7.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-08

Пошла загрузка, но мы получили вот такую вот ошибку что mirror.mirohost.net не доступен открываем его на проксе.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-09

После открытия видим, что начинается скачивание пакетов.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-10

Появилось окно установки CentOS 7.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-11

Проверяем CentOS 6, выбираем язык начнется докачивание пакетов.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-12

Начинается установка CentOS 6.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-7 часть. Добавляем CentOS-13

В следующих статьях я расскажу как сделать свой локальный репозиторий CentOS. Вот так вот просто установить CentOS 6 и CentOS 7 по сети с помощью нашего PXE server. В 8 части я расскажу как добавить на ваш сервер утилиту проверки памяти Memtest86+.

источник

Setting up a ‘PXE Network Boot Server’ for Multiple Linux Distribution Installations in RHEL/CentOS 7

by Matei Cezar | Published: October 16, 2014 | Last Updated: January 2, 2015

PXE Server – Preboot eXecution Environment – instructs a client computer to boot, run or install an operating system directly form a network interface, eliminating the need to burn a CD/DVD or use a physical medium, or, can ease the job of installing Linux distributions on your network infrastructure on multiple machines the same time.

Setting PXE Network Boot in RHEL/CentOS 7

Requirements

This article will explain how you can install and configure a PXE Server on RHEL/CentOS 7 x64-bit with mirrored local installation repositories, sources provided by CentOS 7 DVD ISO image, with the help of DNSMASQ Server.

Which provides DNS and DHCP services, Syslinux package which provides bootloaders for network booting, TFTP-Server, which makes bootable images available to be downloaded via network using Trivial File Transfer Protocol (TFTP) and VSFTPD Server which will host the local mounted mirrored DVD image – which will act as an official RHEL/CentOS 7 mirror installation repository from where the installer will extract its required packages.

Step 1: Install and configure DNSMASQ Server

1. No need to remind you that is absolutely demanding that one of your network card interface, in case your server poses more NICs, must be configured with a static IP address from the same IP range that belongs to the network segment that will provide PXE services.

So, after you have configured your static IP Address, updated your system and performed other initial settings, use the following command to install DNSMASQ daemon.

2. DNSMASQ main default configuration file located in /etc directory is self-explanatory but intends to be quite difficult to edit, do to its highly commented explanations.

First make sure you backup this file in case you need to review it later and, then, create a new blank configuration file using your favorite text editor by issuing the following commands.

3. Now, copy and paste the following configurations on dnsmasq.conf file and assure that you change the below explained statements to match your network settings accordingly.

The statements that you need to change are follows:

    interface – Interfaces that the server should listen and prov >For other advanced options concerning configuration file feel free to read dnsmasq manual.

Step 2: Install SYSLINUX Bootloaders

4. After you have edited and saved DNSMASQ main configuration file, go ahead and install Syslinx PXE bootloader package by issuing the following command.

Install Syslinux Bootloaders

5. The PXE bootloaders files reside in /usr/share/syslinux absolute system path, so you can check it by listing this path content. This step is optional, but you might need to be aware of this path because on the next step, we will copy of all its content to TFTP Server path.

Step 3: Install TFTP-Server and Populate it with SYSLINUX Bootloaders

6. Now, let’s move to next step and install TFTP-Server and, then, copy all bootloders files provided by Syslinux package from the above listed location to /var/lib/tftpboot path by issuing the following commands.

Step 4: Setup PXE Server Configuration File

7. Typically the PXE Server reads its configuration from a group of specific files (GUID files – first, MAC files – next, Default file – last) hosted in a folder called pxelinux.cfg, which must be located in the directory specified in tftp-root statement from DNSMASQ main configuration file.

Create the required directory pxelinux.cfg and populate it with a default file by issuing the following commands.

8. Now it’s time to edit PXE Server configuration file with valid Linux distributions installation options. Also note that all paths used in this file must be relative to the /var/lib/tftpboot directory.

Below you can see an example configuration file that you can use it, but modify the installation images (kernel and initrd files), protocols (FTP, HTTP, HTTPS, NFS) and IPs to reflect your network installation source repositories and paths accordingly.

Читайте также:  Установка крыла на хендай солярис

Add the following whole excerpt to the file.

As you can see CentOS 7 boot images (kernel and initrd) reside in a directory named centos7 relative to /var/lib/tftpboot (on an absolute system path this would mean /var/lib/tftpboot/centos7) and the installer repositories can be reached by using FTP protocol on 192.168.1.20/pub network location – in this case the repos are hosted locally because the IP address is the same as the PXE server address).

Also menu label 3 specifies that the client installation should be done from a remote location via VNC (here replace VNC password with a strong password) in case you install on a headless client and the menu label 2 specifies as
installation sources a CentOS 7 official Internet mirror (this case requires an Internet connection available on client through DHCP and NAT).

Important: As you see in the above configuration, we’ve used CentOS 7 for demonstration purpose, but you can also define RHEL 7 images, and following whole instructions and configurations are based on CentOS 7 only, so be careful while choosing distribution.

Step 5: Add CentOS 7 Boot Images to PXE Server

9. For this step CentOS kernel and initrd files are required. To get those files you need the CentOS 7 DVD ISO Image. So, go ahead and download CentOS DVD Image, put it in your DVD drive and mount the image to /mnt system path by issuing the below command.

The reason for using the DVD and not a Minimal CD Image is the fact that later this DVD content would be used to create the
locally installer repositories for FTP sources.

If your machine has no DVD drive you can also download CentOS 7 DVD ISO locally using wget or curl utilities from a CentOS mirror and mount it.

10. After the DVD content is made available, create the centos7 directory and copy CentOS 7 bootable kernel and initrd images from the DVD mounted location to centos7 folder structure.

Copy CentOS Bootable Files

The reason for using this approach is that, later you can create new separate directories in /var/lib/tftpboot path and add other Linux distributions to PXE menu without messing up the entire directory structure.

Step 6: Create CentOS 7 Local Mirror Installation Source

11. Although you can setup Installation Source Mirrors via a variety of protocols such as HTTP, HTTPS or NFS, for this guide, I have chosen FTP protocol because is very reliable and easy to setup with the help of vsftpd server.

Further install vsftpd daemon, copy all DVD mounted content to vsftpd default server path (/var/ftp/pub) – this can take a while depending on your system resources and append readable permissions to this path by issuing the following commands.

Set Permissions on FTP Path

Step 7: Start and Enable Daemons System-Wide

12. Now that the PXE server configuration is finally finished, start DNSMASQ and VSFTPD servers, verify their status and enable it system-wide, to automatically start after every system reboot, by running the below commands.

Step 8: Open Firewall and Test FTP Installation Source

13. To get a list of all ports that needs to be open on your Firewall in order for client machines to reach and boot from PXE server, run netstat command and add CentOS 7 Firewalld rules accordingly to dnsmasq and vsftpd listening ports.

14. To test FTP Installation Source network path open a browser locally (lynx should do it) or on a different computer and type the IP Address of your PXE server with
FTP protocol followed by /pub network location on URL filed and the result should be as presented in the below screenshot.

Access FTP Files via Browser

15. To debug PXE server for eventual misconfigurations or other information and diagnostics in live mode run the following command.

Check PXE Logs for Errors

16. Finally, the last required step that you need to do is to unmount CentOS 7 DVD and remove the physical medium.

Step 9: Configure Clients to Boot from Network

17. Now your clients can boot and install CentOS 7 on their machines by configuring Network Boot as primary boot device from their systems BIOS or by hitting a specified key during BIOS POST operations as specified in motherboard manual.

In order to choose network booting. After first PXE prompt appears, press F8 key to enter presentation and then hit Enter key to proceed forward to PXE menu.

18. Once you have reached PXE menu, choose your CentOS 7 installation type, hit Enter key and continue with the installation procedure the same way as you might install it from a local media boot device.

Please note down that using variant 2 from this menu requires an active Internet connection on the target client. Also, on below
screenshots you can see an example of a client remote installation via VNC.

Remote Linux Installation via VNC

Remote Installation of CentOS

That’s all for setting up a minimal PXE Server on CentOS 7. On my next article from this series, I will discuss other issues concerning this PXE server configuration such as how to setup automated installations of CentOS 7 using Kickstart files and adding other Linux distributions to PXE menu – Ubuntu Server and Debian 7.

источник

Добавить комментарий

Adblock
detector