Skip to content

Instantly share code, notes, and snippets.

@eriktonon
Created April 2, 2018 22:53
Show Gist options
  • Save eriktonon/f368f3bbfca0ed0a00aa8b3fed47f956 to your computer and use it in GitHub Desktop.
Save eriktonon/f368f3bbfca0ed0a00aa8b3fed47f956 to your computer and use it in GitHub Desktop.
Configuração de Centos Personalizada
#!/bin/bash
#### DEPENDÊNCIAS ####
type dialog 1> /dev/null
if [ "$?" = 0 ]; then
echo "Dependencias Instaladas..."
else
echo "Instalando Dependencias!"
yum install -y dialog
fi
#### FUNÇÕES ####
sistema_operacional_func()
{
SO=$(dialog --stdout --title 'Sistema Operacional' --menu 'Escolha seu Sistema Operacional:' 0 0 0 1 'CentOS 7')
menu_func
}
hostname_func()
{
HostName=$(dialog --stdout --title 'Hostname' --inputbox 'Informe o novo HOSTNAME:' 0 0)
[ $? -eq 1 ] && menu_func
echo $HostName > /etc/hostname
/bin/hostname $HostName
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
interfaces_rede_func()
{
dinamico()
{
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE
cat > $FILE << EOM
DEVICE=$i
BOOTPROTO=dhcp
ONBOOT=yes
EOM
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0
/etc/init.d/network restart
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
statico()
{
IP=$( dialog --stdout --inputbox 'Informe o IP:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
MASK=$( dialog --stdout --inputbox 'Informe a Máscara:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
GATEWAY=$( dialog --stdout --inputbox 'Informe o Gateway:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
DNS1=$( dialog --stdout --inputbox 'Informe o DNS Primário:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
DNS2=$( dialog --stdout --inputbox 'Informe o DNS Secundário:' 0 0 )
[ $? -eq 1 ] && interfaces_rede_func
dialog --title 'Informações de Rede' --yesno '\nIPADDR='$IP'\nNETMASK='$MASK'\nGATEWAY='$GATEWAY'\nDNS Primário='$DNS1'\nDNS Secundario='$DNS2'\n\nAs informações estão corretas?' 0 0
[ $? -eq 1 ] && interfaces_rede_func
FILE='/etc/sysconfig/network-scripts/ifcfg-'$INTERFACE
cat > $FILE << EOM
DEVICE=$INTERFACE
TYPE=Ethernet
IPADDR=$IP
NETMASK=$MASK
GATEWAY=$GATEWAY
ONBOOT=yes
EOM
echo "nameserver $DNS1" > /etc/resolv.conf
echo "nameserver $DNS2" >> /etc/resolv.conf
dialog --title 'Aguarde' --infobox '\nReiniciando interfaces de rede...' 0 0
/etc/init.d/network restart
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
INTERFACES=`ip a | grep \< | cut -d ':' -f 2`
COMANDO="dialog --stdout --title 'Interfaces de Rede' --menu 'Selecione a interface a ser editada: ' 0 0 0 "
for i in $INTERFACES
do
if [ "$i" != "lo" ]; then
COMANDO=$COMANDO"'$i' '' "
fi
done
INTERFACE=$(eval $COMANDO)
[ $? -eq 1 ] && menu_func
RESPOSTA=$(dialog --stdout --title 'Modo de Operação' --menu 'Selecione o modo de operação ' 0 40 0 \
1 'Static' \
2 'Dinâmico')
case $RESPOSTA in
1) statico ;;
2) dinamico ;;
*) interfaces_rede_func ;;
esac
}
nome_interfaces()
{
INTERFACES=`ip a | grep \< | cut -d ':' -f 2`
sed -i 's/rhgb quiet/rhgb quiet net.ifnames=0 biosdevname=0/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
INT=0
for i in $INTERFACES
do
if [ "$i" != "lo" ]; then
sed -i "s/$i/eth$INT/g" /etc/sysconfig/network-scripts/ifcfg-$i
mv /etc/sysconfig/network-scripts/ifcfg-$i /etc/sysconfig/network-scripts/ifcfg-eth$INT
INT=`expr $INT + 1`
fi
done
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso! NÃO ESQUEÇA DE REINICIAR AO SAIR!' 5 70
}
firewall_func()
{
limpa_regra_func()
{
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
}
inicializacao_func()
{
limpa_regra_func
cat > /etc/init.d/firewall.sh << EOM
#!/bin/bash
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
EOM
chmod +x /etc/init.d/firewall.sh
chmod +x /etc/rc.d/rc.local
echo "/etc/init.d/firewall.sh" >> /etc/rc.d/rc.local
}
MENU=$(dialog --stdout --title 'Firewall' --menu 'Selecione uma opção:' 0 0 0 \
1 'Limpar regras de Fiewall' \
2 'Adicionar script para limpar regras de Firewall na inicialização do sistema' \
3 'Voltar ao Menu Anterior')
case $MENU in
1) limpa_regra_func ;;
2) inicializacao_func ;;
3) menu_func ;;
*) menu_func ;;
esac
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
firewall_func
}
selinux_func()
{
MODO_ATUAL=`cat /etc/selinux/config | grep ^SELINUX= | cut -d '=' -f 2`
echo $MODO_ATUAL
MENU=$(dialog --stdout --title 'Menu' --menu 'Modo Atual: '$MODO_ATUAL'\nNovo Modo:' 0 0 0 \
1 'Disabled (Necessário Reiniciar)' \
2 'Permissive' \
3 'Enforcing (Necessário Reiniciar)' \
4 'Voltar ao Menu Anterior')
case $MENU in
1) sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config ;;
2) sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config; setenforce 0 ;;
3) sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config ;;
4) menu_func ;;
*) menu_func ;;
esac
dialog --title 'Aviso' --msgbox 'Operação realizada com sucesso!' 5 35
menu_func
}
exit_func()
{
dialog --title 'Reiniciar' --yesno '\nVocê deseja reiniciar o sistema operacional?' 0 0
if [ $? -eq 1 ]; then
clear
exit
else
shutdown -r now
fi
}
menu_func()
{
MENU=$(dialog --stdout --title 'Menu' --menu 'Selecione uma opção:' 0 0 0 \
1 'Alterar Hostname' \
2 'Interfaces de Rede' \
3 'Firewall' \
4 'SElinux' \
5 'Alterar o nome das interfaces de rede para ethX' \
6 'Alterar Sistema Operacional' \
7 'Exit')
case $MENU in
1) hostname_func ;;
2) interfaces_rede_func ;;
3) firewall_func ;;
4) selinux_func ;;
5) nome_interfaces ;;
6) sistema_operacional_func ;;
7) exit_func ;;
*) menu_func ;;
esac
}
#### INICIO DO PROGRAMA ####
dialog --title 'Obrigado Por Usar meu Script!' --msgbox 'Designed and Developed by Erik Tonon .' 5 55
sistema_operacional_func
menu_func
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment