Last active
July 21, 2018 03:11
-
-
Save carlosanders/547c7da77bb1f258911ea8b35926e9ca to your computer and use it in GitHub Desktop.
Adiciona proxy no bash do Oracle Linux 7+ (Modo Interativo, não precisar editar o arquivo)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Script Autor: 1T (T) Anders | |
| ########################################################################### | |
| ########################################################################### | |
| ################## ARQUIVOS QUE NÃO PODEM MEXER ########################### | |
| bash_profile_root_file="/root/.bash_profile" | |
| wgetrc_config_file="/etc/wgetrc" | |
| yum_config_file="/etc/yum.conf" | |
| up2date_file="/etc/sysconfig/rhn/up2date" | |
| bashrc_profile_root_file="/root/.bashrc" | |
| git_root_config_file="/root/.gitconfig" | |
| ################## FIM ARQUIVOS QUE PODEM SER PERSONALIZADOS ################## | |
| ########################################################################### | |
| ################## ARQUIVOS QUE NÃO PODEM MEXER ########################### | |
| # ou assim caso nao esteja com o root logado | |
| # retorna a versao do Oracle Linux | |
| ver_so=`cat /etc/oracle-release` | |
| ### cores ### | |
| c_red_b_white="\033[01;47;31m" | |
| c_red_white="\033[00;47;31m" | |
| c_amarelo="\033[01;33m" | |
| c_azul="\033[00;36m" | |
| c_fechamento="\033[00m" | |
| ########################################################################### | |
| ########################################################################### | |
| # Rotina principal do script e chamada na ordem abaixo do arquivo | |
| main() { | |
| echo -e "${c_red_white}----- Servidor: ${ver_so} ----- ${c_fechamento}" | |
| menu | |
| echo -e "${c_red_white}----- Provisionamento Concluído ----- ${c_fechamento}" | |
| } | |
| menu(){ | |
| echo -e "${c_azul}------------------------------------------${c_fechamento}" | |
| echo -e "${c_azul} Configurar Proxy no Sistema ${c_fechamento}" | |
| echo -e "${c_azul}------------------------------------------${c_fechamento}" | |
| echo | |
| echo -e "${c_amarelo} [ 1 ] Adicionar Proxy root ${c_fechamento}" | |
| echo -e "${c_amarelo} [ 2 ] Deletar Proxy root ${c_fechamento}" | |
| echo -e "${c_amarelo} [ 3 ] Adicionar Proxy usuário logado ${c_fechamento}" | |
| echo -e "${c_amarelo} [ 4 ] Deletar Proxy usuário logado ${c_fechamento}" | |
| echo -e "${c_amarelo} [ 5 ] Sair ${c_fechamento}" | |
| echo | |
| echo -n "Qual a Opção desejada ? " | |
| read opcao | |
| case $opcao in | |
| 1) vrf_proxy_root_go ;; | |
| 2) deleta_proxy_root_go ;; | |
| 3) vrf_proxy_user_go ;; | |
| 4) deleta_proxy_user_go ;; | |
| 5) exit ;; | |
| *) "Opção desconhecida." ; echo ; Principal ;; | |
| esac | |
| } | |
| #sub-rotina que verifica se existe proxy no sistema | |
| #se sim chama as outras sub-rotinas, evitando duplicidade de proxy no sistema | |
| vrf_proxy_root_go() { | |
| echo -e "${c_amarelo}>>>>>>>> Verficando o proxy no Servidor <<<<<<<<${c_fechamento}" | |
| if ! grep -in "proxy" ${bash_profile_root_file}; then | |
| echo -e "${c_azul}O proxy não está presente! ${c_fechamento}" | |
| insere_root_proxy_go | |
| else | |
| echo -e "${c_azul}O proxy está presente! ${c_fechamento}" | |
| deleta_proxy_root_go | |
| insere_root_proxy_go | |
| fi | |
| echo -e "${c_azul}Verificações de Proxy Concluídas ${c_fechamento}" | |
| } | |
| vrf_proxy_user_go() { | |
| echo -e "${c_amarelo}>>>>>>>> Verficando o proxy no Servidor <<<<<<<<${c_fechamento}" | |
| read -p "Digite o usuário do Linux que deseja add o proxy: " user_logado | |
| bash_profile_file="/home/${user_logado}/.bash_profile" | |
| bashrc_profile_file="/home/${user_logado}/.bashrc" | |
| git_profile_file_user="/home/${user_logado}/.gitconfig" | |
| if ! grep -in "proxy" ${bash_profile_file}; then | |
| echo -e "${c_azul}O proxy não está presente! ${c_fechamento}" | |
| insere_proxy_user_go | |
| else | |
| echo -e "${c_azul}O proxy está presente! ${c_fechamento}" | |
| deleta_proxy_user_go | |
| insere_proxy_user_go | |
| fi | |
| echo -e "${c_azul}Verificações de Proxy Concluídas ${c_fechamento}" | |
| } | |
| #sub-rotina chamada quando existe proxy no sistema | |
| deleta_proxy_user_go() { | |
| echo -e "${c_amarelo}>>>>>>>> Deletando o proxy no Servidor <<<<<<<<${c_fechamento}" | |
| read -p "Digite o usuário do Linux que deseja deletar o proxy: " user_logado | |
| bash_profile_file="/home/${user_logado}/.bash_profile" | |
| bashrc_profile_file="/home/${user_logado}/.bashrc" | |
| git_profile_file_user="/home/${user_logado}/.gitconfig" | |
| [ "$user_logado" ] || { echo "ERRO: Usuário inválido";exit; } | |
| if [ -n $user_logado ] | |
| then | |
| # revomendo do usuario logado | |
| sudo sed -i '/proxy/d' ${bash_profile_file} | |
| sudo sed -i '/proxy-user/d' ${bashrc_profile_file} | |
| sudo sed -i '/umask 022/d' ${bashrc_profile_file} | |
| # removendo do git | |
| # remove proxy | |
| sudo sed -i '/proxy/d' ${git_profile_file_user} | |
| sudo sed -i '/http/d' ${git_profile_file_user} | |
| sudo sed -i '/sslverify/d' ${git_profile_file_user} | |
| fi | |
| #deleta proxy sistema | |
| deleta_proxy_sistema_go | |
| echo -e "${c_azul}----- Concluído ----- ${c_fechamento}" | |
| } | |
| #sub-rotina chamada quando existe proxy no sistema | |
| deleta_proxy_root_go() { | |
| echo -e "${c_amarelo}>>>>>>>> Deletando o proxy do root <<<<<<<<${c_fechamento}" | |
| #removendo do usuario root | |
| # remove umask 022 | |
| sudo sed -i '/proxy/d' ${bash_profile_root_file} | |
| sudo sed -i '/proxy-user/d' ${bashrc_profile_root_file} | |
| sudo sed -i '/umask 022/d' ${bashrc_profile_root_file} | |
| sudo sed -i '/proxy/d' ${git_root_config_file} | |
| sudo sed -i '/sslverify/d' ${git_root_config_file} | |
| sudo sed -i '/http/d' ${git_root_config_file} | |
| #deleta proxy sistema | |
| deleta_proxy_sistema_go | |
| echo -e "${c_azul} ----- Concluído ----- ${c_fechamento}" | |
| } | |
| #sub-rotina chamada quando existe proxy no sistema | |
| deleta_proxy_sistema_go() { | |
| echo -e "${c_amarelo}>>>>>>>> Deletando o proxy do SO <<<<<<<<${c_fechamento}" | |
| #apaga ocorrencias de proxy nos arquivos de sistema | |
| sudo sed -i '/proxy/d' ${wgetrc_config_file} | |
| sudo sed -i '/proxy/d' ${yum_config_file} | |
| #Disable /etc/sysconfig/rhn/up2date | |
| sudo sed -i "s/enableProxy=1/enableProxy=0/g" ${up2date_file} | |
| sudo sed -i "s/proxyPassword=/proxyPassword= /g" ${up2date_file} | |
| sudo sed -i "s/proxyUser= /proxyUser= /g" ${up2date_file} | |
| sudo sed -i "s/httpProxy= /httpProxy= /g" ${up2date_file} | |
| sudo sed -i "s/enableProxyAuth=/enableProxyAuth= /g" ${up2date_file} | |
| echo -e "${c_azul} ----- Concluído ----- ${c_fechamento}" | |
| } | |
| #sud-rotina chamada para inserir proxy no sistema | |
| insere_root_proxy_go(){ | |
| echo -e "${c_amarelo}>>>>>>>> Inserindo o proxy no root <<<<<<<<${c_fechamento}" | |
| read -p "Digite o usuário do Proxy: " user_proxy | |
| read -p "Digite a senha do usuário do Proxy: " user_passwd | |
| read -p "Digite a URL do Proxy: " url_proxy | |
| read -p "Digite a Porta do Proxy: " port_proxy | |
| [ "$user_proxy" ] || { echo "ERRO: Usuário inválido";exit; } | |
| [ "$user_passwd" ] || { echo "ERRO: Uenha inválida";exit; } | |
| [ "$url_proxy" ] || { echo "ERRO: URL inválida";exit; } | |
| [ "$port_proxy" ] || { echo "ERRO: Porta inválida";exit; } | |
| # configurando o sistema | |
| insere_proxy_sistema | |
| #Habilita .bash_profile do root/vagrant | |
| cat << EOF >> ${bash_profile_root_file} | |
| export http_proxy="http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export ftp_proxy="ftp://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export https_proxy="http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export socks_proxy="socks://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| EOF | |
| #Habilita bashrc_profile_root_file | |
| cat << EOF >> ${bashrc_profile_root_file} | |
| alias curl="curl --proxy-user ${user_proxy}:${user_passwd}" | |
| umask 022 | |
| EOF | |
| # vrf se existe o arquivo | |
| if [ -f "${git_root_config_file}" ]; then | |
| #Habilita proxy no .gitconfig do git no usuário root | |
| if ! grep -in "proxy" ${git_root_config_file}; then | |
| cat << EOF >> ${git_root_config_file} | |
| [http] | |
| sslverify = false | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| [https] | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| EOF | |
| fi | |
| # se nao existir o arquivo entao cria e add | |
| else | |
| cat << EOF >> ${git_root_config_file} | |
| [http] | |
| sslverify = false | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| [https] | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| EOF | |
| fi | |
| echo -e "${c_azul}----- Concluído ----- ${c_fechamento}" | |
| } | |
| #sud-rotina chamada para inserir proxy no sistema | |
| insere_proxy_user_go(){ | |
| echo -e "${c_amarelo}>>>>>>>> Inserindo o proxy no Servidor <<<<<<<<${c_fechamento}" | |
| read -p "Digite o usuário do Proxy: " user_proxy | |
| read -p "Digite a senha do usuário do Proxy: " user_passwd | |
| read -p "Digite a URL do Proxy: " url_proxy | |
| read -p "Digite a Porta do Proxy: " port_proxy | |
| [ "$user_proxy" ] || { echo "ERRO: Usuário inválido";exit; } | |
| [ "$user_passwd" ] || { echo "ERRO: Uenha inválida";exit; } | |
| [ "$url_proxy" ] || { echo "ERRO: URL inválida";exit; } | |
| [ "$port_proxy" ] || { echo "ERRO: Porta inválida";exit; } | |
| [ "$user_logado" ] || { echo "ERRO: Usuário inválido";exit; } | |
| # configurando o sistema | |
| insere_proxy_sistema | |
| cat << EOF >> ${bash_profile_file} | |
| export http_proxy="http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export ftp_proxy="ftp://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export https_proxy="http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| export socks_proxy="socks://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" | |
| EOF | |
| #Habilita bashrc_profile_file | |
| cat << EOF >> ${bashrc_profile_file} | |
| alias curl="curl --proxy-user ${user_proxy}:${user_passwd}" | |
| umask 022 | |
| EOF | |
| # vrf se existe o arquivo | |
| if [ -f "${git_profile_file_user}" ]; then | |
| #se nao existir o proxy no arquivo entao adiciona ao final | |
| if ! grep -in "proxy" ${git_profile_file_user}; then | |
| cat << EOF >> ${git_profile_file_user} | |
| [http] | |
| sslverify = false | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| [https] | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| EOF | |
| fi | |
| # se nao existir o arquivo entao cria e add | |
| else | |
| cat << EOF >> ${git_profile_file_user} | |
| [http] | |
| sslverify = false | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| [https] | |
| proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy} | |
| EOF | |
| fi | |
| echo -e "${c_azul}----- Concluído ----- ${c_fechamento}" | |
| } | |
| insere_proxy_sistema(){ | |
| echo -e "${c_amarelo}>>>>>>>> Inserindo o proxy no SO <<<<<<<<${c_fechamento}" | |
| #Habilita wgetrc | |
| sudo cat << EOF >> ${wgetrc_config_file} | |
| https_proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}/ | |
| http_proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}/ | |
| ftp_proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}/ | |
| use_proxy = on | |
| EOF | |
| #Habilita yum.conf | |
| sudo echo "proxy = http://${user_proxy}:${user_passwd}@${url_proxy}:${port_proxy}" >> ${yum_config_file} | |
| #Habilita /etc/sysconfig/rhn/up2date | |
| sudo sed -i "s/enableProxy=0/enableProxy=1/g" ${up2date_file} | |
| sudo sed -i "s/proxyPassword=/proxyPassword=${user_passwd}/g" ${up2date_file} | |
| sudo sed -i "s/proxyUser= /proxyUser=${user_proxy}/g" ${up2date_file} | |
| sudo sed -i "s/httpProxy= /httpProxy=${url_proxy}/g" ${up2date_file} | |
| sudo sed -i "s/enableProxyAuth=/enableProxyAuth=1/g" ${up2date_file} | |
| echo -e "${c_azul}----- Concluído ----- ${c_fechamento}" | |
| } | |
| main | |
| exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment