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.337 ]
É 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/
# 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>
Automatizando a geração de relatórios do SARG
RWm4aMp3 - converter arquivos de música m4a para mp3
Calculadora para eletrodomésticos
Teste de velocidade de conexão via FTP e registro em log
Script que automatiza o treinamento do SpamAssassin
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
De volta para o futuro - ou melhor, para o presente (14)
A area de trabalho ficou preta (0)
Como mudsr a resolução da tela de login no KDE? (3)