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: 2.135 ]

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   webmaster@localhost
   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 recursividade

Informações do Sistema

Instalador de programas no Ubuntu

Script para desmontar partição/unidade

CoDe_X - Compactador/Descompactador de arquivos e diretórios usando Xdialog


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts