Browse Source

instalação debian

dev
bruno 10 months ago
parent
commit
63e6c8be94
  1. 371
      aplicativo-simplesip/app_install.sh

371
aplicativo-simplesip/app_install.sh

@ -0,0 +1,371 @@
#!/bin/bash
trap "" 2 20
function access_sgdb(){
for encode_db in $(sudo -u postgres psql -l | grep postgres | awk -F \| '{print $3}')
do
echo $encode
[ "LATIN1" == $encode ] || sair_instalacao 16
done
for locate_db in $(sudo -u postgres psql -l | grep postgres | awk -F \| '{print $4}')
do
echo $locate_db
[ "en_US.iso-8859-1" == $locate_db ] || sair_instalacao 16
done
}
function parar_servicos_antes_instalacao(){
/usr/bin/systemctl kill cron
/usr/bin/systemctl kill supervisor
/usr/bin/systemctl kill apache2
/usr/bin/systemctl kill postgresql.service
}
function start_postgresql(){
[ ! -f /usr/lib/systemd/system/postgresql@.service ] && sair_instalacao 15
if [ $(systemctl status postgresql@13-main.service|awk -F\( 'NR==3{print $2}'|cut -d\) -f 1) == 'running' ]
then
systemctl restart postgresql@13-main.service
[ $? -ne 0 ] && sair_instalacao 15
else
systemctl start postgresql@13-main.service
[ $? -ne 0 ] && sair_instalacao 15
fi
sleep 10
}
function sair_instalacao(){
/bin/rm -rf /tmp/sip_install.pid
exit $1
}
function mudar_password(){
/usr/sbin/usermod --password $2 $1 2> /dev/null
/usr/bin/passwd --status $1 2> /dev/null
}
function delete_usuario(){
/usr/sbin/userdel -fr $1 2> /dev/null
[ -n "$(cat /etc/group|grep -iE "^$1")" ] && /usr/sbin/groupdel $1 2> /dev/null
}
function criar_usuario_limitado(){
#excluí usuário
if [ -n "$(cat /etc/passwd | grep -i ^$1:)" ] ; then
delete_usuario $1
fi
/usr/sbin/groupadd $1 &> /dev/null
/usr/sbin/useradd -s /usr/bin/rbash -m $1 -g $1 &> /dev/null
/usr/bin/mkdir /home/$1/bin
## Restringir permissões do usuário manutenção
echo "readonly PATH=/home/$1/bin
export PATH" >> /home/$1/.bashrc
ln -s /sbin/reboot /home/$1/bin/reiniciar
ln -s /sbin/halt /home/$1/bin/desligar
[ $1 == "manutencao" ] && echo "if [[ -f /home/$1/manutencao.sh ]];then /home/manutencao/manutencao.sh; else echo \"Sem script de manutencao.\";fi" >> /home/$1/.bashrc
[ $1 == "manutencao" ] && echo "exit" >> /home/$1/.bashrc
mudar_password $1 $2
}
function criar_usuario(){
#excluí usuário
if [ -n "$(cat /etc/passwd | grep -i ^$1:)" ] ; then
delete_usuario $1
fi
/usr/sbin/groupadd $1 2> /dev/null
/usr/sbin/useradd -s /usr/bin/bash "$([ -z "$3" ] && echo "-d $3" || echo "-m" )" $1 -g $1 2> /dev/null
mudar_password $1 $2
}
function verificar_encode(){
# O SO será em UTF-8, porém o banco em ISO
if ! [ "$encode" = "lang=en_us.iso-8859-1" ] ; then
clear
echo -n "Encoding: $encode incorreto, deseja corrigir e reiniciar o servidor? (S/N):"
read -n 1 resposta
echo ""
if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then
/bin/rm -rf /tmp/sip_install.pid
exit
fi
lines_locale=$(grep -E "^[^#]" /etc/locale.gen)
for line in $lines_locale; do echo $line; sed -i "s|^$line|# $line|g" /etc/locale.gen; done
echo "en_US ISO-8859-1" >> /etc/locale.gen
export LANGUAGE="en_US ISO-8859-1"
export LANG="en_US ISO-8859-1"
export LC_ALL="en_US ISO-8859-1"
/sbin/locale-gen
/bin/localectl set-locale LANG="en_US.ISO-8859-1"
/bin/localectl set-locale LANGUAGE="en_US.ISO-8859-1"
clear
echo "Reiniciando..."
for i in {5..1};do sleep 1 && echo -n "$i ";done
echo ""
echo "Recomece a atualizacao"
/bin/rm -rf /tmp/sip_install.pid
[ -e /sbin/reboot ] && /sbin/reboot
reboot
fi
}
function ja_instalado(){
if [ -d /var/www/html/aplicativo ] || [ -d /var/www/html/include ] || [ -d /var/www/html/agenda ] ; then
echo ""
echo ""
echo -n "Identifiquei que ja ocorreu uma instalacao neste servidor, o procedimento a seguir substituira todos os arquivos, deseja continuar? (S/N):"
read -n 1 resposta
echo ""
if [[ $resposta != +(s|S|y|Y|sim|SIM) ]] ; then
/bin/rm -rf /tmp/sip_install.pid
/bin/rm -rf $path_arquivo
/bin/rm -rf $path_arquivo*.tar.gz
echo ""
echo "Instalacao cancelada!"
echo ""
echo ""
exit
fi
}
function existe_outra_instalacao(){
# Verifica se o script esta rodando
#
if [ -e /tmp/sip_install.pid ] ; then
echo "Script em Excecucao..."
exit
fi
}
function definir_timezone(){
while true ; do
DIALOGDATA="$(for i in $(/usr/bin/timedatectl list-timezones) ; do echo -n "$i '' off " | sed -e "s/America\/Cuiaba '' off/America\/Cuiaba '' on/g" ; done)"
TIMEZONE=$(dialog --stdout --default-item America/Cuiaba --radiolist " CONFIGURE O TIMEZONE " 0 0 0 $DIALOGDATA)
# Apertou CANCELAR ou ESC, sair...
[ $? -ne 0 ] && /bin/rm -rf /tmp/sip_atualiza.pid && exit
OPCAO=$(echo $TIMEZONE | sed "s/,/\\n/g")
if ! [ -z "$OPCAO" ] ; then
/usr/bin/timedatectl set-timezone $OPCAO
break
fi
done
}
function checar_dependencias(){
for program in $1
do
[ ! -f /usr/bin/$program ] && echo "falta de pendencias. $program" && sair_instalacao 10
done
for program in $2
do
[ ! -f /usr/sbin/$program ] && echo "falta dependencia $program" && sair_instalacao 10
done
}
function directory_hdaux(){
! [ -d /hdaux/downloads ] && mkdir -p /hdaux/downloads
! [ -d /hdaux/atualizacao ] && mkdir -p /hdaux/atualizacao
! [ -d /hdaux/utilitarios/scripts ] && mkdir -p /hdaux/utilitarios/scripts
! [ -d /hdaux/utilitarios/ferramentas ] && mkdir -p /hdaux/utilitarios/ferramentas
! [ -d /hdaux/utilitarios/manuais ] && mkdir -p /hdaux/utilitarios/manuais
! [ -d /hdaux/backup ] && mkdir -p /hdaux/backup
! [ -d /hdaux/restore ] && mkdir -p /hdaux/restore
}
# Mudar o
function config_postgresql(){
if [ ! -f /var/lib/postgresql/13/main/postgresql.conf ]
then
echo "Não foi encontrado arquivo /var/lib/postgresql/13/main/postgresql.conf"; sair_instalacao 15
fi
sed -i "s/^[# ]*listen_addresses *= *'.*'/listen_addresses = \'\*\'/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*shared_buffers *= *[0-9]* *\(MB\|kB\|GB\)/shared_buffers = 960MB/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*effective_cache_size *= *[0-9] *\(MB\|kB\|GB\)/effective_cache_size = 2816MB/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_destination *= *'.*'/log_destination = 'stderr' /g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*logging_collector *= *\(on\|off\)/logging_collector = on/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_directory = '.*'/log_directory = 'log'/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_filename = '.*'/log_filename = 'postgresql-%a.log/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_rotation_age *= *[0-9]*[dw]/log_rotation_age = 1d/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_rotation_size *= *[0-9]* *\(MB\|kB\|GB\)/log_rotation_size = 0/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*log_line_prefix *= *'.*'/log_line_prefix = '%m PID[%p] USER(%u) aplication(%a) database(%d) command(%i) SQLSTATE(%e): '/g" /var/lib/postgresql/13/main/postgresql.conf
sed -i "s/^[# ]*autovacuum *= *\(on\|off\)/autovacuum = off/g" /var/lib/postgresql/13/main/postgresql.conf
}
function inicia_initdb(){
rm -rf /var/lib/postgresql/13/main
sudo -u postgres /usr/lib/postgresql/13/bin/initdb -D /var/lib/postgresql/13/main -E LATIN1 --locale=en_US.ISO-8859-1 --auth-local md5 --auth-host md5
}
function alterar_password_user_postgresql(){
sudo -u postgres psql -c "ALTER USER $1 WITH PASSWORD $2;"
}
function criar_usuario_postgresql(){
sudo -u postgres psql -c "CREATE USER $1 WITH PASSWORD $2 ${@:3};"
alterar_password_user_postgresql "$1" "$2"
}
function criar_banco_pbx(){
#Criando Banco de Dados
! [ -z "$(sudo -u postgres psql -l | grep pbx)" ] && su postgres -c "dropdb pbx"
sudo -u postgres createdb pbx
[ $? == 0 ] && sair_instalacao 17
}
function rota_vpn(){
#VPN
echo '#!/bin/bash' > /etc/ppp/ip-up.local
echo "" >> /etc/ppp/ip-up.local
echo "case \"\$5\" in" >> /etc/ppp/ip-up.local
echo " 10.254.254.1)" >> /etc/ppp/ip-up.local
echo " /sbin/route add -net 10.252.252.0/24 gw 10.254.254.1" >> /etc/ppp/ip-up.local
echo " /sbin/route add -net 192.168.115.0/24 gw 10.254.254.1" >> /etc/ppp/ip-up.local
echo " ;;" >> /etc/ppp/ip-up.local
echo " *)" >> /etc/ppp/ip-up.local
echo "esac" >> /etc/ppp/ip-up.local
chmod 777 /etc/ppp/ip-up.local
}
COMPANY="SIMPLES IP"
#Descobrindo o caminho do script
dir=$(dirname $0)
path_arquivo=$(cd $dir;pwd)
arquitetura=$(uname -m)
versao_linux=$(cat /etc/debian_version | sed 's/[a-zA-Z() ]//g' | cut -d "." -f 1)
encode=$(locale | tr [[:upper:]] [[:lower:]] | sed -e "s/\"//g" | grep "^lang=")
resposta=0
tty_user=$(tty|awk -F/ '{print $3"/"$4}')
sosftware_depencencia="pg_ctlcluster sudo php crontab"
sosftware_depencencia_sbin="asterisk apache2 logrotate pptp"
clear
echo ' '
echo ' _____ _ __ _____ ________ '
echo ' / ___/(_)___ ___ ____ / /__ / ___/ / _/ __ \'
echo ' \__ \/ / __ `__ \/ __ \/ / _ \\__ \ / // /_/ /'
echo ' ___/ / / / / / / / /_/ / / __/__/ / _/ // ____/ '
echo '/____/_/_/ /_/ /_/ .___/_/\___/____/ /___/_/ '
echo ' /_/ '
echo ' '
existe_outra_instalacao
#
#PID do scritp
echo $$ > /tmp/sip_install.pid
checar_dependencias "$sosftware_depencencia" "$sosftware_depencencia_sbin"
ja_instalado
verificar_encode
definir_timezone
#deslogar todos os usuários
/bin/kill $(ps -ef | egrep '(tty|pts)'| grep -vE "$tty_user"|awk '{print $2}')
[ ! -f /usr/bin/rbash ] && /usr/bin/cp /usr/bin/bash /usr/bin/rbash
criar_usuario_limitado manutencao '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.'
criar_usuario aplicacao '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.' /tmp
criar_usuario pbx '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.' /var/lib/asterisk
criar_usuario simples '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.'
criar_usuario sipadmin '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.'
mudar_password root '$6$/LIKRy5a3gR4t0wI$yGF5UMjKhRfud29UUuZuR.vYL1gJMa722GKpjzcXxMssEhJuslwVATMWbdk7PvoL1GysRRSg.WUfAVJPz3UlM.'
parar_servicos_antes_instalacao
inicia_initdb
config_postgresql
start_postgresql
access_sgdb
criar_usuario_postgresql contacte 'ctepgSQL' SUPERUSER CREATEDB CREATEROLE
criar_usuario_postgresql root WITH '$imple$ip' SUPERUSER CREATEDB CREATEROLE
criar_usuario_postgresql simplesip 'smplsIP' SUPERUSER CREATEDB CREATEROLE
alterar_password_user_postgresql postgres 'SIP$$'
Loading…
Cancel
Save