177 lines
7.6 KiB
Bash
177 lines
7.6 KiB
Bash
#!/usr/bin/env bash
|
||
if [[ $(whoami) == "root" ]]; then
|
||
# определение необходимостей
|
||
read -p 'Сеть [1] / Репозитории [2] / Домен [3] / Вход [4] ' whichScript
|
||
|
||
##################################
|
||
# Настройка сети #
|
||
##################################
|
||
# проверяем необходимость запуска
|
||
if grep -q "1" <<< "$whichScript"; then
|
||
# задаём имя соединению
|
||
con="Проводное соединение 1"
|
||
# назначаем хостнейм
|
||
read -p 'Введите хостнейм FQDN: ' hostname
|
||
hostnamectl set-hostname "$hostname"
|
||
# конфигуриуем соединение
|
||
read -p 'Введите IP: ' ip
|
||
read -p 'Введите маску: ' mask
|
||
read -p 'Введите гетвей: ' gateway
|
||
read -p 'Введите DNS(для клиента указываем DNS домен): ' dns
|
||
nmcli con mod "$con" ip4 $ip/$mask gw4 $gateway
|
||
# настраиваем адресс DNS
|
||
nmcli con mod "$con" ipv4.dns "$dns"
|
||
# отключаем DHCP, Добавляем loopback строку в IPv6
|
||
nmcli con mod "$con" ipv4.method manual
|
||
chmod 777 /etc/sysctl.d/999-astra.conf
|
||
echo "net.ipv6.conf.lo.disable_ipv6 = 0" >> /etc/sysctl.d/999-astra.conf
|
||
chmod 644 /etc/sysctl.d/999-astra.conf
|
||
# указываем данные hosts
|
||
pcDomain=$(hostname -s)
|
||
domain=$(hostname -d)
|
||
echo "$ip $hostname $pcDomain" >> /etc/hosts
|
||
# перезапускаем соединение
|
||
nmcli con down "$con" ; nmcli con up "$con"
|
||
fi
|
||
|
||
|
||
##################################
|
||
# Конфигурация репозиториев #
|
||
##################################
|
||
# проверяем необходимость запуска
|
||
if grep -q "2" <<< "$whichScript"; then
|
||
#!/usr/bin/env bash
|
||
# CD/DVD-1 [Smolensk-1.6]
|
||
mkdir -p /srv/repo/smolensk/main
|
||
mount /dev/sr0 /media/cdrom
|
||
cp -a /media/cdrom/* /srv/repo/smolensk/main
|
||
umount /media/cdrom
|
||
# CD/DVD 2 [Devel-Smolensk-1.6]
|
||
mkdir -p /srv/repo/smolensk/devel
|
||
mount /dev/sr1 /media/cdrom
|
||
cp -a /media/cdrom/* /srv/repo/smolensk/devel
|
||
umount /media/cdrom
|
||
# CD/DVD 3 [20200722SE16]
|
||
mkdir -p /srv/repo/smolensk/update
|
||
mount /dev/sr2 /media/cdrom
|
||
cp -a /media/cdrom/* /srv/repo/smolensk/update
|
||
umount /media/cdrom
|
||
# CD/DVD 4 [Repository-Update-Devel]
|
||
mkdir -p /srv/repo/smolensk/update-dev
|
||
mount /dev/sr3 /media/cdrom
|
||
cp -a /media/cdrom/* /srv/repo/smolensk/update-dev
|
||
umount /media/cdrom
|
||
# дополняем источники
|
||
echo -n > /etc/apt/sources.list
|
||
echo "# репозиторий основного диска" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/main smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска со средствами разработки" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/devel smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска с обновлением основного диска" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/update smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска с обновлением диска со средствами разработки" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/update-dev smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
# обновление пакетов
|
||
apt update -y
|
||
apt dist-upgrade -y
|
||
apt -f install -y
|
||
# включение SSH
|
||
apt install ssh -y
|
||
systemctl enable ssh
|
||
systemctl start ssh
|
||
# перезагружаем
|
||
read -p 'Перезагрузить машину? ' doReboot
|
||
if [[ "$doReboot" == "y" ]]; then
|
||
reboot
|
||
fi
|
||
fi
|
||
|
||
##################################
|
||
# Установка домена #
|
||
##################################
|
||
# проверяем необходимость запуска
|
||
if grep -q "3" <<< "$whichScript"; then
|
||
echo "dns должен быть loopback и имя сервера должно быть FQDN = astra.demo.lab"
|
||
con="Проводное соединение 1"
|
||
# добавление репозиториев и установка пакетов для УЦ Dogtag FreeIPA
|
||
echo -n > /etc/apt/sources.list
|
||
echo "# репозиторий с актуальными стабильными версиями пакетов" >> /etc/apt/sources.list
|
||
echo "deb https://download.astralinux.ru/astra/stable/orel/repository orel contrib main non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий с тестируемыми версиями пакетов" >> /etc/apt/sources.list
|
||
echo "deb https://download.astralinux.ru/astra/testing/orel/repository orel contrib main non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий с экспериментальными пакетами" >> /etc/apt/sources.list
|
||
echo "deb https://download.astralinux.ru/astra/experimental/orel/repository orel contrib main non-free" >> /etc/apt/sources.list
|
||
|
||
# обновление пакетов
|
||
apt update -y
|
||
# установка пакетов для УЦ
|
||
apt -d install pki-ca pki-kra -y
|
||
dpkg -i /var/cache/apt/archives/*.deb
|
||
|
||
# восстанавливаем репозитории источники
|
||
echo -n > /etc/apt/sources.list
|
||
echo "# репозиторий основного диска" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/main smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска со средствами разработки" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/devel smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска с обновлением основного диска" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/update smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
echo "# репозиторий диска с обновлением диска со средствами разработки" >> /etc/apt/sources.list
|
||
echo "deb file:/srv/repo/smolensk/update-dev smolensk main contrib non-free" >> /etc/apt/sources.list
|
||
|
||
# обновление пакетов
|
||
apt update -y
|
||
|
||
#read -p 'Введите хостнейм еще раз: ' hostname
|
||
# конфигуриуем соединение
|
||
read -p 'Введите DNS такой же как IP: ' dns
|
||
|
||
# настраиваем адресс DNS
|
||
nmcli con mod "$con" ipv4.dns "$dns"
|
||
|
||
# перезапускаем соединение
|
||
nmcli con down "$con" ; nmcli con up "$con"
|
||
|
||
# установка пакетов FreeIPA
|
||
apt install fly-admin-freeipa-server -y
|
||
# профилактика битых пакетов
|
||
apt -f install -y
|
||
# проверяем переменные сети
|
||
|
||
# конфигурируем данные домена
|
||
pcDomain=$(hostname -s)
|
||
domain=$(hostname -d)
|
||
ip=$(hostname -i)
|
||
|
||
# конфигурация домена
|
||
astra-freeipa-server -d $domain -n $pcDomain -px -ip $ip -o --dogtag -y
|
||
read -p 'Перезагрузить машину? ' doReboot
|
||
if [[ "$doReboot" == "y" ]]; then
|
||
reboot
|
||
fi
|
||
fi
|
||
|
||
##################################
|
||
# Ввод в домен #
|
||
##################################
|
||
# проверяем необходимость запуска
|
||
if grep -q "4" <<< "$whichScript"; then
|
||
# установка пакетов
|
||
apt install fly-admin-freeipa-client -y
|
||
# профилактика битых пакетов
|
||
apt -f install -y
|
||
# конфигурируем данные домена
|
||
domain=$(hostname -d)
|
||
# входим в домен
|
||
astra-freeipa-client -d $domain
|
||
fi
|
||
# перезагружаем
|
||
read -p 'Перезагрузить машину? ' doReboot
|
||
if [[ "$doReboot" == "y" ]]; then
|
||
reboot
|
||
fi
|
||
# проверка sudo
|
||
else
|
||
echo "Запусти скрипт через sudo!"
|
||
fi
|
||
fi |