Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
DIARIO_MANAGER
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Container Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
DIARIO_MANAGER
Commits
f10d1dbd
Commit
f10d1dbd
authored
Jan 26, 2018
by
Philippe Valfok
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adicionando documentação
parent
09d02b6d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
49 additions
and
6 deletions
+49
-6
scripts/add_domain.py
scripts/add_domain.py
+32
-0
scripts/run_add_domain.py
scripts/run_add_domain.py
+15
-4
src/backend/core/tasks.py
src/backend/core/tasks.py
+2
-2
No files found.
scripts/add_domain.py
View file @
f10d1dbd
...
...
@@ -12,6 +12,7 @@ from fabric.operations import put, get
from
datetime
import
datetime
# Estrutura do arquivo .db que será usada como base
PONTO_DB
=
"""$TTL 14400
__domain_name__.pege.com.br. 86400 IN SOA ns1.infatec.net.br. abuse.infatec.net.br. (
__date__01 ;Serial Number
...
...
@@ -35,6 +36,7 @@ whm 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\n
zone "__domain_name__.pege.com.br" {
\n\t
type '
+
\
'master;
\n\t
file "/var/named/__file_db_name__";
\n
};
\n\n
};'
...
...
@@ -45,6 +47,7 @@ logging.getLogger(
logging
.
StreamHandler
()
)
# Definindo dados do Servidor DNS
env
.
hosts
=
[
'209.126.103.85:38652'
]
...
...
@@ -52,6 +55,17 @@ env.user = 'root'
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'
)
named_file
=
open
(
local_named_path
,
'r'
)
...
...
@@ -79,6 +93,15 @@ def altera_named(domain_name, 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_db
=
open
(
file_path
,
'w'
)
...
...
@@ -94,6 +117,15 @@ def cria_arquivo_db(file_db_name):
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"
path_db
=
'/var/named/'
file_db_name
=
"
%
s.pege.com.br.db"
%
domain_name
...
...
scripts/run_add_domain.py
View file @
f10d1dbd
...
...
@@ -5,8 +5,8 @@ import os
import
sys
import
logging
from
fabric.api
import
env
,
run
from
fabric.tasks
import
execute
from
fabric.api
import
env
,
run
logging
.
getLogger
(
...
...
@@ -15,6 +15,7 @@ logging.getLogger(
logging
.
StreamHandler
()
)
# Definindo dados do MANAGER para acesso remoto.
env
.
hosts
=
[
os
.
environ
.
get
(
'MANAGER_HOST'
)
]
...
...
@@ -23,18 +24,28 @@ env.password = os.environ.get('MANAGER_HOST_PASSWORD')
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"
result
=
run
(
"chmod +x
%
s &&
%
s
%
s
%
s"
%
(
script_path
,
script_path
,
domain_name
,
droplet_ip
))
if
result
.
failed
:
print
"Erro ao executar script de criação de domínio. (
%
s)"
%
result
.
command
print
"Criação de domínio executada com sucesso."
raise
Exception
(
"Erro ao executar script de criação de domínio. (
%
s)"
%
result
.
command
)
if
__name__
==
'__main__'
:
try
:
domain_name
=
sys
.
argv
[
1
]
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
:
msg
=
"Erro ao executar comando! (
%
s)"
%
err
print
msg
src/backend/core/tasks.py
View file @
f10d1dbd
...
...
@@ -86,7 +86,7 @@ def criar_banco(cliente):
con
.
set_isolation_level
(
ISOLATION_LEVEL_AUTOCOMMIT
)
cur
=
con
.
cursor
()
cur
.
execute
(
f
"CREATE DATABASE {cliente.domain_name} ;"
)
cur
.
execute
(
"CREATE DATABASE {} ;"
.
format
(
cliente
.
domain_name
)
)
except
Exception
as
err
:
msg
=
"Erro ao criar banco de dados. ({})"
.
format
(
err
)
cliente
.
set_status
(
msg
)
...
...
@@ -103,7 +103,7 @@ def configuracao_cliente_pipeline(cliente):
:raises: Exception
"""
try
:
criar_droplet
(
cliente
)
criar_banco
(
cliente
)
criar_droplet
(
cliente
)
except
Exception
as
err
:
cliente
.
set_status
(
err
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment