Commit 703a7f8f authored by Philippe Valfok's avatar Philippe Valfok

Adicionando Pipfiles, iniciando task para criação automática de domínios

parent 7ac9d6ff
...@@ -10,7 +10,11 @@ RUN set -ex && mkdir /src ...@@ -10,7 +10,11 @@ RUN set -ex && mkdir /src
# -- Adding Compose Folder # -- Adding Compose Folder
ADD /compose/*.sh / ADD /compose/*.sh /
RUN chmod +x /*.sh RUN set -ex && chmod +x /*.sh
# -- Make Scripts Executables
ADD /scripts/*.py /
RUN set -ex && chmod +x /*.py
WORKDIR /src WORKDIR /src
...@@ -20,3 +24,13 @@ ADD Pipfile.lock / ...@@ -20,3 +24,13 @@ ADD Pipfile.lock /
# -- Install dependencies: # -- Install dependencies:
RUN set -ex && pipenv install --deploy --system RUN set -ex && pipenv install --deploy --system
# -- Install Python2 to run Fabric Tasks
RUN set -ex && apt-get update
RUN set -ex && apt-get install -y python-pip
RUN set -ex && apt-get install -y python-dev
RUN set -ex && pip2 install setuptools --upgrade
RUN set -ex && pip2 install cryptography --upgrade
RUN set -ex && pip2 install fabric --upgrade
RUN set -ex && pip2 install enum --upgrade
RUN set -ex && pip2 install ipaddress --upgrade
\ No newline at end of file
...@@ -22,6 +22,7 @@ python-decouple = "*" ...@@ -22,6 +22,7 @@ python-decouple = "*"
unipath = "*" unipath = "*"
python-digitalocean = "*" python-digitalocean = "*"
gunicorn = "*" gunicorn = "*"
"python2" = "*"
[requires] [requires]
......
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "3cf09d52c00bece1036b2af1412bb627954f172bb539df46b3e46eca2d615507" "sha256": "8591da5304523e6f55ccd7381bf591176b281c80b9e5b20e2d45d3a8bffbf354"
}, },
"host-environment-markers": { "host-environment-markers": {
"implementation_name": "cpython", "implementation_name": "cpython",
...@@ -146,6 +146,12 @@ ...@@ -146,6 +146,12 @@
], ],
"version": "==1.13.2" "version": "==1.13.2"
}, },
"python2": {
"hashes": [
"sha256:9219352345a5cfcdf2e104c469bcbfe5b959b8e15f194988809b984a3fcdda55"
],
"version": "==1.2"
},
"pytz": { "pytz": {
"hashes": [ "hashes": [
"sha256:80af0f3008046b9975242012a985f04c5df1f01eed4ec1633d56cc47a75a6a48", "sha256:80af0f3008046b9975242012a985f04c5df1f01eed4ec1633d56cc47a75a6a48",
...@@ -296,11 +302,11 @@ ...@@ -296,11 +302,11 @@
}, },
"typing": { "typing": {
"hashes": [ "hashes": [
"sha256:349b1f9c109c84b53ac79ac1d822eaa68fc91d63b321bd9392df15098f746f53", "sha256:b2c689d54e1144bbcfd191b0832980a21c2dbcf7b5ff7a66248a60c90e951eb8",
"sha256:63a8255fe7c6269916baa440eb9b6a67139b0b97a01af632e7bd2842e1e02f15", "sha256:3a887b021a77b292e151afb75323dea88a7bc1b3dfa92176cff8e44c8b68bddf",
"sha256:d514bd84b284dd3e844f0305ac07511f097e325171f6cc4a20878d11ad771849" "sha256:d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2"
], ],
"version": "==3.6.2" "version": "==3.6.4"
}, },
"urllib3": { "urllib3": {
"hashes": [ "hashes": [
......
...@@ -29,6 +29,9 @@ services: ...@@ -29,6 +29,9 @@ services:
DEBUG: "False" DEBUG: "False"
DATABASE_URL: "postgres://postgres:infatecbdadmin@165.227.205.36/diario_manager" DATABASE_URL: "postgres://postgres:infatecbdadmin@165.227.205.36/diario_manager"
SECRET_KEY: "=b+8s@l*rnqjd*=1rrsp!op82-qcgubm6oysex+thbu1+myen-" SECRET_KEY: "=b+8s@l*rnqjd*=1rrsp!op82-qcgubm6oysex+thbu1+myen-"
MANAGER_HOST: "165.227.205.48"
MANAGER_HOST_USER: "infatec"
MANAGER_HOST_PASSWORD: "adminfatec"
restart: always restart: always
links: links:
- redis - redis
......
...@@ -3,10 +3,128 @@ ...@@ -3,10 +3,128 @@
{ {
"selected_items": "selected_items":
[ [
[
"data",
"database_url\tstatement"
],
[
"url",
"urlparse\tfunction"
],
[
"cr",
"criar_droplet\tfunction"
],
[
"se",
"set_status"
],
[
"drop",
"droplet_status\tstatement"
],
[
"crea",
"create_droplet_pipeline\tmodule"
],
[
"djan",
"django_rq\tmodule"
],
[
"TIME",
"TIME_ZONE\tstatement"
],
[
"chave",
"chave_ssh"
],
[
"verbo",
"verbose_name_plural"
],
[
"str",
"__str__"
],
[
"def",
"default"
]
] ]
}, },
"buffers": "buffers":
[ [
{
"file": "docker-compose.yml",
"settings":
{
"buffer_size": 1145,
"encoding": "UTF-8",
"line_ending": "Unix"
}
},
{
"file": "Dockerfile",
"settings":
{
"buffer_size": 784,
"encoding": "UTF-8",
"line_ending": "Unix"
}
},
{
"file": ".dockerignore",
"settings":
{
"buffer_size": 5,
"encoding": "UTF-8",
"line_ending": "Unix"
}
},
{
"file": "src/settings/base.py",
"settings":
{
"buffer_size": 2093,
"encoding": "UTF-8",
"line_ending": "Unix"
}
},
{
"file": "Pipfile",
"settings":
{
"buffer_size": 369,
"line_ending": "Unix"
}
},
{
"file": "Pipfile.lock",
"settings":
{
"buffer_size": 15588,
"line_ending": "Unix"
}
},
{
"file": "src/backend/core/models/cliente.py",
"settings":
{
"buffer_size": 1823,
"encoding": "UTF-8",
"line_ending": "Unix"
}
},
{
"file": "/home/infatec/do_ssh.py",
"settings":
{
"buffer_size": 253,
"encoding": "UTF-8",
"line_ending": "Unix"
}
}
], ],
"build_system": "", "build_system": "",
"build_system_choices": "build_system_choices":
...@@ -16,13 +134,49 @@ ...@@ -16,13 +134,49 @@
"command_palette": "command_palette":
{ {
"height": 392.0, "height": 392.0,
"last_filter": "tm", "last_filter": "refre",
"selected_items": "selected_items":
[ [
[
"refre",
"Project: Refresh Folders"
],
[
"vtsb",
"View: Toggle Side Bar"
],
[
"toggle mnu",
"View: Toggle Menu"
],
[
"ssym",
"Set Syntax: YAML"
],
[
"ssdjan",
"Set Syntax: Python (Django)"
],
[ [
"tm", "tm",
"HTML: Encode Special Characters"
],
[
"tside",
"View: Toggle Side Bar"
],
[
"lower",
"Convert Case: Lower Case"
],
[
"tme",
"View: Toggle Menu" "View: Toggle Menu"
], ],
[
"pep8",
"Anaconda: Autoformat PEP8 Errors"
],
[ [
"tsb", "tsb",
"View: Toggle Status Bar" "View: Toggle Status Bar"
...@@ -77,16 +231,52 @@ ...@@ -77,16 +231,52 @@
}, },
"expanded_folders": "expanded_folders":
[ [
"/home/infatec/infatec_mega/diario_manager" "/home/infatec/infatec_mega/diario_manager",
"/home/infatec/infatec_mega/diario_manager/compose",
"/home/infatec/infatec_mega/diario_manager/config",
"/home/infatec/infatec_mega/diario_manager/scripts",
"/home/infatec/infatec_mega/diario_manager/src",
"/home/infatec/infatec_mega/diario_manager/src/backend",
"/home/infatec/infatec_mega/diario_manager/src/settings"
], ],
"file_history": "file_history":
[ [
"/home/infatec/infatec_mega/diario_manager/src/backend/scripts/__init__.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/scripts/add_domain.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/scripts/run_add_domain.py",
"/home/infatec/infatec_mega/diario_manager/compose/run_django.sh",
"/home/infatec/infatec_mega/diario_manager/compose/run_django_rq.sh",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/models/configuracao.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/admin.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/urls.py",
"/home/infatec/infatec_mega/diario_manager/src/settings/base.py",
"/home/infatec/infatec_mega/diario_manager/src/manage.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/models/cliente.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/tasks.py",
"/home/infatec/infatec_mega/diario_manager/src/settings.ini",
"/home/infatec/infatec_mega/diario_manager/src/settings/__init__.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/__init__.py",
"/home/infatec/infatec_mega/diario_manager/docker-compose.yml",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/models/__init__.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/signals.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/celery.py",
"/home/infatec/infatec_mega/diario_manager/src/settings/celery.py",
"/home/infatec/infatec_mega/diario_manager/.gitignore",
"/home/infatec/infatec_mega/diario_manager/src/config.env",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/models/chave_ssh.py",
"/home/infatec/infatec_mega/diario_manager/src/backend/core/models.py",
"/home/infatec/infatec_mega/diario_manager/config/requirements/production.pip",
"/home/infatec/deploy_manager.groovy",
"/home/infatec/deploy_manager2.groovy",
"/home/infatec/rastreia.py",
"/home/infatec/.config/sublime-text-3/Packages/User/Anaconda.sublime-settings",
"/home/infatec/.config/sublime-text-3/Packages/Anaconda/Anaconda.sublime-settings",
"/home/infatec/.config/sublime-text-3/Packages/User/Plain text.sublime-settings", "/home/infatec/.config/sublime-text-3/Packages/User/Plain text.sublime-settings",
"/home/infatec/.zshrc" "/home/infatec/.zshrc"
], ],
"find": "find":
{ {
"height": 0.0 "height": 21.0
}, },
"find_in_files": "find_in_files":
{ {
...@@ -100,6 +290,11 @@ ...@@ -100,6 +290,11 @@
"case_sensitive": false, "case_sensitive": false,
"find_history": "find_history":
[ [
"RUN set -ex && ",
" networks:\n - app-tier",
"SiteConfiguration",
"line",
"pep8"
], ],
"highlight": true, "highlight": true,
"in_selection": false, "in_selection": false,
...@@ -117,18 +312,289 @@ ...@@ -117,18 +312,289 @@
"groups": "groups":
[ [
{ {
"selected": 7,
"sheets": "sheets":
[ [
{
"buffer": 0,
"file": "docker-compose.yml",
"semi_transient": false,
"settings":
{
"buffer_size": 1145,
"regions":
{
},
"selection":
[
[
856,
856
]
],
"settings":
{
"history_list_is_closing": true,
"syntax": "Packages/YAML/YAML.sublime-syntax",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 2,
"type": "text"
},
{
"buffer": 1,
"file": "Dockerfile",
"semi_transient": false,
"settings":
{
"buffer_size": 784,
"regions":
{
},
"selection":
[
[
298,
298
]
],
"settings":
{
"syntax": "Packages/Text/Plain text.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 1,
"type": "text"
},
{
"buffer": 2,
"file": ".dockerignore",
"semi_transient": false,
"settings":
{
"buffer_size": 5,
"regions":
{
},
"selection":
[
[
5,
5
]
],
"settings":
{
"syntax": "Packages/Text/Plain text.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 6,
"type": "text"
},
{
"buffer": 3,
"file": "src/settings/base.py",
"semi_transient": false,
"settings":
{
"buffer_size": 2093,
"regions":
{
},
"selection":
[
[
1502,
1502
]
],
"settings":
{
"auto_complete_triggers":
[
{
"characters": ".",
"selector": "source.python - string - comment - constant.numeric"
},
{
"characters": ".",
"selector": "source.python - string - constant.numeric"
}
],
"syntax": "Packages/Djaneiro/Syntaxes/Python Django.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 7,
"type": "text"
},
{
"buffer": 4,
"file": "Pipfile",
"semi_transient": false,
"settings":
{
"buffer_size": 369,
"regions":
{
},
"selection":
[
[
353,
353
]
],
"settings":
{
"syntax": "Packages/Text/Plain text.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 5,
"type": "text"
},
{
"buffer": 5,
"file": "Pipfile.lock",
"semi_transient": false,
"settings":
{
"buffer_size": 15588,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"syntax": "Packages/Text/Plain text.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 1782.0,
"zoom_level": 1.0
},
"stack_index": 4,
"type": "text"
},
{
"buffer": 6,
"file": "src/backend/core/models/cliente.py",
"semi_transient": false,
"settings":
{
"buffer_size": 1823,
"regions":
{
},
"selection":
[
[
1600,
1604
]
],
"settings":
{
"auto_complete_triggers":
[
{
"characters": ".",
"selector": "source.python - string - comment - constant.numeric"
},
{
"characters": ".",
"selector": "source.python - string - constant.numeric"
},
{
"characters": ".",
"selector": "source.python - string - constant.numeric"
}
],
"syntax": "Packages/Djaneiro/Syntaxes/Python Django.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 3,
"type": "text"
},
{
"buffer": 7,
"file": "/home/infatec/do_ssh.py",
"semi_transient": false,
"settings":
{
"buffer_size": 253,
"regions":
{
},
"selection":
[
[
253,
253
]
],
"settings":
{
"auto_complete_triggers":
[
{
"characters": ".",
"selector": "source.python - string - comment - constant.numeric"
},
{
"characters": ".",
"selector": "source.python - string - constant.numeric"
}
],
"syntax": "Packages/Djaneiro/Syntaxes/Python Django.tmLanguage"
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 0,
"type": "text"
}
] ]
} }
], ],
"incremental_find": "incremental_find":
{ {
"height": 0.0 "height": 21.0
}, },
"input": "input":
{ {
"height": 0.0 "height": 50.0
}, },
"layout": "layout":
{ {
...@@ -152,7 +618,7 @@ ...@@ -152,7 +618,7 @@
1.0 1.0
] ]
}, },
"menu_visible": true, "menu_visible": false,
"output.find_results": "output.find_results":
{ {
"height": 0.0 "height": 0.0
...@@ -161,7 +627,7 @@ ...@@ -161,7 +627,7 @@
"project": "manager.sublime-project", "project": "manager.sublime-project",
"replace": "replace":
{ {
"height": 0.0 "height": 38.0
}, },
"save_all_on_build": true, "save_all_on_build": true,
"select_file": "select_file":
...@@ -170,6 +636,26 @@ ...@@ -170,6 +636,26 @@
"last_filter": "", "last_filter": "",
"selected_items": "selected_items":
[ [
[
"docker",
"docker-compose.yml"
],
[
"modelsinit",
"src/backend/core/models/__init__.py"
],
[
"clie",
"src/backend/core/models/cliente.py"
],
[
"confi",
"src/backend/core/models/configuracao.py"
],
[
"tas",
"src/backend/core/tasks.py"
]
], ],
"width": 0.0 "width": 0.0
}, },
...@@ -195,12 +681,12 @@ ...@@ -195,12 +681,12 @@
"settings": "settings":
{ {
}, },
"show_minimap": true, "show_minimap": false,
"show_open_files": false, "show_open_files": false,
"show_tabs": true, "show_tabs": true,
"side_bar_visible": true, "side_bar_visible": true,
"side_bar_width": 238.0, "side_bar_width": 292.0,
"status_bar_visible": false, "status_bar_visible": true,
"template_settings": "template_settings":
{ {
} }
......
#!/usr/bin/python2
print "olha eu aqui!"
\ No newline at end of file
#!/usr/bin/python2
# -*- coding: utf-8 -*-
import os
import sys
import logging
from fabric.api import env, run, settings, show, hide
from fabric.tasks import execute
logging.getLogger(
'paramiko.transport'
).addHandler(
logging.StreamHandler()
)
env.hosts = [
os.environ.get('MANAGER_HOST')
]
env.user = os.environ.get('MANAGER_HOST_USER')
env.password = os.environ.get('MANAGER_HOST_PASSWORD')
def exec_add_domain(domain_name):
script_path = "django_apps/DIARIO_MANAGER/scripts/add_domain.py"
with settings(hide('everything'), show('running')):
result = run("chmod +x %s && %s %s" % (script_path, script_path, domain_name))
if result.failed:
return "Erro ao executar script de criação de domínio. (%s)" % result.command
return "Erro ao executar script de criação de domínio"
if __name__ == '__main__':
try:
domain_name = sys.argv[1]
execute(exec_add_domain, domain_name)
except Exception as err:
msg = "Erro ao executar comando! (%s)" % err
print msg
# Generated by Django 2.0.1 on 2018-01-25 11:50
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0009_auto_20180124_1052'),
]
operations = [
migrations.AddField(
model_name='configuracao',
name='chave_ssh',
field=models.TextField(blank=True),
),
]
# Generated by Django 2.0.1 on 2018-01-25 14:03
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('core', '0010_configuracao_chave_ssh'),
]
operations = [
migrations.RemoveField(
model_name='configuracao',
name='chave_ssh',
),
]
...@@ -10,8 +10,6 @@ class Configuracao(SingletonModel): ...@@ -10,8 +10,6 @@ class Configuracao(SingletonModel):
"""Model definition for COnfigurations""" """Model definition for COnfigurations"""
token = models.CharField(max_length=255) token = models.CharField(max_length=255)
chave_ssh = models.TextField(blank=True)
droplets_region = models.CharField(_('Região dos Droplets'), max_length=50, default="nyc1") droplets_region = models.CharField(_('Região dos Droplets'), max_length=50, default="nyc1")
droplets_image = models.CharField(_('Imagem/SO dos Droplets'), max_length=50, default="ubuntu-16-04-x64") droplets_image = models.CharField(_('Imagem/SO dos Droplets'), max_length=50, default="ubuntu-16-04-x64")
droplets_size = models.CharField(_('Tamanho dos Droplets'), max_length=50, default="s-1vcpu-1gb") droplets_size = models.CharField(_('Tamanho dos Droplets'), max_length=50, default="s-1vcpu-1gb")
......
...@@ -59,14 +59,6 @@ ROOT_URLCONF = 'backend.urls' ...@@ -59,14 +59,6 @@ ROOT_URLCONF = 'backend.urls'
SITE_ID = 1 SITE_ID = 1
WSGI_APPLICATION = 'backend.wsgi.application' WSGI_APPLICATION = 'backend.wsgi.application'
# RQ_QUEUES = {
# 'default': {
# 'HOST': 'localhost',
# 'PORT': 6379,
# 'DB': 0
# }
# }
# RQ (Redis Queue) # RQ (Redis Queue)
# http://python-rq.org/ # http://python-rq.org/
......
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