DHCP server: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Boiarino (talk | contribs)
No edit summary
Boiarino (talk | contribs)
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:


  yum install dhcp tftp tftp-server
  yum install dhcp tftp tftp-server
Bryan:
yum install nfs-utils tftp-server syslinux-tftpboot syslinux
yum install dnsmasq


  mkdir /tftpboot
  mkdir /tftpboot
Line 26: Line 32:
Start tftp:
Start tftp:


  systemd start tftp
  systemctl start tftp
#systemctl start tftp.socket ??


Create file ''/tftpboot/efi/boot/grub2/grub.cfg'' with following contents:
Create file ''/tftpboot/efi/boot/grub2/grub.cfg'' with following contents:
Line 118: Line 125:


  yum install bind
  yum install bind
Login from console may not work because of file ''/etc/securetty'' permissions, it must be 644.
THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in ''/etc/pam.d/system-auth-ac'' file:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
#auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
#auth        requisite    pam_succeed_if.so uid >= 1000 quiet_success
#auth        required      pam_deny.so
#account    required      pam_unix.so
account    sufficient    pam_localuser.so
account    sufficient    pam_succeed_if.so uid < 1000 quiet
#account    required      pam_permit.so
password    requisite    pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
#password    required      pam_deny.so
session    optional      pam_keyinit.so revoke
#session    required      pam_limits.so
-session    optional      pam_systemd.so
session    [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
#session    required      pam_unix.so

Latest revision as of 17:21, 18 April 2025

Setting DHCP server on clon10new (RHEL7)

yum install dhcp tftp tftp-server

Bryan:

yum install nfs-utils tftp-server syslinux-tftpboot syslinux
yum install dnsmasq
mkdir /tftpboot
grub2-mknetdir --net-directory=/tftpboot/efi


Create file /etc/systemd/system/tftp.service:

[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd
[Service]
#ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
ExecStart=/usr/sbin/in.tftpd -s /tftpboot
StandardInput=socket
[Install]
Also=tftp.socket


Start tftp:

systemctl start tftp
#systemctl start tftp.socket ??

Create file /tftpboot/efi/boot/grub2/grub.cfg with following contents:


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
set timeout=2
menuentry 'Diskless CentOS7 x86_64, any network device'  --class redhat --class gnu-linux --class gnu --class os {
linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7-devel/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt
initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img
}

Edit file /etc/dhcp/dhcpd.conf:

subnet 192.168.10.0 netmask 255.255.255.0 {
       option domain-name "jlab.org";
       option domain-name-servers 129.57.32.100, 129.57.32.101;
       option routers 192.168.10.1;
       use-host-decl-names true;
	pool {
	     range 192.168.10.2 192.168.10.20;
	     deny dynamic bootp clients;
	     allow unknown clients;
	     }
}
set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
set pxetype = option pxe-system-type;
# DISKLESS Clients in here
group
{
	if substring(vendorclass, 0, 9)="PXEClient" {
	   if pxetype=00:06 or pxetype=00:07 {
	      filename   "efi/boot/grub2/x86_64-efi/core.efi";
	   } else {
	      filename "linux-install/pxelinux.0";
	   }
	}
  	next-server 192.168.10.1;
	host test1 {
	 hardware ethernet 00:20:38:03:10:34;
	 fixed-address 192.168.10.4;
	}
	host test4 {
	 hardware ethernet 00:20:38:10:14:f7;
	 fixed-address 192.168.10.5;
	}
} # Diskless clients group

Start dhcp:

systemctl start dhcpd


Install nfs:

yum install nfs-utils

Configure file /etc/exports:

/diskless 192.168.10.0/24(rw,sync)

Start NFS server:

systemctl status nfs-server

Check that NFS is exporting. Command

showmount -e

have to show following:

Export list for clondaq15.jlab.org:
/diskless 192.168.10.0/24


To use local name server, install bind:

yum install bind


Login from console may not work because of file /etc/securetty permissions, it must be 644.


THere is a service PAM, it may prevent login from console if some required services did not start. To work around, comment out some lines in /etc/pam.d/system-auth-ac file:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
#auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
#auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
#auth        required      pam_deny.so

#account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
#account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
#password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
#session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
#session     required      pam_unix.so