Automatizar a criação de domínios, sites e usuários de FTP

Publicado por Fernando Leonid Careaga Camelo (última atualização em 11/04/2020)

[ Hits: 1.457 ]

Download servicosredes.rar




É um script em bash que tem como objetivo criar domínios, site web e FTP, além dos usuários para utilização do FTP. Os domínios são passados como argumento por meio de um arquivo texto.

O script é dividido em 4 arquivos:

- criarDominio.sh
- criarSite.sh
- criarFTP.sh
- criarDSF.sh

E depende de 3 arquivos que são utilizados como base para a configuração dos respectivos serviços:

- db.modelo
- conf.modelo
- html.modelo

Esse script foi criado para fins didáticos, ou seja, com objetivo de demostrar a importância dos scripts no dia a dia dos profissionais de redes. Por esse motivo estão divididos em partes, onde dividimos os problema em pequenos soluções que juntas resolvem o necessário.

A ideia de compartilhar e ajudar quem está começando e ser ajudado com sugestões de melhorias e funcionalidades mais adequadas.

Arquivos disponíveis também no github:

https://github.com/fernandoleonid/servicosredes/

  



Esconder código-fonte

# Arquivo criarDominio.sh
#!/bin/bash

nomeDominio=$1

echo "
zone \"$nomeDominio\" {
   type master;
   file \"/etc/bind/db.$nomeDominio\";
};
" >> /etc/bind/named.conf.default-zones

cp db.modelo /etc/bind/db.$nomeDominio

sed -i s/localhost/$nomeDominio/g /etc/bind/db.$nomeDominio

systemctl restart bind9

##################################################

# Arquivo criarSite.sh
#!/bin/bash

nomeDominio=$1

cp conf.modelo "/etc/apache2/sites-available/$nomeDominio.conf"

sed -i s/localhost/$nomeDominio/g "/etc/apache2/sites-available/$nomeDominio.conf"

mkdir "/var/www/$nomeDominio"

cp html.modelo "/var/www/$nomeDominio/index.html"

sed -i s/localhost/$nomeDominio/g "/var/www/$nomeDominio/index.html"

a2ensite $nomeDominio.conf

systemctl reload apache2

##################################################

# arquivo criarFTP.sh
#!/bin/bash

dominio=$1
usuario=$(echo $1 | cut -d. -f1)

useradd $usuario -p $(openssl passwd '123') -d /var/www/$dominio

chown $usuario.$usuario /var/www/$dominio

##################################################

# arquivo criarDSF.sh
#!/bin/bash

for dominio in $(cat listadominios.txt)
do
   ./criarDominio.sh $dominio
   ./criarSite.sh $dominio
   ./criarFTP.sh $dominio
done

##################################################

# Arquivos modelo para os respectivos serviços

##################################################

# db.modelo
$TTL   86400
@   IN   SOA   ns1.localhost. root.localhost. (
               1      ; Serial
          604800      ; Refresh
           86400      ; Retry
         2419200      ; Expire
           86400 )   ; Negative Cache TTL
;
@   IN   NS   ns1.localhost.
ns1   IN   A   10.0.100.2
www   IN   A   10.0.100.2
ftp   IN   A   10.0.100.2

##################################################

# conf.modelo
<VirtualHost *:80>
   ServerName    www.localhost
   ServerAdmin   [email protected]
   DocumentRoot   /var/www/localhost
</VirtualHost>

##################################################

# html.modelo
<html>
   <head>
      <title> localhost </title>
      <meta charset="utf-8">
   </head>
   <body bgcolor=localhost>
      <h1>
         Site em construção - localhost
      </h1>
   </body>      
</html>

Scripts recomendados

(Brincando com Aleatoriadade) Tarot Randomico

Systemctl-config - parada ou reativação de um serviço do systemD

Manutenção de rede

Instalador automático nVIDIA para Debian

Pegando IP externo shell script


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts