@ Карта сайта News Автора!

Bog BOS: Установка Linux CentOS 7.1 для служебного сервера (kickstart)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL

Последнее изменение файла: 2017.10.21
Скопировано с www.bog.pp.ru: 2024.11.23

Bog BOS: Установка Linux CentOS 7.1 для служебного сервера (kickstart)

Предварительно прочитайте несколько слов о RHEL 7 и CentOS 7.

Устанавливал с загрузкой по PXE с использованием KVM, kickstart.

Сервера на базе шасси SuperMicro Super Storage System 6047R-E1R36L: двухсокетная материнская плата Intel Xeon CPU E5-2643 v2 (всего 8 ядер по 3.50GHz), 128GB ОП, RAID контроллер >LSI Logic MegaRAID SAS 9266-8i (2 полки на 12 и 24 диска LFF), 2 SSD Intel SSDSC2BB240G4 (SATA, 240GB, устойчивость к отключению питания и истиранию) в программный RAID, встроенные 4 порта 1000Base-T на Intel I350 (модуль igb, eno1 для установки и управления), дополнительная двухпортовая сетевая карта Intel X520-DA2 (модуль ixgbe, enp4s0f0 для передачи данных) и трансивер Finisar FTLX8571D3BCL (SFP+, мультимод, 10GBASE-SR, LC) .

Назначение - служебные сервера (резервное копирование, архив, мелкие СУБД).

Установка и настройка системы загрузки по протоколу PXE (FTP сервер и дерево файлов для CentOS 7.1 x86_64 Everything, сервер tftp и образы для загрузки с помощью pxeos, сервер dhcp и pxelinux ). Специальная конфигурация для загрузки данного сервера /tftpboot/linux-install/pxelinux.cfg/01-MACадрес, обеспечивающая установку нужной версии ОС с использованием kickstart-файла:

default local
timeout 100
prompt 1
display msgs/boot7.msg
ipappend 2

label local
  localboot 1
label 0
  kernel memtest/memtest86+.v501
label 1
  kernel CentOS6.6-x86_64-install/vmlinuz
  append initrd=CentOS6.6-x86_64-install/initrd.img ramdisk_size=16000 ip=dhcp noipv6 syslog=адрес-сервера-syslog lang=en_US.UTF-8 ksdevice=eth2 ks=ftp://ftp/pub/kickstarts/x134.CentOS66.cfg
label 2
  kernel CentOS6.6-x86_64-install/vmlinuz
  append initrd=CentOS6.6-x86_64-install/initrd.img ramdisk_size=16000 repo=ftp://ftp/pub/CentOS6.6/base/x86_64 ip=dhcp noipv6 syslog=адрес-сервера-syslog lang=en_US.UTF-8 linux rescue
label 3
  kernel CentOS7.0-x86_64-install/vmlinuz
  append initrd=CentOS7.0-x86_64-install/initrd.img ramdisk_size=16000 ip=enp4s0f0:dhcp ip=eno1:dhcp bootdev=enp4s0f0 rd.ipv6.disable inst.multilib inst.syslog=адрес-сервера-syslog lang=en_US.UTF-8 rd.locale.LANG=en_US.UTF-8 rd.vconsole.keymap=us rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.unicode ks=ftp://ftp/pub/kickstarts/имя-сервера.CentOS7.cfg inst.geoloc=0
label 4
  kernel CentOS7.0-x86_64-install/vmlinuz
  append initrd=CentOS7.0-x86_64-install/initrd.img ramdisk_size=16000 inst.repo=ftp://ftp/pub/CentOS7/base/x86_64 ip=enp4s0f0:dhcp ip=eno1:dhcp rd.ipv6.disable inst.syslog=адрес-сервера-syslog lang=en_US.UTF-8 rd.locale.LANG=en_US.UTF-8 rd.vconsole.keymap=us rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.unicode linux inst.rescue kernel.ixgbe.allow_unsupported_sfp=1
label 5
  kernel CentOS7.1-x86_64-install/vmlinuz
  append initrd=CentOS7.1-x86_64-install/initrd.img ramdisk_size=16000 ip=eno1:dhcp ixgbe.allow_unsupported_sfp=1 rd.ipv6.disable inst.multilib inst.geoloc=0 lang=en_US.UTF-8 rd.locale.LANG=en_US.UTF-8 rd.vconsole.keymap=us rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.unicode ks=ftp://ftp/pub/kickstarts/x130.CentOS71.cfg
