-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPXE-Server
133 lines (125 loc) · 9.72 KB
/
PXE-Server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Установка/настройка PXE-Server-@ на OC Linux RedOS 7.3.1 Workstation
!!!ВНИМАНИЕ!!! В данном примере создается изолированный сегмент сети, т.е. не нужно подключать к общей сети организации, т.к. может возникнуть конфликт DHCP-адресов.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
При создании виртуаки рекомендуется выделить: Sockets: 2; Cores: 2; Memory(MiB): 8192.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum update -y && yum upgrade -y && yum install -y dhcp tftp-server syslinux httpd |#|#| Установка требуемых пакетов для дальнейшей корректной работы PXE-Server-@ and OC
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После установки рабочей станции, обязательно нужно прописать статику(пример):
IP-адрес: 192.168.2.2; Mask: 255.255.255.0(24); Gateway: 192.168.2.2; Серверы DNS: 192.168.2.2.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
reboot
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Создадим следующие каталоги:
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/uefi
mkdir -p /var/lib/tftpboot/images/REDOS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Копируем нужные нам файлы для запуска установки ОС RedOS 7.3.1 по сети в режиме Legacy:
cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/memdisk /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/ldlinux.c32 /var/lib/tftpboot/
cp /usr/share/syslinux/libutil.c32 /var/lib/tftpboot/
chmod 777 /var/lib/tftpboot/pxelinux.0 |#|#| Выдача полных прав доступа для владельца файла, участников группы и всех остальных.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Выполняем последовательность команд для запуска установки ОС RedOS 7.3.1 по сети в режиме UEFI:
dnf download shim-x64 grub2-efi-x64 --downloaddir=/root/
cd /root/
rpm2cpio shim-x64-*.rpm | cpio -dimv
rpm2cpio grub2-efi-x64-*.rpm | cpio -dimv
cp ./boot/efi/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/uefi
cp ./boot/efi/EFI/redos/grubx64.efi /var/lib/tftpboot/uefi
chmod 777 /var/lib/tftpboot/uefi/*.*
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Копируем все файлы из iso-образа RedOS 7.3.1 в каталог /var/lib/tftpboot/images/REDOS
cp -vR "/run/media/user/redos-MUROM-7.3.1 x86_64/." /var/lib/tftpboot/images/REDOS
mount -t iso9660 -o loop redos-MUROM-7.2-x86_64-DVD1.iso /mnt/ |#|#| Монтирование образа
cp -vR /mnt/* /var/lib/tftpboot/images/REDOS/ |#|#| Копирование файлов
umount /mnt/ |#|#| Размонтировать образ
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Настройка DHCP-Server-@
nano /etc/dhcp/dhcpd.conf |#|#| Переходим в редактирование конфигурационного файла dhcpd.conf
Далее прописываем следующий конфиг:
non-authoritative;
allow bootp;
option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.2;
range 192.168.2.70 192.168.2.80;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.2.2;
if option architecture-type = 00:07 {
filename "uefi/grubx64.efi";
}
else {
filename "pxelinux.0";
}
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable dhcpd |#|#| Добавление службы dhcpd в автозапуск
systemctl start dhcpd |#|#| Запуск службы dhcpd
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Создание загрузочного меню для сетевой установки ОС RedOS 7.3.1 в режиме Legacy
nano /var/lib/tftpboot/pxelinux.cfg/default |#|#| Редактирование конфигурационного файла default
Далее прописываем следующий конфиг(адрес 192.168.2.2 меняем на тот, с которого загружается образ):
default menu.c32
PROMPT 0
TIMEOUT 150
MENU TITLE PXE Menu
LABEL REDOS 7.3
MENU LABEL REDOS 7.3
KERNEL images/REDOS/images/pxeboot/vmlinuz
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp inst.repo=http://192.168.2.2/images/REDOS/
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Создание загрузочного меню для сетевой установки ОС RedOS 7.3.1 в режиме UEFI
nano /var/lib/tftpboot/uefi/grub.cfg |#|#| Редактирование конфигурационного файла grub.cfg
Далее прописываем следующий конфиг(адрес 192.168.2.2 меняем на тот, с которого загружается образ):
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
menuentry 'REDOS 7.3' {
linux images/REDOS/images/pxeboot/vmlinuz ip=dhcp inst.repo=http://192.168.2.2/images/REDOS/
initrd images/REDOS/images/pxeboot/initrd.img
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Конфигурирование Web-Server-@ HTTPD
nano /etc/httpd/conf.d/pxeboot.conf |#|#| Создание и редактирование конфигурационного файла pxeboot.conf
Далее прописываем следующий конфиг:
Alias /images /var/lib/tftpboot/images
<Directory /var/lib/tftpboot/images>
Options Indexes FollowSymLinks
# access permission
Require ip 127.0.0.1 192.168.2.0/24
</Directory>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable httpd |#|#| Добавление службы httpd в автозапуск
systemctl start httpd |#|#| Запуск службы httpd
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Настройка и запуск службы TFTP
nano /usr/lib/systemd/system/tftp.service |#|#| Редактирование конфигурационного файла tftp.service
В секцию [Install], перед строкой "Also=tftp.socket" нужно добавить строку "WantedBy=multi-user.target"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable tftp |#|#| Добавление службы tftp в автозапуск
systemctl start tftp |#|#| Запуск службы tftp
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Если selinux находится в статусе enforcing, то создайте модуль политики безопасности selinux, для разрешения доступа с клиентов к web-серверу, который участвует в установке РЕД ОС по сети.
ausearch -c 'httpd' --raw | audit2allow -M my-httpd
semodule -i my-httpd.pp
------------------------------------------------------------------------------------------------------------------------------------------------------------------------