运维自动化系统(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
功能预览
欢迎关注运维自研堂订阅号,运维自研堂是一个技术分享平台,主要是运维自动化开发:linux、python、django、saltstack、tornado、bootstrap、redis、golang、docker、etcd等经验分享。
牛人并不可怕,可怕的是牛人比我们还努力!
以上是关于运维自动化系统(SaltStack)的主要内容,如果未能解决你的问题,请参考以下文章