Диплом: Автоматизация процесса системного администрирования высоконагружаемого веб-приложения для ООО "Лайтсофт Рисерч"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
OpenVZ контейнерная виртуализация для ОС Linux
PGbouncerсервер, который управляет очередью соединенй в PostgreSQL
php скриптовый язык который применяется для разработки веб-приложений
PostgreSQLобъектно-реляционная система управления базами данных
Puppetпопулярная система управления конфигурациями, написанная на Ruby
Pxelinuxмодуль, входящий в пакет syslinux, отвечающий за отображение меню
при загрузке по сети
Pythonвысокоуровневый язык программирования ориентированный на
повышение производительности разработчика и читаемости кода.
RabbitMQпрограммный брокер сообщений на основе протокола AMQP
rootот англ. «корень» суперпользователь, обладающий всеми правами в
системе в unix подобных системах
RSAкриптографический алгоритм с открытым ключом
Rubyязык программирования Ruby
Saltstackсистема контроля конфигурациями
Selinuxреализация системы принудительного контроля доступа, которая
может работать параллельно с классической избирательной системой контроля
доступа
Syslinuxнабор загрузчиков ОС, способных загружать образы с жестких
дисков, флеш-носителей, дисков, а также через PXE.
SMTP – (англ. Send Mail Transfer Protocol) протокол исходящей почты
sshd-сервиссервер ssh, слушающий входящие соединения и принимающий
ssh-клиентклиентская часть протокола ssh, подключаемая к ssh-серверу
Tftpd (англ. Trivial File Transfer Protocolпростой протокол передачи
файлов) используется для первоначальной загрузки компьютера по сети.
Thunderbirdпопулярный почтовый клиент с исходным программным кодом,
распространяющийся на ОС Windows, Linux и MacOS.
Ubuntuодин из самых популярных дистрибутивов ОС Linux
WindowsОС, разработанная корпорацией Майкрософт. Является одной из
самых популярных на сегодняшний день.
108
Приложения
Приложение 1. Конфигурационные файлы сервера установки ОС.
Конфигурационный файл /etc/dhcp/dhcpd.conf dhcp-сервера с PXE:
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;
subnet 172.31.30.0 netmask 255.255.255.0 {
range 172.31.30.100 172.31.30.200;
option domain-name-servers 8.8.8.8;
option domain-name "server1.example.com";
option routers 172.31.30.1;
default-lease-time 600;
max-lease-time 7200;
next-server 172.31.30.1; # DHCP server ip
filename "pxelinux.0";
}
Конфигурационный файл tftpd сервера xinetd /etc/xinetd.conf:
defaults
{
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT
cps = 50 10
instances = 50
per_source = 10
v6only = no
groups = yes
umask = 002
}
includedir /etc/xinetd.d
109
В конфигурационных файлах ниже, предоставлены настройки
syslinux/pxelinux, при помощи которого отображается PXE-меню установки ОС.
Листинг главного файла меню, в котором отображается множество вариантов
установки ОС /home/vtorov/pxe/pxelinux.cfg/default:
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title LightSoft PXE boot menu
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120
TEXT HELP
The system will boot after the time is up
ENDTEXT
LABEL FreeBSDinstall
MENU LABEL FreeBSD install menu ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/freebsd.conf
TEXT HELP
Different variants to install FreeBSD
ENDTEXT
LABEL CentOSinstall
MENU LABEL CentOS install menu ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/centos.conf
110
TEXT HELP
Different variants to install CentOS
ENDTEXT
LABEL utils
MENU LABEL Utilites and benchmark ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/util.conf
TEXT HELP
Utilites like memtest, mhdd and other
ENDTEXT
LABEL cold_reboot
MENU LABEL Reboot server
COM32 reboot.c32
Далее показан частичный листинг файла PXE-меню
/home/vtorov/pxe/pxelinux.cfg/centos.conf c ОС CentOS, установка которого была
продемонстрирована в главе 2.4:
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title CentOS install menu
label MainMenu
MENU LABEL <- Return to Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
label Centos7.6.1810
MENU LABEL Centos 7.6 1810
111
kernel images/centos/x86_64/7.6/images/pxeboot/vmlinuz
append initrd=images/centos/x86_64/7.6/images/pxeboot/initrd.img
ramdisk_size=5935 ks=http://172.31.30.1/ocsreports/centos7.6.cfg ksdevice=
link network load_ramdisk=1 syslog=192.168.150.122 loglevel-debug
Каждый пункт меню установки CentOS ссылается на файл сценария kickstart, в
котором настраивается автоматическая установка ОС. Создавать
преднастроенные установочные образы ОС при этом не нужно. Файл kickstart,
при помощи которого была продемонстрирована установка ОС в главе 2.4,
находящийся в /usr/share/nginx/html/ocsreports/centos7.6.cfg:
install
url --url=http://mirror.yandex.ru/centos/7/os/x86_64
lang en_US.UTF-8
keyboard us
eula --agreed
rootpw --iscrypted
$6$S1pLGJZAv304FMvA$HKtLEWCbNrxWaCm6aet22qN0mt23avTOrESP.V3iayI
0r3CD.jgOgw9WVlVRALGWYzV/lhRuB312Enjie10lG/
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Europe/Moscow
bootloader --location=mbr --driveorder=sda sdb --append="noapic crashkernel=auto
rhgb quiet"
clearpart --all --initlabel
zerombr
skipx
part /boot --fstype ext4 --ondisk=sda --size=500
part / --fstype=ext4 --ondisk=sda --size=40000 --grow
part swap --ondisk=sda --size=12000
112
repo --name="CentOS-Updates" --
baseurl=http://mirror.yandex.ru/centos/7/updates/x86_64/ --cost=100
user --name=alex --groups=wheel
%packages
@core
@base
ntp
ntpdate
vim
openldap-clients
openssh-ldap
nss-pam-ldapd
mc
wget
smartmontools
ipmitool
lldpad
-NetworkManager
-NetworkManager-team
-NetworkManager-tui
-NetworkManager-libnm
%end
%post
/usr/sbin/usermod -p '$1$/opmRUVx$Az18QhNcVb7v4xqZ/fdIa/' alex
/usr/sbin/authconfig --enableldap --enableldapauth --enablemkhomedir --disableldaptls
--ldapserver=ldap://192.168.101.81/ --ldapbasedn=dc=lightsoft,dc=ru --updateall --
nostart
/bin/cat > /etc/nslcd.conf << EOF
113
uri ldap://192.168.101.81/
base dc=lightsoft,dc=ru
ssl no
tls_cacertdir /etc/openldap/cacerts
binddn uid=cvsreader,ou=people,dc=lightsoft,dc=ru
bindpw cvsreader
EOF
/bin/cat > /etc/pam_ldap.conf << EOF
base dc=lightsoft,dc=ru
bind_policy hard_open
bind_timelimit 30
ldap_version 3
nss_base_group ou=groups,dc=lightsoft,dc=ru?one
nss_base_passwd ou=people,dc=lightsoft,dc=ru?one
nss_base_shadow ou=people,dc=lightsoft,dc=ru?one
nss_connect_policy oneshot
pam_filter |(&(accessTo=newcentos)(trustModel=byhost))(trustModel=fullaccess)
pam_login_attribute uid
pam_password crypt
port 389
timelimit 30
uri ldap://192.168.101.81/
binddn uid=cvsreader,ou=people,dc=lightsoft,dc=ru
bindpw cvsreader
ssl no
tls_cacertdir /etc/openldap/cacerts
EOF
/bin/cat > /etc/sudo-ldap.conf << EOF
uri ldap://192.168.101.81/
base dc=lightsoft,dc=ru
timelimit 30
114
bind_timelimit 30
SUDOERS_BASE ou=sudoers,dc=lightsoft,dc=ru
binddn uid=cvsreader,ou=people,dc=lightsoft,dc=ru
bindpw cvsreader
EOF
/bin/cat > /etc/ssh/ldap.conf << EOF
ldap_version 3
bind_policy soft
binddn uid=cvsreader,ou=people,dc=lightsoft,dc=ru
bindpw cvsreader
ssl no
ssl start_tls
tls_reqcert never
tls_cacertdir /etc/openldap/cacerts
host 192.168.101.81
port 389
base dc=lightsoft,dc=ru
EOF
/bin/cat > /etc/nsswitch.conf << EOF
passwd: files cache ldap
shadow: files cache ldap
group: files cache ldap
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
115
rpc: files
services: files sss
netgroup: files sss
publickey: nisplus
automount: files sss
aliases: files nisplus
sudoers: files ldap
EOF
/bin/cat >> /etc/ssh/sshd_config << EOF
AuthorizedKeysCommand /usr/libexec/openssh/ssh-ldap-wrapper
AuthorizedKeysCommandUser nobody
PubkeyAuthentication yes
EOF
/bin/cat > /etc/ntp.conf << EOF
server ntp1.lbc.ru iburst version 4 prefer
server ntp2.lbc.ru iburst version 4 prefer
driftfile /var/lib/ntp/drift
restrict default ignore
restrict 127.0.0.1 mask 255.255.255.255
restrict ntp1.lbc.ru noquery notrap
restrict ntp2.lbc.ru noquery notrap
restrict default notrust nomodify notrap
disable monitor
EOF
/bin/cat > /etc/smartmontools/smartd.conf << EOF
DEVICESCAN -H -m admin@lightsoft.ru
EOF
116
/usr/bin/systemctl enable lldpad.service
/usr/bin/systemctl enable ntpd.service
/bin/cat > /root/lldp-cfg.sh << EOF
#!/bin/bash
for ETH in {0..1}
do
lldptool set-lldp -i eth\$ETH adminStatus=rxtx
lldptool set-tlv -i eth\$ETH -V portDesc enableTx=yes
lldptool set-tlv -i eth\$ETH -V sysName enableTx=yes
lldptool set-tlv -i eth\$ETH -V sysDesc enableTx=yes
done
EOF
/bin/bash /root/lldp-cfg.sh
/usr/bin/systemctl enable nslcd.service
/bin/echo '192.168.0.0/16 via 192.168.101.111 dev eth1' > /etc/sysconfig/network-
scripts/route-eth1
%end
reboot
Для того, чтобы данный файл kickstart был обнаружен программой установки
CentOS, которая загрузилась по PXE, необходимо чтобы он был доступен в виде
текста по протоколу http. Для этого был установлен веб-сервер nginx, в котором
прописана простая конфигурация, находящаяся по адресу /etc/nginx/nginx.conf:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)