Astra/Astra-FreeIPA.sh

177 lines
7.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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