Coder Social home page Coder Social logo

simpletourdevops's Introduction

SimpletourDevops

django+python+celery+saltstack+docker实现的运维管理后台

作者QQ:923401910

v1.0:完成资产信息录入及使用saltstack自动采集更新     完成单机版docker主机的基本管理,日志实时刷新 ##部署步骤

  • 安装环境
pip install requirements.txt
  • 安装nginx

       yum install nginx -y
    
  • 安装saltstack

       yum install salt-master -y
       yum install salt-minion -y
    
  • 配置docker

       [root@localhost ~]# vim /etc/sysconfig/docker
    
       # /etc/sysconfig/docker
    
       # Modify these options if you want to change the way the docker daemon runs
       OPTIONS='--selinux-enabled -H 0.0.0.0:2375 -H unix:///var/run/docker.sock '
       DOCKER_CERT_PATH=/etc/docker
    
  • 部署流程 以下为部署流程 修改 settings.py中db连接

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql',
       'NAME': 'SimpletourDevops',
       'HOST': '192.168.2.232',
       'USER': 'root',
       'PORT': 3306,
       'PASSWORD': 'redhat',
       'OPTIONS': {
           'init_command': 'SET storage_engine=INNODB',
       },
   }
}

部署程序到/data

  [root@localhost ~]# mv /root/SimpletourDevops /data/
  [root@localhost ~]# cd /data/SimpletourDevops
  [root@localhost SimpletourDevops]#python manage.py  makemigrations
  [root@localhost SimpletourDevops]#python manage.py  migrate

复制supervisor配置

  [root@localhost SimpletourDevops]# cp supervisord.conf  /etc/
  [root@localhost supervisord.d]# supervisord -c /etc/supervisord.conf     <--启动supervisor,如果启动用户非www,请自行修改

修改配置文件

  在settings.py中添加STATIC_ROOT
  STATIC_ROOT = '/data/SimpletourDevops/static/suit'

python manage.py collectstatic  <--生成静态文件

配置nginx

 server {
     listen       80;
     server_name  localhost;
     access_log  /var/log/nginx/devops.simpletour.com.access.log  main;
     error_log  /var/log/nginx/devops.simpletour.com.error.log error;

     location / {
             include  uwsgi_params;
             uwsgi_pass  127.0.0.1:8098;
             uwsgi_read_timeout 600;
             uwsgi_connect_timeout 60;
             uwsgi_send_timeout 600;
             client_max_body_size 35m;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             uwsgi_ignore_client_abort on;
         }
         location ^~ /docker/getSocket{
             proxy_pass http://127.0.0.1:8099;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             proxy_set_header Host $host;
             uwsgi_ignore_client_abort on;
         }

         location /static {
             alias /data/SimpletourDevops/static/suit;
         }

 }
 
 

启动访问

首页及docker

      image image image image image image image

saltstack

image

image

image

image

后台

image

simpletourdevops's People

Contributors

roddyofchina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simpletourdevops's Issues

无法找到suit.apps 和suit.menu

Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/lib64/python2.7/site-packages/django/core/management/init.py", line 353, in execute_from_command_line
utility.execute()
File "/usr/lib64/python2.7/site-packages/django/core/management/init.py", line 327, in execute
django.setup()
File "/usr/lib64/python2.7/site-packages/django/init.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib64/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/lib64/python2.7/site-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib64/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/data/SimpletourDevops/SimpletourDevops/apps.py", line 6, in
from suit.apps import DjangoSuitConfig
ImportError: No module named apps

你好, python manage.py makemigrations 有个报错

[root@centos-master SimpletourDevops]# python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/lib64/python2.7/site-packages/django/core/management/init.py", line 350, in execute_from_command_line
utility.execute()
File "/usr/lib64/python2.7/site-packages/django/core/management/init.py", line 324, in execute
django.setup()
File "/usr/lib64/python2.7/site-packages/django/init.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib64/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/lib64/python2.7/site-packages/django/apps/config.py", line 90, in create
module = import_module(entry)
File "/usr/lib64/python2.7/importlib/init.py", line 37, in import_module
import(name)
ImportError: No module named domainmanager

ImportError: No module named apps

(py27) [root@test SimpletourDevops]# python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/init.py", line 353, in execute_from_command_line
utility.execute()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/init.py", line 327, in execute
django.setup()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/init.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/root/anaconda3/envs/py27/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/data/wwwroot/SimpletourDevops/SimpletourDevops/apps.py", line 6, in
from suit.apps import DjangoSuitConfig
ImportError: No module named apps
以上报错,是因为django-suit==2.0a1 要与Django==1.10.6 这个版本一起用才可以。

(py27) [root@test SimpletourDevops]# pip freeze
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
amqp==2.4.0
backports.ssl-match-hostname==3.7.0.1
billiard==3.5.0.5
celery==4.2.1
certifi==2018.11.29
chardet==3.0.4
defusedxml==0.5.0
diff-match-patch==20181111
Django==1.10.6
django-import-export==0.5.1
django-suit==2.0a1
docker-py==1.10.6
docker-pycreds==0.4.0
dwebsocket==0.5.10
et-xmlfile==1.0.1
eventlet==0.19.0
greenlet==0.4.15
idna==2.8
ipaddress==1.0.22
itsdangerous==0.24
jdcal==1.4
kombu==4.2.2.post1
magiclog==1.0.2
meld3==1.0.2
MySQL-python==1.2.5
odfpy==1.4.0
openpyxl==2.5.14
pytz==2018.9
PyYAML==3.13
redis==3.1.0
requests==2.21.0
six==1.12.0
stackclimber==0.99
supervisor==3.3.5
tablib==0.12.1
unicodecsv==0.14.1
urllib3==1.24.1
uWSGI==2.0.17.1
v2==1.0.7
vine==1.2.0
websocket-client==0.54.0
xlrd==1.2.0
xlwt==1.3.0
(py27) [root@test SimpletourDevops]#

