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
|