label 6
  kernel CentOS7.1-x86_64-install/vmlinuz
  append initrd=CentOS7.1-x86_64-install/initrd.img ramdisk_size=16000 ip=eno1:dhcp ixgbe.allow_unsupported_sfp=1 rd.ipv6.disable lang=en_US.UTF-8 rd.locale.LANG=en_US.UTF-8 rd.vconsole.keymap=us rd.vconsole.font=latarcyrheb-sun16 rd.vconsole.unicode linux inst.rescue inst.repo=ftp://ftp/pub/CentOS7.1/base/x86_64

Подготовка файла с настройками kickstart (положить его на ftp://ftp-сервер/pub/kickstarts/имя-сервера.версия.cfg)

install
url --url=ftp://ftp-сервер/pub/CentOS7.1/base/x86_64

#text
#interactive
#autostep
cmdline
reboot
# сервер syslog должен принимать TCP:514
logging --level=info --host=адрес-сервера-syslog

lang en_US.UTF-8 --addsupport=ru_RU.UTF-8
keyboard --vckeymap=ruwin_alt-UTF-8 --xlayouts='us,ru(typewriter)' --switch=grp:toggle

firstboot --disabled

network --onboot no --device eno1 --bootproto dhcp --hostname полное-имя --mtu=9000 --activate
network --onboot no --device eno2 --bootproto dhcp --hostname полное-имя --mtu=9000
network --onboot no --device eno3 --bootproto dhcp --hostname полное-имя --mtu=9000
network --onboot no --device eno4 --bootproto dhcp --hostname полное-имя --mtu=9000
network --onboot yes --device enp4s0f0 --bootproto dhcp --hostname полное-имя --mtu=9000
network --onboot no --device enp4s0f1 --bootproto dhcp --hostname полное-имя --mtu=9000

# действует ли?
device ixgbe --opts=allow_unsupported_sfp=1

rootpw --iscrypted ...
selinux --disabled
firewall --disabled
authconfig --enableshadow --passalgo=sha512 --enableldap --enableldapauth --enableldaptls --ldaploadcacert=ftp://ftp... --ldapserver=имя-ldap-сервера --ldapbasedn=dc=... --enablecache --enablesssd --enablesssdauth --enablecachecreds --enablelocauthorize

timezone  Europe/Moscow --utc --ntpservers=список

xconfig  --startxonboot

# всё стереть только на указанных явно дисках
ignoredisk --only-use=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1,/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник2
zerombr
clearpart --drives=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1,/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник2 --all

# указывается 1 boot-drive, а загрузчик прописывается на оба диска
# ERR anaconda: bios order specified unknown disk /dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1
bootloader --location=mbr --driveorder=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1,/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник2 --boot-drive=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1

partition raid.008001 --size=500 --asprimary --ondisk=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1
partition raid.008017 --size=500 --asprimary --ondisk=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник2
raid /boot --fstype="ext4" --level=1 --device=0 --label="/boot" raid.008001 raid.008017

partition raid.008002 --size=100 --grow --asprimary --ondisk=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник1
partition raid.008018 --size=100 --grow --asprimary --ondisk=/dev/disk/by-id/ata-INTEL_SSDSC2BB240G4_серийник2
raid pv.009001 --level=1 --device=1 raid.008002 raid.008018

volgroup system pv.009001

logvol / --fstype="ext4" --label=root --name=root --vgname=system --size=20000
logvol swap --fstype="swap" --name=swap --vgname=system --size=60000

repo --name="CentOS7.1updates"  --baseurl=ftp://ftp-сервер/pub/CentOS7.1/updates/x86_64/ --cost=100
repo --name="CentOS7.1cr"  --baseurl=ftp://ftp-сервер/pub/CentOS7.1/cr/x86_64/ --cost=50
repo --name="CentOS7.1extras"  --baseurl=ftp://ftp-сервер/pub/CentOS7.1/extras/x86_64/ --cost=100
repo --name="EPEL7"  --baseurl=ftp://ftp-сервер/pub/EPEL7/x86_64/ --cost=100
# с ходу ставит лишнего и проблемы с зависимостями
#repo --name="elrepo7" --baseurl=ftp://ftp-сервер/pub/elrepo7/elrepo/x86_64/ --cost=100

group --name=cds --gid=1001

# не работает
#service --disabled=bluetooth,dbus-org.bluez,ModemManager,avahi-daemon

%packages --multilib
@additional-devel
#@backup-client
bacula-client
@base
dos2unix
genisoimage
gpm
i2c-tools
logwatch
mtools
ncurses-term
oddjob
pax
sgpio
squashfs-tools
star
tmpwatch
udftools
wodim
x86info
yum-plugin-changelog
yum-plugin-tmprepo
yum-plugin-versionlock
@compat-libraries
@console-internet
ftp
lftp
whois
@core
@debugging
@desktop-debugging
oprofile-gui
xrestop
##@desktop-platform
@development
ant
babel
cmake
compat-gcc-44
compat-gcc-44-c++
cvs
dejagnu
expect
imake
javapackages-tools
libstdc++-docs
mercurial
mod_dav_svn
nasm
python-docs
rpmdevtools
rpmlint
@dial-up
minicom
@directory-client
nscd
nss-pam-ldapd
openldap-clients
samba-winbind
@directory-server
openldap-servers
samba
@mail-server
sendmail
sendmail-cf
##@eclipse
@emacs
@ftp-server
xferstats
@fonts
bitmap-fixed-fonts
bitmap-lucida-typewriter-fonts
@gnome-desktop
alacarte
dconf-editor
gconf-editor
gedit-plugins
vim-X11
@graphical-admin-tools
gnome-disk-utility
wireshark-gnome
@graphics
dcraw
netpbm-progs
ImageMagick
@hardware-monitoring
edac-utils
lm_sensors
mcelog
@infiniband
compat-dapl
infiniband-diags
libibcommon
opensm
perftest
qperf
srptools
@internet-applications
thunderbird
thunderbird-enigmail
thunderbird-lightning
thunderbird-lightning-gdata
xchat
@internet-browser
@java-platform
java-1.6.0-openjdk
system-switch-java
@kde-desktop
@large-systems
@legacy-unix
cups-lpd
ksh
ncompress
rsh
tcp_wrappers
telnet
tftp
xinetd
@legacy-x
xorg-x11-fonts-75dpi
xorg-x11-fonts-ISO8859-1-75dpi
xorg-x11-fonts-cyrillic
@mariadb
@mariadb-client
perl-DBD-MySQL
@network-file-system-client
cachefilesd
@network-tools
arptables
arpwatch
dropwatch
iptraf-ng
nmap
wireshark
@office-suite
libreoffice-base
#libreoffice-javafilter # в списке есть, а в реальности нет
libreoffice-ogltrans
#libreoffice-presentation-minimizer obsoleted by 
libreoffice-impress
#libreoffice-report-builder # в списке есть, а в реальности нет
libreoffice-wiki-publisher
@php
php-ldap
php-mysql
php-xmlrpc
@performance
hdparm
sdparm
sg3_utils
tuned-utils
@perl-runtime
perl-DBD-SQLite
perl-Date-Manip
perl-LDAP
@platform-devel
@print-server
@print-client
@remote-desktop-clients
freerdp
spice-xpi
tigervnc
vinagre
# тянет много лишнего
#@remote-system-management
net-snmp
net-snmp-utils
@scientific
atlas
mpitests-openmpi
numpy
openmpi
@security-tools
hmaccalc
trousers
##@server-platform
##@storage-client-iscsi
@system-management
freeipmi
ipmitool
openhpi
OpenIPMI
@system-admin-tools
crypto-utils
dump
lsscsi
mc
screen
scrub
@technical-writing
@virtualization-hypervisor
qemu-kvm-tools
@virtualization-client
libguestfs-tools
@virtualization-platform
libvirt-snmp
@virtualization-tools
libguestfs-tools
@web-server
mod_nss
perl-CGI
@x11
tigervnc-server
xorg-x11-drv-keyboard
xorg-x11-drv-mouse
# нет в группах
epel-release
kdesdk
kernel-doc
libbonobo-devel
libglade2-devel
libgnomeui-devel
libreoffice-headless
libreoffice-langpack-en
libreoffice-langpack-ru
lzo-devel
xfce4-panel
xfce4-settings
xfce4-session
xfce4-session-engines
xfce4-session-devel
xfce4-panel-devel
xfce4-power-manager
xfce4-appfinder
xfce4-dev-tools
zabbix22
zabbix22-agent
# пропали?
##nss_db
##cpufrequtils
##systemtap-client
##systemtap-initscript
##eclipse-mylyn-cdt
##eclipse-pde
##eclipse-mylyn-pde
##eclipse-mylyn-wikitext
##eclipse-mylyn-trac
##eclipse-subclipse-graph
##eclipse-mylyn-webtasks
##spice-client
##virt-v2v - обещан в 7.1, нет в списке
##mod_authz_ldap
##elrepo-release
##compat-libtermcap.i686
#compat-libstdc++-33.i686
#mesa-libGLU.i686
#gdbm-devel.i686
##compat-readline5.i686
##compat-expat1.i686
-gcc-gfortran
-ypbind
-ipa-client
-dovecot
-spamassassin
-lohit-assamese-fonts
-lohit-bengali-fonts
-thai-scalable-waree-fonts
-lohit-kannada-fonts
-paktype-tehreer-fonts
-tibetan-machine-uni-fonts
-lohit-devanagari-fonts
-smc-meera-fonts
-lohit-gujarati-fonts
-paktype-naqsh-fonts
-sil-padauk-fonts
-lohit-punjabi-fonts
-lohit-tamil-fonts
-lohit-telugu-fonts
-madan-fonts
-lohit-oriya-fonts
-pulseaudio-module-gconf
-kde-settings-pulseaudio
-alsa-plugins-pulseaudio
-pulseaudio-utils
-pulseaudio-module-x11
-libgweather.i686
-evolution.i686
-evolution-data-server.i686
-evolution-data-server-devel.i686
-evolution-ews.i686
-evolution-mapi.i686
-kde-wallpapers
-wireshark.i686
-metacity.i686
%end

%post --log=/var/log/anaconda/ks-post.log
# users
/usr/sbin/useradd -c информация-Gecos -g номер-группы -m -r -u номер-пользователя -p шифрованный-пароль имя-пользователя

#
/sbin/tune2fs -r 25000 -c -1 -i 0 /dev/system/root

# ld
echo "/usr/local/lib" >> /etc/ld.so.conf
echo "/usr/local/lib64" >> /etc/ld.so.conf
/sbin/ldconfig

# убрать лишние сервисы и добавить нужные
systemctl disable bluetooth.service
systemctl disable dbus-org.bluez.service
systemctl disable ModemManager.service
systemctl disable avahi-daemon.service
systemctl disable tmp.mount
systemctl disable firstboot-graphical.service
# /sbin/chkconfig --level 12345 NetworkManager off
systemctl disable autofs
systemctl disable cachefilesd.service
systemctl disable alsa-state.service
systemctl disable colord.service
systemctl enable smartd.service
systemctl enable sssd.service
systemctl set-default multi-user.target # graphical.target
systemctl disable gdm.service
systemctl disable tuned.service

# drivers
echo "options ixgbe allow_unsupported_sfp=1" >> /etc/modprobe.d/ixgbe.conf

# locate
sed -i 's/udf usbfs/udf usbfs glusterfs/' /etc/updatedb.conf

# отключить prelink
echo "PRELINKING=no" >> /etc/sysconfig/prelink

# sendmail
sed -i 's/DS/DSдоменное-имя-SMTP-сервера/' /etc/mail/sendmail.cf
# почтовый адрес root
echo "root: адрес" >> /etc/aliases

# SSH
cat << EOF >> /etc/sysconfig/sshd
AUTOCREATE_SERVER_KEYS=YES
OPTIONS="-u0 -4"
EOF

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

cat << EOF > /etc/ssh/sshd_conf
Port 22
#ListenAddress адрес
#ListenAddress 127.0.0.1
# SSH стартует до определения адреса по DHCP
ListenAddress 0.0.0.0
AcceptEnv LANG TERM COLORTERM LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
#AllowUsers ...
AllowGroups ...
AllowTcpForwarding yes
ChallengeResponseAuthentication no
ClientAliveInterval 20
#Compression delayed
Compression no
GatewayPorts no
HostbasedAuthentication no
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
IgnoreRhosts yes
IgnoreUserKnownHosts yes
TCPKeepAlive yes
LogLevel INFO
MaxSessions 100
MaxStartups 100
#PasswordAuthentication no
PasswordAuthentication yes
PermitEmptyPasswords no
#PermitRootLogin yes
PermitRootLogin forced-commands-only
PermitUserEnvironment no
PrintMotd no
Protocol 2
PubkeyAuthentication yes
RhostsRSAAuthentication no
RSAAuthentication no
SkeyAuthentication no
#StrictModes yes
StrictModes no
Subsystem       sftp    /usr/libexec/openssh/sftp-server
SyslogFacility AUTHPRIV
UseDNS yes
UsePAM yes
UsePrivilegeSeparation sandbox
X11Forwarding yes
X11UseLocalhost yes
EOF

mkdir /home/пользователь/.ssh
chown пользователь:группа /home/пользователь/.ssh
chmod 700 /home/пользователь/.ssh
cat << EOF >> /home/пользователь/.ssh/authorized_keys
ssh-dss ...
EOF
chown пользователь:группа /home/пользователь/.ssh/authorized_keys
chmod 600 /home/пользователь/.ssh/authorized_keys

# yum and rpm
cat << 'EOF' >> /etc/yum.conf
deltarpm=0
EOF

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.orig
cat << 'EOF' > /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=ftp://ftp-сервер/pub/CentOS7.1/base/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=ftp://ftp-сервер/pub/CentOS7.1/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=ftp://ftp-сервер/pub/CentOS7.1/extras/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=ftp://ftp-сервер/pub/CentOS7.1/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF

mv /etc/yum.repos.d/CentOS-fasttrack.repo /etc/yum.repos.d/CentOS-fasttrack.repo.orig
cat << 'EOF'  > /etc/yum.repos.d/CentOS-fasttrack.repo
[fasttrack]
name=CentOS-$releasever - fasttrack
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/fasttrack/$basearch/
baseurl=ftp://ftp-сервер/pub/CentOS7.1/fasttrack/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF

mv /etc/yum.repos.d/CentOS-CR.repo /etc/yum.repos.d/CentOS-CR.repo.orig
cat << 'EOF' > /etc/yum.repos.d/CentOS-CR.repo
[cr]
name=CentOS-$releasever - cr
#baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/
baseurl=ftp://ftp-сервер/pub/CentOS7.1/cr/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
EOF

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.orig
cat << 'EOF' > /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
baseurl=ftp://ftp-сервер/pub/EPEL7/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
EOF

#mv /etc/yum.repos.d/elrepo.repo /etc/yum.repos.d/elrepo.repo.orig
cat << 'EOF' > /etc/yum.repos.d/elrepo.repo
[elrepo]
name=ELRepo.org Community Enterprise Linux Repository - el7
#baseurl=http://elrepo.org/linux/elrepo/el7/$basearch/
#mirrorlist=http://elrepo.org/mirrors-elrepo.el7
baseurl=ftp://ftp-сервер/pub/elrepo7/elrepo/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

[elrepo-testing]
name=ELRepo.org Community Enterprise Linux Testing Repository - el7
baseurl=http://elrepo.org/linux/testing/el7/$basearch/
mirrorlist=http://elrepo.org/mirrors-elrepo-testing.el7
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
#baseurl=http://elrepo.org/linux/kernel/el7/$basearch/
#mirrorlist=http://elrepo.org/mirrors-elrepo-kernel.el7
baseurl=ftp://ftp-сервер/pub/elrepo6/kernel/$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

[elrepo-extras]
name=ELRepo.org Community Enterprise Linux Repository - el7
#baseurl=http://elrepo.org/linux/extras/el7/$basearch/
#mirrorlist=http://elrepo.org/mirrors-elrepo-extras.el7
baseurl=ftp://ftp-сервер/pub/elrepo/extras/$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0
EOF

# rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#rpm -iv ftp://ftp/pub/EPEL7/x86_64/e/epel-release-7-5.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

# yum
# не работает?
yum langinstall en ru

# grub2
sed -i 's/rhgb quiet/rd.shell ixgbe.allow_unsupported_sfp=1/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

# NFS, недоделано
sed -i 's/#LOCKD_TCPPORT=32803/LOCKD_TCPPORT=4001/' /etc/sysconfig/nfs
sed -i 's/#LOCKD_UDPPORT=32769/LOCKD_UDPPORT=4001/' /etc/sysconfig/nfs
sed -i 's/RPCNFSDARGS=""/RPCNFSDARGS="--port 2049"/' /etc/sysconfig/nfs
cat << 'EOF' >> /etc/sysconfig/nfs
RQUOTAD_PORT=4003
MOUNTD_PORT=4002
STATD_PORT=4000
EOF

# remote file system
mkdir точка-монтирования ...

cat << EOF >> /etc/fstab
сервер:каталог точка-монтирования nfs tcp,bg,hard,intr,rw,nosuid,nodev,exec,auto,nouser,async,_netdev,rsize=32768,wsize=32768,nfsvers=3 0 0
EOF

# autofs
sed -i 's/+auto.master/#+auto.master/' /etc/auto.master

# cleaning (systemd-tmpfiles-clean.timer?)
cat <> EOF >> /etc/tmpfiles.d/devshm.conf
#/usr/sbin/tmpwatch 24 /dev/shm
d /dev/shm 1777 root root 24h
EOF

# syslog
cat << EOF >> /etc/rsyslog.conf
*.*                                                     @имя-сервера-syslog
EOF

# smartd
sed -i "s/DEVICESCAN -H -m root/#DEVICESCAN -H -m root/" /etc/smartmontools/smartd.conf
cat << EOF >> /etc/smartmontools/smartd.conf
/dev/sda -a -m root -I 9 -I 190 -I 194 -M exec /usr/libexec/smartmontools/smartdnotify
/dev/sdb -a -m root -I 9 -I 190 -I 194 -M exec /usr/libexec/smartmontools/smartdnotify
/dev/sdc -a -m root -I 9 -I 190 -I 194 -M exec /usr/libexec/smartmontools/smartdnotify
/dev/sdd -a -m root -I 9 -I 190 -I 194 -M exec /usr/libexec/smartmontools/smartdnotify
/dev/sda -d megaraid,10 -a -m root -M exec /usr/libexec/smartmontools/smartdnotify
...
EOF

# модули окружения
cat << EOF >> /usr/share/Modules/init/.modulespath
каталог
...
EOF

cat << EOF >> /etc/profile.d/modules.sh
настройка общих переменных окружения
EOF

cat << EOF >> /etc/profile.d/modules.csh
настройка общих переменных окружения
EOF

sed -i 's/::1         localhost localhost.localdomain localhost6 localhost6.localdomain6/::1         localhost.localdomain localhost6 localhost6.localdomain6/' /etc/hosts


# zabbix агент
sed -i 's/Server=127\.0\.0\.1/Server=IP-адрес-сервера/' /etc/zabbix_agentd.conf
sed -i 's/ServerActive=127\.0\.0\.1/ServerActive=IP-адрес-сервера/' /etc/zabbix_agentd.conf
sed -i 's/Hostname=Zabbix server/Hostname=имя-клиента/' /etc/zabbix_agentd.conf
sed -i 's/# SourceIP=/SourceIP=IP-адрес-клиента/' /etc/zabbix_agentd.conf
sed -i 's/# ListenIP=0.0.0.0/ListenIP=IP-адрес-клиента/' /etc/zabbix_agentd.conf

mkdir /etc/zabbix/externalscripts

echo "awk  '{print \$1}' < /sys/block/\$1/stat" > /etc/zabbix/externalscripts/check_ior.sh
chmod 755 /etc/zabbix/externalscripts/check_ior.sh
echo "awk  '{print \$5}' < /sys/block/\$1/stat" > /etc/zabbix/externalscripts/check_iow.sh
chmod 755 /etc/zabbix/externalscripts/check_iow.sh
echo "awk  '{print \$3}' < /sys/block/\$1/stat" > /etc/zabbix/externalscripts/check_br.sh
chmod 755 /etc/zabbix/externalscripts/check_br.sh
echo "awk  '{print \$7}' < /sys/block/\$1/stat" > /etc/zabbix/externalscripts/check_bw.sh
chmod 755 /etc/zabbix/externalscripts/check_bw.sh

echo "UserParameter=check.br[*],/etc/zabbix/externalscripts/check_br.sh '\$1'" >> /etc/zabbix_agentd.conf
echo "UserParameter=check.bw[*],/etc/zabbix/externalscripts/check_bw.sh '\$1'" >> /etc/zabbix_agentd.conf
echo "UserParameter=check.ior[*],/etc/zabbix/externalscripts/check_ior.sh '\$1'" >> /etc/zabbix_agentd.conf
echo "UserParameter=check.iow[*],/etc/zabbix/externalscripts/check_iow.sh '\$1'" >> /etc/zabbix_agentd.conf

systemctl enable zabbix-agent.service

# bacula client
sed -i 's/.*Name = bacula-dir/  Name = имя-директора-dir/' /etc/bacula/bacula-fd.conf
sed -i 's/.*Password = "@@FD_PASSWORD@@"/  Password = "пароль директора"/' /etc/bacula/bacula-fd.conf
sed -i 's/.*Name = bacula-mon/  Name = имя-монитора-mon/' /etc/bacula/bacula-fd.conf
sed -i 's/.*Password = "@@MON_FD_PASSWORD@@"/  Password = "пароль монитора"/' /etc/bacula/bacula-fd.conf
sed -i 's/.*director = bacula-dir = .*/  director = имя-директора-dir = all, !skipped, !restored/' /etc/bacula/bacula-fd.conf
systemctl enable bacula-fd.service

cat << EOF >> /etc/sysctl.d/disableipv6.conf
net.ipv6.conf.eno1.disable_ipv6 = 1
net.ipv6.conf.eno2.disable_ipv6 = 1
net.ipv6.conf.eno3.disable_ipv6 = 1
net.ipv6.conf.eno4.disable_ipv6 = 1
net.ipv6.conf.enp4s0f0.disable_ipv6 = 1
net.ipv6.conf.enp4s0f1.disable_ipv6 = 1
EOF

cat << EOF >> /etc/sysctl.conf
net.ipv4.ip_forward = 0
vm.dirty_background_bytes = 100000000
vm.dirty_bytes = 400000000
EOF

# rc.local (CPU, сеть)
cat << EOF >> /etc/rc.d/rc.local
# cpu performance
#modprobe powernow-k8
modprobe coretemp
#modprobe acpi-cpufreq
x86_energy_perf_policy performance
for cpu in /sys/devices/system/cpu/cpu[0-9]*
do
  echo performance > \$cpu/cpufreq/scaling_governor
done

#network
modprobe nf_conntrack_tftp
modprobe nf_conntrack_ftp

/opt/MegaRAID/storcli/storcli64 /c0 set time=systemtime
echo noop > /sys/block/sda/queue/scheduler
echo noop > /sys/block/sdb/queue/scheduler
echo noop > /sys/block/sdc/queue/scheduler
echo noop > /sys/block/sdd/queue/scheduler
echo 256 > /sys/block/sda/queue/nr_requests
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdd/queue/nr_requests
EOF

chmod u+x /etc/rc.d/rc.local
#systemctl start rc-local

# compability
ln -s /usr/lib/libXft.so.2 /usr/lib/libXft.so.1
ln -s /usr/bin/firefox /usr/bin/netscape
wget -O /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so ftp://ftp-сервер/pub/CentOS4.9/libstdc++-2-libc6.1-1-2.9.0.so
chmod a+x /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
ln -s /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so /usr/lib/libstdc++-libc6.1-1.so.2

# local
mkdir /orvs
...

# всякая мелочь
mkdir /root/bin
%end

Загрузка PXE с правильной сетевой карты (не все материнские платы позволяют загрузиться с дополнительной 10-гигибитной сетевой карты).

Ручная настройка:

@ Карта сайта News Автора!

Bog BOS: Установка Linux CentOS 7.1 для служебного сервера (kickstart)

Последние изменения:
2024.11.22: sysadmin: systemd-journald (централизованное хранение)
2024.11.11: sysadmin: Linux: пространства имён
2024.11.06: sysadmin: настройка TCP/IP в Linux: виртуальный интерфейс и виртуальный мост
2024.10.25: sysadmin: Linux VFS, атрибуты, расширенные атрибуты, ACL



Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru