运维自动化系统(SaltStack)

Posted DevOps

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维自动化系统(SaltStack)相关的知识,希望对你有一定的参考价值。


  • 开发环境

saltstack django1.7 、python2.7、 tornado、rabbitmq、redis、zabbix

  • 实现功能

 装机,服务器授权,资产管理,添加监控,初始化基础服务,执行命令,自动化发布,故障统计管理

使用redis是使用其订阅key的功能,达到websocket时时回显内容,rabbitmq主要是在添加用户时为了何证数据不丢失,使用rabbitmq功能,django主要写代码逻缉,tornado一方面做发布异常接口,另一方面做websocket server使用,具体实现过程就不多讲了,主要就是调用saltstack api来完成对系统的控制,和基础环境的初始化


  • 部署安装

$ git clone  https://github.com/voilet/cmdb
$ mv cmdb /data
$ cd  /data/cmdb
$ pip install -r requirements.txt --index https://pypi.mirrors.ustc.edu.cn/simple/ 

可能有些没有安装数据库组建的需要

$ pip install mysql-python

建立mysql 数据库并且授权账号登录

mysql> create database cmdb_v2 default charset=utf8;

导入数据库表文件

mysql> source cmdb/doc/cmdb.sql;

插入数据

mysql> INSERT INTO `users_department_mode` VALUES (1,'运维部','',1001);
mysql>insert into `users_customuser` (`id`, `password`, `last_login`, `is_superuser`, `email`, `username`, `first_name`, `last_name`, `department_id`, `mobile`, `session_key`, `user_key`, `menu_status`, `user_active`, `uuid`, `is_staff`, `is_active`, `date_joined`) values('1','pbkdf2_sha256$15000$uM1f5HMxHOqE$zPzKtNJMheQe62Q592V5l0m60nq/5Vj4rgzlVf5nXYs=','2016-08-04 14:12:56','1','voilet@qq.com','admin','','',NULL,'','ff3a3s4vj7ivjl7km1teqhxrizwbdrek',NULL,'1','0','3eceb1e9-df90-38ed-9960-03183bc85cce','0','1','2015-12-29 14:05:50');

修改配置文件mysite/settings.py

EMAIL_HOST = 'mail.qq.com'

EMAIL_PORT = '25'

EMAIL_HOST_USER = 'devops'

EMAIL_HOST_PASSWORD = '123456'

EMAIL_USE_TLS = False

EMAIL_PUSH = True

# 发送邮件帐号

SendMail = "ops@xxx.com"

REDIS_HOST = "127.0.0.1"

REDIS_PORT = 6379

REDIS_DB = 0


# salt api info

salt_cdn_url = 'https://192.168.111.142/'

salt_center_url = 'https://192.168.111.101/'

salt_user = 'salt'

salt_passwd = '992a15aecbcf5727df775c45a35738cf'


# zabbix api info

zabbix_on = False

zabbix_url = 'http://192.168.111.47:8080/zabbix'

zabbix_user = 'admin'

zabbix_passwd = 'zabbix'

修改配置文件 mysite/prod.py

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',  

        'NAME': 'cmdb_v2',  

         'USER': 'root',

         'PASSWORD': '123456',  

        'HOST': '127.0.0.1',       

        'PORT': '3306',

        "OPTIONS": {

            "init_command": "SET foreign_key_checks = 0;",

        },

    }


修改启动配置文件uwsgi

DESC="uwsgi daemon"

NAME=uwsgi

DAEMON=/usr/bin/uwsgi

CONFIGFILE=/data/cmdb/mysite_uwsgi.ini  

PIDFILE=/data/cmdb/mysite.pid

SCRIPTNAME=/etc/init.d/$NAME

修改站点配置文件mysite_uwsgi.ini

chdir = /data/cmdb

然后拷贝程序到/etc/init.d/

$ cp uwsgi /etc/init.d/uwsgi

server {

        listen 80;

        server_name cmdb.com;

        proxy_buffer_size 64k;

        proxy_buffers   32 32k;

        proxy_busy_buffers_size 128k;


        location /static {

            alias /data/cmdb/static;

        }

        location /static/admin {

        alias /usr/local/python2.7/lib/python2.7/site-packages/django/contrib/admin/static/admin;

        }

        location  /static/ueditor {

        expires 30d;

        alias /data/cmdb/DjangoUeditor/static/ueditor;

        }

        location / {

                include uwsgi_params;

                uwsgi_pass 127.0.0.1:8100;

        }


}

启动

$ service nginx reload
$ /etc/init.d/uwsgi start

打开网页访问

默认账号密码admin: Admin_147258


  • 功能预览

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)

运维自动化系统(SaltStack)



欢迎关注运维自研堂订阅号,运维自研堂是一个技术分享平台,主要是运维自动化开发:linux、python、django、saltstack、tornado、bootstrap、redis、golang、docker、etcd等经验分享。





牛人并不可怕,可怕的是牛人比我们还努力!




以上是关于运维自动化系统(SaltStack)的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维工具saltstack

自动化运维Saltstack系列之配置管理系统模块

运维自动化平台

自动化运维工具saltstack

saltstack

自动化运维之saltstack