pip install -r requirements.txt

amqp==2.4.0
backports.ssl-match-hostname==3.7.0.1
billiard==3.5.0.5
celery==4.2.1
certifi==2018.11.29
chardet==3.0.4
defusedxml==0.5.0
diff-match-patch==20181111
Django==1.10.6
django-import-export==0.5.1
django-suit==2.0a1
docker-py==1.10.6
docker-pycreds==0.4.0
dwebsocket==0.5.10
et-xmlfile==1.0.1
eventlet==0.19.0
greenlet==0.4.15
idna==2.8
ipaddress==1.0.22
itsdangerous==0.24
jdcal==1.4
kombu==4.2.2.post1
magiclog==1.0.2
meld3==1.0.2
MySQL-python==1.2.5
odfpy==1.4.0
openpyxl==2.5.14
pytz==2018.9
PyYAML==3.13
redis==3.1.0
requests==2.21.0
six==1.12.0
stackclimber==0.99
supervisor==3.3.5
tablib==0.12.1
unicodecsv==0.14.1
urllib3==1.24.1
uWSGI==2.0.17.1
v2==1.0.7
vine==1.2.0
websocket-client==0.54.0
xlrd==1.2.0
xlwt==1.3.0
(py27) [root@test SimpletourDevops]# cat requirements.txt
django==1.9.9
django-import-export==0.5.1
itsdangerous==0.24
celery
https://github.com/darklow/django-suit/tarball/v2
MySQL-python
docker-py
supervisor
uwsgi
redis
dwebsocket
eventlet==0.19.0
pyyaml

你好,启动时报错ImportError: No module named apps

Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 353, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/init.py", line 327, in execute
django.setup()
File "/usr/local/lib/python2.7/dist-packages/django/init.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module
import(name)
File "/root/SimpletourDevops/SimpletourDevops/apps.py", line 6, in
from suit.apps import DjangoSuitConfig
ImportError: No module named apps

Unknown system variable 'storage_engine

(py27) [root@test SimpletourDevops]# python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 10, in
execute_from_command_line(sys.argv)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/init.py", line 367, in execute_from_command_line
utility.execute()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/init.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/base.py", line 342, in execute
self.check()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/base.py", line 374, in check
include_deployment_checks=include_deployment_checks,
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/management/base.py", line 361, in _run_checks
return checks.run_checks(**kwargs)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/core/checks/model_checks.py", line 30, in check_all_models
errors.extend(model.check(**kwargs))
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/base.py", line 1266, in check
errors.extend(cls._check_fields(**kwargs))
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/base.py", line 1337, in _check_fields
errors.extend(field.check(**kwargs))
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/fields/init.py", line 893, in check
errors = super(AutoField, self).check(**kwargs)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/fields/init.py", line 208, in check
errors.extend(self._check_backend_specific_checks(**kwargs))
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/fields/init.py", line 311, in _check_backend_specific_checks
return connections[db].validation.check_field(self, **kwargs)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/mysql/validation.py", line 41, in check_field
field_type = field.db_type(connection)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/models/fields/init.py", line 629, in db_type
return connection.data_types[self.get_internal_type()] % data
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/init.py", line 33, in getattr
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/utils/functional.py", line 35, in get
res = instance.dict[self.name] = self.func(instance)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 183, in data_types
if self.features.supports_microsecond_precision:
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/utils/functional.py", line 35, in get
res = instance.dict[self.name] = self.func(instance)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/mysql/features.py", line 54, in supports_microsecond_precision
return self.connection.mysql_version >= (5, 6, 4) and Database.version_info >= (1, 2, 5)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/utils/functional.py", line 35, in get
res = instance.dict[self.name] = self.func(instance)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 367, in mysql_version
with self.temporary_connection() as cursor:
File "/root/anaconda3/envs/py27/lib/python2.7/contextlib.py", line 17, in enter
return self.gen.next()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 564, in temporary_connection
cursor = self.cursor()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 233, in cursor
cursor = self.make_cursor(self._cursor())
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 204, in _cursor
self.ensure_connection()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/utils.py", line 94, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection
self.connect()
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/base/base.py", line 171, in connect
self.connection = self.get_new_connection(conn_params)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 263, in get_new_connection
conn = Database.connect(**conn_params)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/MySQLdb/init.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/root/anaconda3/envs/py27/lib/python2.7/site-packages/MySQLdb/connections.py", line 193, in init
super(Connection, self).init(*args, **kwargs2)
django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'")

最后把setting里的数据库改了,才可以了。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'SimpletourDevops',
'HOST': '172.16.160.200',
'USER': 'root',
'PORT': 3306,
'PASSWORD': 'Maks.123',

'OPTIONS': {

'init_command': 'SET storage_engine=INNODB',

},

}

}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.