add pxe files
This commit is contained in:
@@ -10,6 +10,14 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
"""
|
"""
|
||||||
Build the iso pxe (dhcpd, tftpd, httpd service for the sunhpc cluster.
|
Build the iso pxe (dhcpd, tftpd, httpd service for the sunhpc cluster.
|
||||||
|
|
||||||
|
1) config interface(e,g.. eth0/eth1) ip address
|
||||||
|
2) source /opt/sunhpc/etc/env.sunhpc
|
||||||
|
3) git clone https://gitee.com/qcsun/sunhpc.git
|
||||||
|
4) git clone https://gitee.com/qcsun/tools.git
|
||||||
|
5) rpm -ivh tools/sunhpc-python-3.12.0-1.el8.x86_64.rpm
|
||||||
|
6) sunhpc pxelinux build Rocky-8.7-x86_64-dvd1.iso
|
||||||
|
7) sunhpc pxelinux build cdpxe dev=eth1 repo=/export/sunhpc/install/repos/Rocky/8/x86_64
|
||||||
|
|
||||||
<param type='Bool' name='Quiet'>
|
<param type='Bool' name='Quiet'>
|
||||||
Whether to output detailed information, default: no
|
Whether to output detailed information, default: no
|
||||||
</param>
|
</param>
|
||||||
@@ -27,14 +35,14 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
</param>
|
</param>
|
||||||
|
|
||||||
<param type='string' name='boot'>
|
<param type='string' name='boot'>
|
||||||
supply an boot mode, mbr or uefi. Default: UEFI
|
supply an boot mode, mbr or uefi. Default: MBR
|
||||||
</param>
|
</param>
|
||||||
|
|
||||||
<example cmd='pxelinux build cdpxe'>
|
<example cmd='pxelinux build cdpxe'>
|
||||||
In local build the iso pxe dhcpd, tftpd, httpd services.
|
In local build the iso pxe dhcpd, tftpd, httpd services.
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example cmd='pxelinux build cdpxe'>
|
<example cmd='pxelinux build cdpxe dev=eth1 repo=/export/sunhpc/install/repos/Rocky/8/x86_64'>
|
||||||
Build the iso pxe dhcpd, tftpd, httpd service.
|
Build the iso pxe dhcpd, tftpd, httpd service.
|
||||||
</example>
|
</example>
|
||||||
"""
|
"""
|
||||||
@@ -71,70 +79,6 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
if owner:
|
if owner:
|
||||||
os.system('chown %s %s' % (owner, dst))
|
os.system('chown %s %s' % (owner, dst))
|
||||||
|
|
||||||
def writeKSRepos(self, ksdirs, httpd_repos, rpath, addr):
|
|
||||||
if not os.path.exists(ksdirs):
|
|
||||||
os.makedirs(ksdirs)
|
|
||||||
|
|
||||||
if not os.path.islink(httpd_repos):
|
|
||||||
os.symlink(rpath, httpd_repos)
|
|
||||||
|
|
||||||
rootpw = '$6$eT.sWNwV69wyvhaR$N5tY4rJn6Y2slOrwuejfUBq3MhC5SNe1gUfTSYmOACObwW4ckUK9fjkKwC9TgSPhwwlaGdbtn0EFg11TJmAbC1'
|
|
||||||
usernm = 'admin'
|
|
||||||
userpw = '$6$0WN9CulSREVORA0S$FVWh6tkvdncbmSrsNPEb13GwxnGnEOKZliZLdL2IdY5E/fzLB8QmZAmgxyHh6ElSjObUCTbDEJ0l9.wRCRrsU.'
|
|
||||||
|
|
||||||
bpacks, baddon, banaconda, bender = '%packages', '%addon', '%anaconda', '%end'
|
|
||||||
ksfile = os.path.join(ksdirs, 'kickstart.conf')
|
|
||||||
with open(ksfile, 'w') as f:
|
|
||||||
f.write(textwrap.dedent("""\
|
|
||||||
#version=RHEL8
|
|
||||||
# Use graphical install
|
|
||||||
graphical
|
|
||||||
|
|
||||||
%s
|
|
||||||
@^graphical-server-environment
|
|
||||||
@container-management
|
|
||||||
@development
|
|
||||||
@graphical-admin-tools
|
|
||||||
@headless-management
|
|
||||||
@infiniband
|
|
||||||
@legacy-unix
|
|
||||||
@network-file-system-client
|
|
||||||
@performance
|
|
||||||
@remote-desktop-clients
|
|
||||||
@remote-system-management
|
|
||||||
@rpm-development-tools
|
|
||||||
@system-tools
|
|
||||||
@web-server
|
|
||||||
%s
|
|
||||||
|
|
||||||
keyboard --xlayouts='us'
|
|
||||||
lang en_US.UTF-8
|
|
||||||
firstboot --enable
|
|
||||||
timezone Asia/Shanghai --isUtc --nontp
|
|
||||||
|
|
||||||
network --bootproto=dhcp --onboot=on --ipv6=auto
|
|
||||||
network --hostname=compute.local
|
|
||||||
clearpart --all --initlabel
|
|
||||||
autopart --type=lvm
|
|
||||||
|
|
||||||
repo --name="AppStream" --baseurl=http://%s/redhat/AppStream
|
|
||||||
repo --name="BaseOS" --baseurl=http://%s/redhat/BaseOS
|
|
||||||
|
|
||||||
rootpw --iscrypted %s
|
|
||||||
user --name=%s --password=%s --iscrypted --gecos="%s"
|
|
||||||
|
|
||||||
%s com_redhat_kdump --disable --reserve-mb='auto'
|
|
||||||
%s
|
|
||||||
|
|
||||||
%s
|
|
||||||
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
|
||||||
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
|
||||||
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
|
||||||
%s
|
|
||||||
""" % (bpacks, bender, addr, addr, rootpw, usernm, userpw, usernm, baddon, bender, banaconda, bender)))
|
|
||||||
|
|
||||||
os.system('chmod 777 %s' % ksfile)
|
|
||||||
|
|
||||||
def run(self, params, args):
|
def run(self, params, args):
|
||||||
|
|
||||||
(quiet, pxedir, dev, rpath, boot) = self.fillParams([
|
(quiet, pxedir, dev, rpath, boot) = self.fillParams([
|
||||||
@@ -142,9 +86,8 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
('pxedir', '/tftpboot/pxelinux'),
|
('pxedir', '/tftpboot/pxelinux'),
|
||||||
('dev', None),
|
('dev', None),
|
||||||
('repo', ''),
|
('repo', ''),
|
||||||
('boot', 'uefi')
|
('boot', 'mbr')
|
||||||
])
|
])
|
||||||
|
|
||||||
q = self.str2bool(quiet)
|
q = self.str2bool(quiet)
|
||||||
|
|
||||||
if dev is None:
|
if dev is None:
|
||||||
@@ -168,15 +111,40 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
self.installHttpd(dev, rpath, address, q)
|
self.installHttpd(dev, rpath, address, q)
|
||||||
|
|
||||||
# off selinux
|
# off selinux
|
||||||
os.system('sed -i "s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config"')
|
os.system('sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config')
|
||||||
|
|
||||||
def installHttpd(self, devices, rpath, address, q):
|
def installHttpd(self, devices, rpath, address, q):
|
||||||
self.msg('Starting build the httpd service...', q=q)
|
self.msg('Starting build the httpd service...', q=q)
|
||||||
|
|
||||||
rootdir = '/var/www/html'
|
webdir = '/var/www/html'
|
||||||
ksdirs = os.path.join(rootdir, 'ks')
|
ksdirs = os.path.join(webdir, 'ksfile')
|
||||||
httpd_repos = os.path.join(rootdir, 'redhat')
|
redhat = os.path.join(webdir, 'redhat')
|
||||||
self.writeKSRepos(ksdirs, httpd_repos, rpath, address)
|
repos = os.path.join(redhat, 'r8')
|
||||||
|
|
||||||
|
if not os.path.exists(ksdirs):
|
||||||
|
os.makedirs(ksdirs)
|
||||||
|
|
||||||
|
if not os.path.exists(redhat):
|
||||||
|
os.makedirs(redhat)
|
||||||
|
|
||||||
|
if not os.path.islink(repos):
|
||||||
|
os.symlink(rpath, repos)
|
||||||
|
|
||||||
|
shared = '/opt/sunhpc/share/pxeboot/kickstart'
|
||||||
|
ksfile = os.listdir(shared)
|
||||||
|
for i in ksfile:
|
||||||
|
if i.startswith('r8_min.conf'):
|
||||||
|
self.msg('Copying to %s - %s' % (ksdirs, i), q=q)
|
||||||
|
self.copyit(os.path.join(shared, i), os.path.join(ksdirs, i), 0o755, '0.0')
|
||||||
|
if i.startswith('r8_gui.conf'):
|
||||||
|
self.msg('Copying to %s - %s' % (ksdirs, i), q=q)
|
||||||
|
self.copyit(os.path.join(shared, i), os.path.join(ksdirs, i), 0o755, '0.0')
|
||||||
|
|
||||||
|
if not os.path.exists(os.path.join(ksdirs, i)):
|
||||||
|
continue
|
||||||
|
|
||||||
|
# replace ip address for kickstart config file.
|
||||||
|
os.system('sed -i "s/ipaddress/%s/g" %s' % (address, os.path.join(ksdirs, i)))
|
||||||
|
|
||||||
sunhpc_httpd_config = '/etc/httpd/conf.d/ks-sunhpc.conf'
|
sunhpc_httpd_config = '/etc/httpd/conf.d/ks-sunhpc.conf'
|
||||||
if not os.path.exists(sunhpc_httpd_config):
|
if not os.path.exists(sunhpc_httpd_config):
|
||||||
@@ -205,7 +173,7 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
Require all granted
|
Require all granted
|
||||||
</Directory>
|
</Directory>
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
""" % (address, rootdir, ksdirs, httpd_repos)))
|
""" % (address, webdir, ksdirs, repos)))
|
||||||
|
|
||||||
self.fw.addports(['80', '443'], ['tcp'])
|
self.fw.addports(['80', '443'], ['tcp'])
|
||||||
self.fw.addservice('http')
|
self.fw.addservice('http')
|
||||||
@@ -226,8 +194,16 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
cmds += '--disablerepo=* --enablerepo=sunhpc-appstream,sunhpc-baseos'
|
cmds += '--disablerepo=* --enablerepo=sunhpc-appstream,sunhpc-baseos'
|
||||||
self.shcmd(cmds)
|
self.shcmd(cmds)
|
||||||
|
|
||||||
|
# pxedir: /tftpboot/pxelinux
|
||||||
|
c7 = os.path.join(pxedir, 'c7')
|
||||||
|
r8 = os.path.join(pxedir, 'r8')
|
||||||
|
r9 = os.path.join(pxedir, 'r9')
|
||||||
|
pd = os.path.join(pxedir, 'pxelinux.cfg')
|
||||||
if not os.path.exists(pxedir):
|
if not os.path.exists(pxedir):
|
||||||
os.makedirs(pxedir)
|
os.makedirs(c7)
|
||||||
|
os.makedirs(r8)
|
||||||
|
os.makedirs(r9)
|
||||||
|
os.makedirs(pd)
|
||||||
|
|
||||||
self.fw.addports(['69'], ['udp'])
|
self.fw.addports(['69'], ['udp'])
|
||||||
self.fw.addservice('tftp')
|
self.fw.addservice('tftp')
|
||||||
@@ -272,13 +248,14 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
|
|
||||||
os.system('systemctl daemon-reload')
|
os.system('systemctl daemon-reload')
|
||||||
os.system('systemctl restart tftp.service')
|
os.system('systemctl restart tftp.service')
|
||||||
|
|
||||||
#
|
#
|
||||||
# copy uefi boot file
|
# copy uefi boot file
|
||||||
# BaseOS/Packages/s/shim-x64-15.6-1.el8.x86_64.rpm
|
# BaseOS/Packages/s/shim-x64-15.6-1.el8.x86_64.rpm
|
||||||
# BaseOS/Packages/g/grub2-efi-x64-2.02-142.el8.rocky.0.2.x86_64.rpm
|
# BaseOS/Packages/g/grub2-efi-x64-2.02-142.el8.rocky.0.2.x86_64.rpm
|
||||||
|
# /usr/share/syslinux/{pxelinux.0, menu.c32}
|
||||||
|
# isolinux/{ldlinux.c32, libcom32.c32, libutil.c32}
|
||||||
# decompress: rpm2cpio xxx-xxx-xxx.rpm |cpio -dim
|
# decompress: rpm2cpio xxx-xxx-xxx.rpm |cpio -dim
|
||||||
# boot/efi/EFI/BOOT/BOOTX64.EFI
|
# boot/efi/EFI/BOOT/shimx64.efi
|
||||||
# boot/efi/EFI/rocky/grubx64.efi
|
# boot/efi/EFI/rocky/grubx64.efi
|
||||||
#
|
#
|
||||||
share = '/opt/sunhpc/share/pxeboot'
|
share = '/opt/sunhpc/share/pxeboot'
|
||||||
@@ -287,85 +264,44 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
pxefile = os.listdir(share) + os.listdir(repos)
|
pxefile = os.listdir(share) + os.listdir(repos)
|
||||||
for i in pxefile:
|
for i in pxefile:
|
||||||
if i.startswith('initrd.img'):
|
if i.startswith('initrd.img'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (r8, i), q=q)
|
||||||
self.copyit(os.path.join(repos, i), os.path.join(pxedir, i), 0o755, '0.0')
|
self.copyit(os.path.join(repos, i), os.path.join(r8, i), 0o755, '0.0')
|
||||||
|
|
||||||
if i.startswith('vmlinuz'):
|
if i.startswith('vmlinuz'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (r8, i), q=q)
|
||||||
self.copyit(os.path.join(repos, i), os.path.join(pxedir, i), 0o755, '0.0')
|
self.copyit(os.path.join(repos, i), os.path.join(r8, i), 0o755, '0.0')
|
||||||
|
|
||||||
if i.startswith('memtest'):
|
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
|
||||||
self.copyit(os.path.join(repos, i), os.path.join(pxedir, i), 0o755, '0.0')
|
|
||||||
|
|
||||||
if i.startswith('BOOTX64.EFI'):
|
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
|
||||||
|
|
||||||
if i.startswith('grubx64.efi'):
|
if i.startswith('grubx64.efi'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
|
||||||
if i.startswith('pxelinux.0'):
|
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
|
||||||
|
|
||||||
if i.startswith('ldlinux.c32'):
|
if i.startswith('ldlinux.c32'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('libcom32.c32'):
|
||||||
if i.startswith('lpxelinux.0'):
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('libutil.c32'):
|
||||||
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('menu.c32'):
|
||||||
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('pxelinux.0'):
|
||||||
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('shimx64.efi'):
|
||||||
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
if i.startswith('vesamenu.c32'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
||||||
|
|
||||||
if i.startswith('gpxelinux.0'):
|
if i.startswith('default'):
|
||||||
self.msg('Copying to %s - %s' % (pxedir, i), q=q)
|
self.msg('Copying to %s - %s' % (pd, i), q=q)
|
||||||
self.copyit(os.path.join(share, i), os.path.join(pxedir, i), 0o644, '0.0')
|
self.copyit(os.path.join(share, i), os.path.join(pd, i), 0o644, '0.0')
|
||||||
|
|
||||||
self.writeBootCFG(pxedir, boot, address, q)
|
# replace ip address for pxelinux.cfg/default
|
||||||
|
os.system('sed -i "s/ipaddress/%s/g" %s' % (address, os.path.join(pd, 'default')))
|
||||||
|
|
||||||
def writeBootCFG(self, pxedirs, boot, address, q):
|
|
||||||
|
|
||||||
# pxedirs : /tftpboot/pxelinux
|
|
||||||
# boot : mbr
|
|
||||||
|
|
||||||
ksfile = 'http://%s/ks/kickstart.conf' % address
|
|
||||||
images = 'http://%s/redhat/image/' % address
|
|
||||||
pxedir = os.path.join(pxedirs, 'pxelinux.cfg')
|
|
||||||
if not os.path.exists(pxedir):
|
|
||||||
os.makedirs(pxedir)
|
|
||||||
|
|
||||||
if boot.lower() in ['mbr']:
|
|
||||||
|
|
||||||
default = os.path.join(pxedir, 'default')
|
|
||||||
self.msg('Configure pxelinux pxe boot file to %s ' % (default), q=q)
|
|
||||||
with open(default, 'w') as f:
|
|
||||||
f.write(textwrap.dedent("""\
|
|
||||||
#
|
|
||||||
# Generated by sunhpc pxelinux build tftpd
|
|
||||||
#
|
|
||||||
default sunhpc
|
|
||||||
prompt 0
|
|
||||||
label sunhpc
|
|
||||||
kernel vmlinuz
|
|
||||||
append initrd=initrd.img inst.ks=%s inst.stage2=%s quiet net.ifnames=0
|
|
||||||
""" % (ksfile, images)))
|
|
||||||
os.chmod(default, 0o0664)
|
|
||||||
os.system('chown root.apache %s' % default)
|
|
||||||
else:
|
|
||||||
|
|
||||||
default = os.path.join(pxedirs, 'grub.cfg')
|
|
||||||
with open(default, 'w') as f:
|
|
||||||
f.write(textwrap.dedent("""\
|
|
||||||
#
|
|
||||||
# the file generate by sunhpc
|
|
||||||
#
|
|
||||||
set timeout = 30
|
|
||||||
menuentry 'Install Rocky 8' {
|
|
||||||
initrdefi pxelinux/initrd.img
|
|
||||||
linuxefi pxelinux/vmlinuz inst.ks=%s inst.stage2=%s quiet net.ifnames=0
|
|
||||||
}
|
|
||||||
""" % (ksfile, images)))
|
|
||||||
|
|
||||||
def installDhcpd(self, devices, boot, address, q):
|
def installDhcpd(self, devices, boot, address, q):
|
||||||
self.msg('Starting build the dhcpd service...', q=q)
|
self.msg('Starting build the dhcpd service...', q=q)
|
||||||
@@ -409,22 +345,10 @@ class Command(sunhpc.commands.pxelinux.build.command):
|
|||||||
class "pxeclients" {
|
class "pxeclients" {
|
||||||
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
|
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
|
||||||
next-server %s;
|
next-server %s;
|
||||||
|
if option arch-type = 00:07 {
|
||||||
if exists user-class and option user-class = "iPXE" {
|
filename "shimx64.efi";
|
||||||
filename "ipxe_after/index.ipxe";
|
|
||||||
} else {
|
} else {
|
||||||
if option arch-type = 00:00 {
|
filename "pxelinux.0";
|
||||||
# 0x00 0x00 x86 BIOS
|
|
||||||
filename "pxelinux.0";
|
|
||||||
} else if option arch-type = 00:06 {
|
|
||||||
# 0x00 0x06 x86 UEFI
|
|
||||||
filename "BOOTX86.EFI";
|
|
||||||
} else if option arch-type = 00:07 {
|
|
||||||
# 0x00 0x07 x64 UEFI
|
|
||||||
filename "BOOTX64.EFI";
|
|
||||||
} else {
|
|
||||||
filename "pxelinux.0";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
100
share/pxeboot/default
Normal file
100
share/pxeboot/default
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
default vesamenu.c32
|
||||||
|
timeout 300
|
||||||
|
|
||||||
|
display boot.msg
|
||||||
|
|
||||||
|
menu clear
|
||||||
|
menu background splash.png
|
||||||
|
menu title CentOS and Rocky Linux Install
|
||||||
|
menu vshift 8
|
||||||
|
menu rows 18
|
||||||
|
menu margin 8
|
||||||
|
menu helpmsgrow 15
|
||||||
|
menu tabmsgrow 13
|
||||||
|
|
||||||
|
menu color border * #00000000 #00000000 none
|
||||||
|
menu color sel 0 #ffffffff #00000000 none
|
||||||
|
menu color title 0 #ff7ba3d0 #00000000 none
|
||||||
|
menu color tabmsg 0 #ff3a6496 #00000000 none
|
||||||
|
menu color unsel 0 #84b8ffff #00000000 none
|
||||||
|
menu color hotsel 0 #84b8ffff #00000000 none
|
||||||
|
menu color hotkey 0 #ffffffff #00000000 none
|
||||||
|
menu color help 0 #ffffffff #00000000 none
|
||||||
|
menu color scrollbar 0 #ffffffff #ff355594 none
|
||||||
|
menu color timeout 0 #ffffffff #00000000 none
|
||||||
|
menu color timeout_msg 0 #ffffffff #00000000 none
|
||||||
|
menu color cmdmark 0 #84b8ffff #00000000 none
|
||||||
|
menu color cmdline 0 #ffffffff #00000000 none
|
||||||
|
|
||||||
|
menu tabmsg Press Tab for full configuration options on menu items.
|
||||||
|
menu separator # insert an empty line
|
||||||
|
menu separator # insert an empty line
|
||||||
|
|
||||||
|
menu begin Install CentOS 7
|
||||||
|
menu title Install CentOS 7
|
||||||
|
|
||||||
|
label linux 7
|
||||||
|
menu label ^Auto Install CentOS 7 (Minimal)
|
||||||
|
kernel c7/vmlinuz
|
||||||
|
append initrd=c7/initrd.img inst.ks=http://ipaddress/ksfile/c7_min.conf quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 7
|
||||||
|
menu label ^Auto Install CentOS 7 (^GUI)
|
||||||
|
kernel c7/vmlinuz
|
||||||
|
append initrd=c7/initrd.img inst.ks=http://ipaddress/ksfile/c7_gui.conf quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 7
|
||||||
|
menu label ^Manual Install CentOS 7
|
||||||
|
kernel c7/vmlinuz
|
||||||
|
append initrd=c7/initrd.img inst.repo=http://ipaddress/redhat/c7 quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 7
|
||||||
|
menu indent count 5
|
||||||
|
menu label ^Rescue CentOS 7 system
|
||||||
|
kernel c7/vmlinuz
|
||||||
|
append initrd=c7/initrd.img inst.repo=http://ipaddress/redhat/c7 rescue
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
label returntomain
|
||||||
|
menu label Return to ^main menu
|
||||||
|
menu exit
|
||||||
|
menu end
|
||||||
|
|
||||||
|
# Rockys options
|
||||||
|
menu begin Install Rocky 8
|
||||||
|
menu title Install Rocky 8
|
||||||
|
|
||||||
|
label linux 8
|
||||||
|
menu label ^Auto Install Rocky 8 (Minimal)
|
||||||
|
kernel r8/vmlinuz
|
||||||
|
append initrd=r8/initrd.img inst.ks=http://ipaddress/ksfile/r8_min.conf quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 8
|
||||||
|
menu label ^Auto Install Rocky 8 (^GUI)
|
||||||
|
kernel r8/vmlinuz
|
||||||
|
append initrd=r8/initrd.img inst.ks=http://ipaddress/ksfile/r8_gui.conf quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 8
|
||||||
|
menu label ^Manual Install Rocky 8
|
||||||
|
kernel r8/vmlinuz
|
||||||
|
append initrd=r8/initrd.img inst.repo=http://ipaddress/redhat/r8 quiet net.ifnames=0
|
||||||
|
|
||||||
|
label linux 8
|
||||||
|
menu indent count 5
|
||||||
|
menu label ^Rescue Rocky 8 system
|
||||||
|
kernel r8/vmlinuz
|
||||||
|
append initrd=r8/initrd.img inst.repo=http://ipaddress/redhat/r8 rescue
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
label returntomain
|
||||||
|
menu label Return to ^main menu
|
||||||
|
menu exit
|
||||||
|
menu end
|
||||||
|
|
||||||
|
menu separator # insert an empty line
|
||||||
|
label local
|
||||||
|
menu default
|
||||||
|
menu label Boot from ^local drive
|
||||||
|
localboot 0xffff
|
||||||
|
|
||||||
|
menu end
|
||||||
0
share/pxeboot/grubx64.efi
Executable file → Normal file
0
share/pxeboot/grubx64.efi
Executable file → Normal file
48
share/pxeboot/kickstart/c7_gui.conf
Executable file
48
share/pxeboot/kickstart/c7_gui.conf
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#version=RHEL8
|
||||||
|
# Use graphical install
|
||||||
|
|
||||||
|
install
|
||||||
|
keyboard 'us'
|
||||||
|
lang zh_CN
|
||||||
|
text
|
||||||
|
skipx
|
||||||
|
|
||||||
|
selinux --disabled
|
||||||
|
timezone Asia/Shanghai
|
||||||
|
auth --useshadow --passalgo=sha512
|
||||||
|
|
||||||
|
url --url="http://ipaddress/redhat/c7"
|
||||||
|
#autopart --type=lvm
|
||||||
|
zerombr
|
||||||
|
bootloader --location=mbr
|
||||||
|
clearpart --all --initlabel
|
||||||
|
|
||||||
|
part /boot --fstype="ext4" --size=1024
|
||||||
|
part swap --fstype="swap" --size=4096
|
||||||
|
part / --fstype="xfs" --grow
|
||||||
|
|
||||||
|
reboot
|
||||||
|
rootpw --plaintext 123456
|
||||||
|
|
||||||
|
%post --interpreter=/usr/bin/bash
|
||||||
|
useradd admin
|
||||||
|
echo 123456 | passwd --stdin admin
|
||||||
|
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
||||||
|
%end
|
||||||
|
|
||||||
|
%packages
|
||||||
|
@^infrastructure-server-environment
|
||||||
|
@base
|
||||||
|
@core
|
||||||
|
chrony
|
||||||
|
kexec-tools
|
||||||
|
%end
|
||||||
|
|
||||||
|
%addon com_redhat_kdump --disable --reserve-mb='auto'
|
||||||
|
%end
|
||||||
|
|
||||||
|
%anaconda
|
||||||
|
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
||||||
|
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
%end
|
||||||
48
share/pxeboot/kickstart/c7_min.conf
Executable file
48
share/pxeboot/kickstart/c7_min.conf
Executable file
@@ -0,0 +1,48 @@
|
|||||||
|
#version=RHEL8
|
||||||
|
# Use graphical install
|
||||||
|
|
||||||
|
install
|
||||||
|
keyboard 'us'
|
||||||
|
lang zh_CN
|
||||||
|
text
|
||||||
|
skipx
|
||||||
|
|
||||||
|
selinux --disabled
|
||||||
|
timezone Asia/Shanghai
|
||||||
|
auth --useshadow --passalgo=sha512
|
||||||
|
|
||||||
|
url --url="http://ipaddress/redhat/c7"
|
||||||
|
#autopart --type=lvm
|
||||||
|
zerombr
|
||||||
|
bootloader --location=mbr
|
||||||
|
clearpart --all --initlabel
|
||||||
|
|
||||||
|
part /boot --fstype="ext4" --size=1024
|
||||||
|
part swap --fstype="swap" --size=4096
|
||||||
|
part / --fstype="xfs" --grow
|
||||||
|
|
||||||
|
reboot
|
||||||
|
rootpw --plaintext 123456
|
||||||
|
|
||||||
|
%post --interpreter=/usr/bin/bash
|
||||||
|
useradd admin
|
||||||
|
echo 123456 | passwd --stdin admin
|
||||||
|
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
||||||
|
%end
|
||||||
|
|
||||||
|
%packages
|
||||||
|
@^infrastructure-server-environment
|
||||||
|
@base
|
||||||
|
@core
|
||||||
|
chrony
|
||||||
|
kexec-tools
|
||||||
|
%end
|
||||||
|
|
||||||
|
%addon com_redhat_kdump --disable --reserve-mb='auto'
|
||||||
|
%end
|
||||||
|
|
||||||
|
%anaconda
|
||||||
|
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
||||||
|
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
%end
|
||||||
51
share/pxeboot/kickstart/ks-example.conf
Executable file
51
share/pxeboot/kickstart/ks-example.conf
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
#version=RHEL8
|
||||||
|
# Use graphical install
|
||||||
|
graphical
|
||||||
|
|
||||||
|
%packages
|
||||||
|
@^graphical-server-environment
|
||||||
|
@container-management
|
||||||
|
@development
|
||||||
|
@graphical-admin-tools
|
||||||
|
@headless-management
|
||||||
|
@infiniband
|
||||||
|
@legacy-unix
|
||||||
|
@network-file-system-client
|
||||||
|
@performance
|
||||||
|
@remote-desktop-clients
|
||||||
|
@remote-system-management
|
||||||
|
@rpm-development-tools
|
||||||
|
@system-tools
|
||||||
|
@web-server
|
||||||
|
%end
|
||||||
|
|
||||||
|
keyboard --xlayouts='us'
|
||||||
|
lang en_US.UTF-8
|
||||||
|
firstboot --enable
|
||||||
|
selinux --disabled
|
||||||
|
skipx
|
||||||
|
timezone Asia/Shanghai --isUtc --nontp
|
||||||
|
|
||||||
|
network --bootproto=dhcp --onboot=on --ipv6=auto
|
||||||
|
network --hostname=compute.local
|
||||||
|
clearpart --all --initlabel
|
||||||
|
#part /boot --fstype="ext4" --size=1024
|
||||||
|
#part swap --fstype="swap" --size=4096
|
||||||
|
#part / --fstype="xfs" --grow
|
||||||
|
autopart --type=lvm
|
||||||
|
|
||||||
|
url --url="http://172.16.2.1/redhat/r8"
|
||||||
|
#repo --name="AppStream" --baseurl=http://172.16.2.1/redhat/AppStream
|
||||||
|
#repo --name="BaseOS" --baseurl=http://172.16.2.1/redhat/BaseOS
|
||||||
|
|
||||||
|
rootpw --iscrypted $6$eT.sWNwV69wyvhaR$N5tY4rJn6Y2slOrwuejfUBq3MhC5SNe1gUfTSYmOACObwW4ckUK9fjkKwC9TgSPhwwlaGdbtn0EFg11TJmAbC1
|
||||||
|
user --name=admin --password=$6$0WN9CulSREVORA0S$FVWh6tkvdncbmSrsNPEb13GwxnGnEOKZliZLdL2IdY5E/fzLB8QmZAmgxyHh6ElSjObUCTbDEJ0l9.wRCRrsU. --iscrypted --gecos="admin"
|
||||||
|
|
||||||
|
%addon com_redhat_kdump --disable --reserve-mb='auto'
|
||||||
|
%end
|
||||||
|
|
||||||
|
%anaconda
|
||||||
|
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
||||||
|
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
%end
|
||||||
54
share/pxeboot/kickstart/r8_gui.conf
Executable file
54
share/pxeboot/kickstart/r8_gui.conf
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#version=RHEL8
|
||||||
|
# Use graphical install
|
||||||
|
graphical
|
||||||
|
|
||||||
|
url --url="http://ipaddress/redhat/r8"
|
||||||
|
|
||||||
|
lang en_US.UTF-8
|
||||||
|
keyboard --xlayouts='us'
|
||||||
|
firstboot --enable
|
||||||
|
selinux --disabled
|
||||||
|
timezone Asia/Shanghai --isUtc --nontp
|
||||||
|
skipx
|
||||||
|
|
||||||
|
zerombr
|
||||||
|
bootloader --location=mbr
|
||||||
|
clearpart --all --initlabel
|
||||||
|
part /boot --fstype="ext4" --size=1024
|
||||||
|
part swap --fstype="swap" --size=4096
|
||||||
|
part / --fstype="xfs" --grow
|
||||||
|
|
||||||
|
rootpw --plaintext 123456
|
||||||
|
reboot
|
||||||
|
|
||||||
|
%post --interpreter=/usr/bin/bash
|
||||||
|
useradd admin
|
||||||
|
echo 123456 | passwd --stdin admin
|
||||||
|
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
||||||
|
%end
|
||||||
|
|
||||||
|
%packages
|
||||||
|
@^graphical-server-environment
|
||||||
|
@container-management
|
||||||
|
@development
|
||||||
|
@graphical-admin-tools
|
||||||
|
@headless-management
|
||||||
|
@infiniband
|
||||||
|
@legacy-unix
|
||||||
|
@network-file-system-client
|
||||||
|
@performance
|
||||||
|
@remote-desktop-clients
|
||||||
|
@remote-system-management
|
||||||
|
@rpm-development-tools
|
||||||
|
@system-tools
|
||||||
|
@web-server
|
||||||
|
%end
|
||||||
|
|
||||||
|
%addon com_redhat_kdump --disable --reserve-mb='auto'
|
||||||
|
%end
|
||||||
|
|
||||||
|
%anaconda
|
||||||
|
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
||||||
|
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
%end
|
||||||
41
share/pxeboot/kickstart/r8_min.conf
Executable file
41
share/pxeboot/kickstart/r8_min.conf
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
#version=RHEL8
|
||||||
|
# Use graphical install
|
||||||
|
graphical
|
||||||
|
|
||||||
|
url --url="http://ipaddress/redhat/r8"
|
||||||
|
|
||||||
|
lang en_US.UTF-8
|
||||||
|
keyboard --xlayouts='us'
|
||||||
|
firstboot --enable
|
||||||
|
selinux --disabled
|
||||||
|
timezone Asia/Shanghai --isUtc --nontp
|
||||||
|
skipx
|
||||||
|
|
||||||
|
zerombr
|
||||||
|
bootloader --location=mbr
|
||||||
|
clearpart --all --initlabel
|
||||||
|
part /boot --fstype="ext4" --size=1024
|
||||||
|
part swap --fstype="swap" --size=4096
|
||||||
|
part / --fstype="xfs" --grow
|
||||||
|
|
||||||
|
rootpw --plaintext 123456
|
||||||
|
reboot
|
||||||
|
|
||||||
|
%post --interpreter=/usr/bin/bash
|
||||||
|
useradd admin
|
||||||
|
echo 123456 | passwd --stdin admin
|
||||||
|
sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
|
||||||
|
%end
|
||||||
|
|
||||||
|
%packages
|
||||||
|
@^minimal-environment
|
||||||
|
%end
|
||||||
|
|
||||||
|
%addon com_redhat_kdump --disable --reserve-mb='auto'
|
||||||
|
%end
|
||||||
|
|
||||||
|
%anaconda
|
||||||
|
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
|
||||||
|
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
|
||||||
|
%end
|
||||||
BIN
share/pxeboot/libcom32.c32
Normal file
BIN
share/pxeboot/libcom32.c32
Normal file
Binary file not shown.
BIN
share/pxeboot/libutil.c32
Normal file
BIN
share/pxeboot/libutil.c32
Normal file
Binary file not shown.
Binary file not shown.
BIN
share/pxeboot/menu.c32
Normal file
BIN
share/pxeboot/menu.c32
Normal file
Binary file not shown.
0
share/pxeboot/BOOTX64.EFI → share/pxeboot/shimx64.efi
Executable file → Normal file
0
share/pxeboot/BOOTX64.EFI → share/pxeboot/shimx64.efi
Executable file → Normal file
BIN
share/pxeboot/vesamenu.c32
Normal file
BIN
share/pxeboot/vesamenu.c32
Normal file
Binary file not shown.
Reference in New Issue
Block a user