Commit f10d1dbd authored by Philippe Valfok's avatar Philippe Valfok

Adicionando documentação

parent 09d02b6d
...@@ -12,6 +12,7 @@ from fabric.operations import put, get ...@@ -12,6 +12,7 @@ from fabric.operations import put, get
from datetime import datetime from datetime import datetime
# Estrutura do arquivo .db que será usada como base
PONTO_DB = """$TTL 14400 PONTO_DB = """$TTL 14400
__domain_name__.pege.com.br. 86400 IN SOA ns1.infatec.net.br. abuse.infatec.net.br. ( __domain_name__.pege.com.br. 86400 IN SOA ns1.infatec.net.br. abuse.infatec.net.br. (
__date__01 ;Serial Number __date__01 ;Serial Number
...@@ -35,6 +36,7 @@ whm 14400 IN A 209.126.103.85 ...@@ -35,6 +36,7 @@ whm 14400 IN A 209.126.103.85
webmail 14400 IN A 209.126.103.85 webmail 14400 IN A 209.126.103.85
""" """
# Estrutura da zona que será adicionada ao named.conf
ZONE = '};\n\n\nzone "__domain_name__.pege.com.br" {\n\ttype ' +\ ZONE = '};\n\n\nzone "__domain_name__.pege.com.br" {\n\ttype ' +\
'master;\n\tfile "/var/named/__file_db_name__";\n};\n\n};' 'master;\n\tfile "/var/named/__file_db_name__";\n};\n\n};'
...@@ -45,6 +47,7 @@ logging.getLogger( ...@@ -45,6 +47,7 @@ logging.getLogger(
logging.StreamHandler() logging.StreamHandler()
) )
# Definindo dados do Servidor DNS
env.hosts = [ env.hosts = [
'209.126.103.85:38652' '209.126.103.85:38652'
] ]
...@@ -52,6 +55,17 @@ env.user = 'root' ...@@ -52,6 +55,17 @@ env.user = 'root'
def altera_named(domain_name, file_db_name): def altera_named(domain_name, file_db_name):
"""
Função para atualizar o arquivo 'named.conf' com o novo subdomínio
Que será adicionado em /etc/named.conf
:param domain_name: Nome do subdomínio
:type domain_name: str
:param file_db_name: Nome do arquivo db
:type file_db_name: str
:returns local_named_path: Localização/Path local do arquivo
:rtype: str
"""
local_named_path = os.path.join(os.getcwd(), 'named.conf') local_named_path = os.path.join(os.getcwd(), 'named.conf')
named_file = open(local_named_path, 'r') named_file = open(local_named_path, 'r')
...@@ -79,6 +93,15 @@ def altera_named(domain_name, file_db_name): ...@@ -79,6 +93,15 @@ def altera_named(domain_name, file_db_name):
def cria_arquivo_db(file_db_name): def cria_arquivo_db(file_db_name):
"""
Função para criar o arquivo 'subdominio.dominio.com.br.db'
Que será adicionado em /var/named/
:param file_db_name: Nome do arquivo db
:type file_db_name: str
:returns file_path: Localização/Path local do arquivo
:rtype: str
"""
file_path = os.path.join(os.getcwd(), file_db_name) file_path = os.path.join(os.getcwd(), file_db_name)
file_db = open(file_path, 'w') file_db = open(file_path, 'w')
...@@ -94,6 +117,15 @@ def cria_arquivo_db(file_db_name): ...@@ -94,6 +117,15 @@ def cria_arquivo_db(file_db_name):
def exec_add_domain(domain_name, droplet_ip): def exec_add_domain(domain_name, droplet_ip):
"""
Função para adicionar subdomínios ao domínio "pege.com.br".
:param domain_name: Nome do subdomínio
:type domain_name: str
:param droplet_ip: O subdomínio apontará para este IP
:type droplet_ip: str
:returns:
"""
server_named_path = "/etc/named.conf" server_named_path = "/etc/named.conf"
path_db = '/var/named/' path_db = '/var/named/'
file_db_name = "%s.pege.com.br.db" % domain_name file_db_name = "%s.pege.com.br.db" % domain_name
......
...@@ -5,8 +5,8 @@ import os ...@@ -5,8 +5,8 @@ import os
import sys import sys
import logging import logging
from fabric.api import env, run
from fabric.tasks import execute from fabric.tasks import execute
from fabric.api import env, run
logging.getLogger( logging.getLogger(
...@@ -15,6 +15,7 @@ logging.getLogger( ...@@ -15,6 +15,7 @@ logging.getLogger(
logging.StreamHandler() logging.StreamHandler()
) )
# Definindo dados do MANAGER para acesso remoto.
env.hosts = [ env.hosts = [
os.environ.get('MANAGER_HOST') os.environ.get('MANAGER_HOST')
] ]
...@@ -23,18 +24,28 @@ env.password = os.environ.get('MANAGER_HOST_PASSWORD') ...@@ -23,18 +24,28 @@ env.password = os.environ.get('MANAGER_HOST_PASSWORD')
def exec_add_domain(domain_name, droplet_ip): def exec_add_domain(domain_name, droplet_ip):
"""
Função para acessar o servidor MANAGER e iniciar o script que adicionará
o novo subdomínio ao servidor DNS.
:param domain_name: Nome do subdomínio
:type domain_name: str
:param droplet_ip: O subdomínio apontará para este IP
:type droplet_ip: str
:returns:
"""
script_path = "django_apps/DIARIO_MANAGER/scripts/add_domain.py" script_path = "django_apps/DIARIO_MANAGER/scripts/add_domain.py"
result = run("chmod +x %s && %s %s %s" % (script_path, script_path, domain_name, droplet_ip)) result = run("chmod +x %s && %s %s %s" % (script_path, script_path, domain_name, droplet_ip))
if result.failed: if result.failed:
print "Erro ao executar script de criação de domínio. (%s)" % result.command raise Exception("Erro ao executar script de criação de domínio. (%s)" % result.command)
print "Criação de domínio executada com sucesso."
if __name__ == '__main__': if __name__ == '__main__':
try: try:
domain_name = sys.argv[1] domain_name = sys.argv[1]
droplet_ip = sys.argv[2] droplet_ip = sys.argv[2]
return execute(exec_add_domain, domain_name, droplet_ip) execute(exec_add_domain, domain_name, droplet_ip)
print "Criação de domínio executada com sucesso."
except Exception as err: except Exception as err:
msg = "Erro ao executar comando! (%s)" % err msg = "Erro ao executar comando! (%s)" % err
print msg print msg
...@@ -86,7 +86,7 @@ def criar_banco(cliente): ...@@ -86,7 +86,7 @@ def criar_banco(cliente):
con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) con.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = con.cursor() cur = con.cursor()
cur.execute(f"CREATE DATABASE {cliente.domain_name} ;") cur.execute("CREATE DATABASE {} ;".format(cliente.domain_name))
except Exception as err: except Exception as err:
msg = "Erro ao criar banco de dados. ({})".format(err) msg = "Erro ao criar banco de dados. ({})".format(err)
cliente.set_status(msg) cliente.set_status(msg)
...@@ -103,7 +103,7 @@ def configuracao_cliente_pipeline(cliente): ...@@ -103,7 +103,7 @@ def configuracao_cliente_pipeline(cliente):
:raises: Exception :raises: Exception
""" """
try: try:
criar_droplet(cliente)
criar_banco(cliente) criar_banco(cliente)
criar_droplet(cliente)
except Exception as err: except Exception as err:
cliente.set_status(err) cliente.set_status(err)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment