Automatização criação de vhost

De MochilaWiki
Ir para navegaçãoIr para pesquisar

Trata-se de uma solução que criei para facilitar algo que é constante -> criação de vhost. No caso cria a pasta pública, privada e de log + acesso ftp e ajustes no apache; no final envia uma mensagem com as informações por e-mail.

pré-configuração

mkdir /srv/projeto-conf/
mkdir /srv/skel/
apt-get install mutt pwgen

script

export CMS=$1
export ENDPROJ=$2
export PROJ=$3
export MAIL=$4
export SENHA=`pwgen -1n 12`

#criando usuário e home
mkdir -p /home/sites/$ENDPROJ/public_html/$CMS
mkdir /home/sites/$ENDPROJ/logs
useradd -d /home/sites/$ENDPROJ -p $SENHA -s /bin/false $PROJ
chown -R $PROJ.$PROJ /home/sites/$ENDPROJ

#configura dominio pro apache
sed "s/endereco/`echo $ENDPROJ`/g" /srv/skel/site > /etc/apache2/sites-available/$ENDPROJ
sed -i "s/cms/`echo $CMS`/g" /etc/apache2/sites-available/$ENDPROJ

# habilita e reinicia configurações do apache
a2ensite $ENDPROJ
/etc/init.d/apache2 reload

# Salvando Configurações
sed "s/nomeproj/`echo $PROJ`/g" /srv/skel/dados > /srv/projeto-conf/$ENDPROJ
sed -i "s/formtproj/`echo $CMS`/g" /srv/projeto-conf/$ENDPROJ
sed -i "s/casa/`echo $ENDPROJ`/g" /srv/projeto-conf/$ENDPROJ
sed -i "s/pass/`echo $SENHA`/g" /srv/projeto-conf/$ENDPROJ
sed -i "s/endereco/`echo $ENDPROJ`/g" /srv/projeto-conf/$ENDPROJ
sed -i "s/email/`echo $MAIL`/g" /srv/projeto-conf/$ENDPROJ

# Envia mensagem para o responsável
mutt -s "Criado hospedagem para $ENDPROJ" $MAIL < /srv/projeto-conf/$ENDPROJ


template 1

Crie o arquivo /srv/skel/dados com as informações

Nome do Projeto = nomeproj
Formato do Projeto = formtproj
Url = endereco
Home = /home/sites/casa
Senha = pass
Relatórios = /home/sites/endereco/logs
Contato do Responsavel = email

template 2

Crie o arquivo /srv/skel/site com as informações

<VirtualHost 127.0.0.1:80>
   ServerName www.endereco
   ServerAlias endereco
   DocumentRoot /home/sites/endereco/public_html/cms
   ServerAdmin folhas@quijaua.com.br
   ErrorLog /home/sites/endereco/logs/error.log
   CustomLog /home/sites/endereco/logs/access.log common

   <Directory /home/sites/endereco/public_html/cms>
   Allowoverride All
   </Directory>

</VirtualHost>

criando hospedagem

./gera-vhost.sh [Formato do Projeto] [Url] [Nome do Projeto] [email]
  • Formato do Projeto = No caso de um site em HTML, seria "html" ou se for um CMS, o nome dele, por exemplo, "wordpress", "drupal"
  • Url = endereço do domínio, por exemplo, quijaua.com.br
  • Nome do Projeto = quijaua
  • email = contato da pessoa responsável pelo site

PS: sempre colocar os valores em minusculo (caixa-baixa).

Exemplo:

./gera-vhost.sh wordpress elegbara.com elegbara nada@zero.com

Referências: