saltshaker填坑
参考资料:
https://github.com/yueyongyue/saltshaker
http://blog.sina.com.cn/s/blog_b21312340102whzw.html
saltshaker是saltstack的可视化GUI界面。
saltshaker: GUI For SaltStack
此安装说明适用于2.0版本
saltshaker 环境搭建 Ubuntu 14.04.3 LTS
saltshaker 环境搭建 Centos6.x
1、安装pip 详细文档及使用http://www.ttlsa.com/python/how-to-install-and-use-pip-ttlsa/
下载pip
wget "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#md5=3823d2343d9f3aaab21cf9c917710196" --no-check-certificate
安装pip
tar -xzvf pip-7.1.2.tar.gz
cd pip-7.1.2
python setup.py install
2、安装saltstack 版本 salt 2015.5.3 (Lithium)
官方文档http://docs.saltstack.cn/zh_CN/latest/topics/installation/ubuntu.html
一键添加软件源仓库并导入PPA的key
add-apt-repository ppa:saltstack/salt
手动添加软件源仓库和导入PPA key
echo deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee /etc/apt/sources.list.d/saltstack.list
wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" | sudo apt-key add -
更新软件仓库
apt-get update
安装saltstack
apt-get install salt-master
apt-get install salt-minion
apt-get install salt-syndic
apt-get install salt-api
3、安装cherrypy
pip install cherrypy==3.8.0
4、配置api
使用系统pam进行认证,添加系统用户和密码
useradd -M -s /sbin/nologin admin
passwd admin
用户名:admin
密码:admin
添加saltapi.conf 文件
vim /etc/salt/master.d/saltapi.conf
rest_cherrypy:
port: 8000
host: 127.0.0.1
disable_ssl: true
external_auth:
pam:
admin:
- .*
- '@runner'
- '@wheel' #格式要和git上一样,要对其,不然restart后启动不了8000端口
/etc/init.d/salt-master restart
/etc/init.d/salt-api restart
netstat -tnlp | grep 8000 看到8000端口监听在127.0.0.1上就可以了
5、安装及配置Django 和 Django crontab
pip install Django==1.8.4
pip install django-crontab
pip install install mysql-python #注意两个install
#此处会报错,mysql-python会安装失败,解决方法: apt-get install build-essential python-dev libmysqlclient-dev
#https://www.oschina.net/question/1422726_2236720
-----------------------------------------------------------------------------------------------------------------------
先试试
npm install MySQL-libmysqlclient
如果报错,请执行:
yum install mysql-devel
然后再执行
npm install mysql-libmysqlclient
CentOS 下 python-dev 叫做 python-devel
坑,注意大小写:
pip install MySQL-python
-----------------------------------------------------------------------------------------------------------------------------------------
mkdir -pv /var/log/saltshaker/
vim settings.py 配置数据库和salt api 认证信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'saltshaker', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'sina', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
}
}
根据添加的系统用户信息,在settings.py 行尾添加如下信息,进行salt api 的认证配置
# SaltStack API
SALT_API_URL = 'http://127.0.0.1:8000'
SALT_API_USER = 'admin'
SALT_API_PASSWD = 'admin'
6、异步请求 Celery
安装 django-celery (3.1.17)
pip install django-celery==3.1.17
安装 celery
pip install celery==3.1.17
安装 rbbitmq
详细安装请产看官方文档 ubuntu 安装http://www.rabbitmq.com/install-debian.html
Centos 安装http://www.rabbitmq.com/install-rpm.html
添加rbbitmq 仓库
echo 'deb http://www.rabbitmq.com/debian/ testing main' >> /etc/apt/sources.list
避免安装时发生警告添加公钥
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get install rabbitmq-server
开启rabbitmq-management plugin管理插件
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
rabbitmqctl stop
/etc/init.d/rabbitmq-server start
此时可以访问 127.0.0.1:15672
用户名:guest
密码:guest
vim settings.py 配置celery和rabbitmq
# celery + rabbitmq
platforms.C_FORCE_ROOT = True # Running a worker with superuser privileges
djcelery.setup_loader()
BROKER_HOST = "127.0.0.1"
BROKER_PORT = 5672
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"
BROKER_VHOST = "/"
7、 启动celery worker
python manage.py celery worker --loglevel=info -c 5
放到后台:
python manage.py celery worker --loglevel=info -c 5 &>/dev/null &
8、 相关数据库同步
#在mysql下执行如下命令 #安装MySQL,root路径下即可(随意也行):http://blog.csdn.net/chenpy/article/details/50344085
create database saltshaker;
use saltshaker;
source /root/saltshaker/saltshaker-init.sql.txt 导入数据库表和初始设置 saltshaker-init.sql.txt 文件路径根据部署的路径填写
saltshaker中setting.py的DATABASES中的密码要和Linux中的密码用户名一样
9、 启动计划任务
python manage.py crontab add 添加计划任务用于获取queue队列数 #安装MySQL设置的密码要和setting.py的DATABASE中的用户和密码要相同
setting文件在/root/saltshaker/saltshaker
10、 启动服务
python manage.py runserver 0.0.0.0:80 # 放到后台执行 ./test.sh &
放到后台:
python manage.py runserver 0.0.0.0:80 &>/dev/null &
使用浏览器打开 http://127.0.0.1
初始用户名:admin
初始密码:admin
saltshaker 环境搭建 CentOS6.X
1、安装saltstack 版本 salt 2015.5.3 (Lithium)
rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
yum clean all
yum install salt-master salt-minion salt-api salt-syndic
2、其他软件安装和配置见saltsalt在Ubuntu中的安装
使用 nginx 和 uwsgi 运行 saltshaker
1、pip install uwsgi django-uwsgi
2、https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
3、yum install nginx
如下内容请先忽略
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Return Data To Mysql
1. vim /etc/salt/master 在行尾添加如下行 使用MasterJobCache-Master-SideReturner 这中存储模式
mysql.host: '127.0.0.1'
mysql.user: 'root'
mysql.pass: 'sina'
mysql.db: 'saltshaker'
mysql.port: 3306
#### Returner job cache to mysql #####
master_job_cache: mysql
2. service salt-master restart
3. 修改salt mysql.py 文件 /usr/lib/python2.7/dist-packages/salt/returners/mysql.py
默认数据库字段为 fun jid return id success full_ret alter_time 由于return 在python里面是关键字
无法在django的models里面创建此字段 所以修改字段为 fun jid returns minion_id success full_ret alter_time
即修改mysql.py的235行,内容如下
官方建表语句https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html
228 def returner(ret):
229 '''
230 Return data to a mysql server
231 '''
232 try:
233 with _get_serv(ret, commit=True) as cur:
234 sql = '''INSERT INTO `salt_returns`
235 (`fun`, `jid`, `returns`, `minion_id`, `success`, `full_ret` )
236 VALUES (%s, %s, %s, %s, %s, %s)'''
237
238 cur.execute(sql, (ret['fun'], ret['jid'],
239 json.dumps(ret['return']),
240 ret['id'],
241 ret.get('success', False),
242 json.dumps(ret)))
243 except salt.exceptions.SaltMasterError as exc:
244 log.critical(exc)
245 log.critical('Could not store return with MySQL returner. MySQL server unavailable.')
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dd
saltshaker填坑的更多相关文章
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
- css 填坑常用代码分享
以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 因为提交比较麻烦,后来转置github:https://github.com/jsfront/src/blob/mast ...
- 填坑系列:通过ESXi来配置IPMI
近日西安的天气很不错,可是看到从其他地方迁移来的主机在新环境下无法远程调试怪郁闷的,这就需要填坑,要不就会给后来者挖更大的坑. 今天遇到的坑是在IPMI的网络设置里面启用了VLAN标签之后,在新环境下 ...
- Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)
这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angular ...
- 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...
- 【填坑向】spoj COT/bzoj2588 Count on a tree
这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...
- windows下jenkins常见问题填坑
没有什么高深的东西,1 2天的时间大多数人都能自己摸索出来,这里将自己遇到过的问题分享出来避免其他同学再一次挖坑. 目录 1. 主从节点 2. Nuget自动包还原 3. powershell部署 4 ...
- bootstrap-table填坑之旅<一>认识bootstrap-table
应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...
- 填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT
填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT 警告:发生了重入! 解释:在主循环里调用了一个函数,而在中断服务中又一次调用了同样的函数.当主循环运行到该函数中 ...
随机推荐
- python2.7入门---面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.所以,这篇文章我们来记录下Python的面向对象编程.如果你以前没有接触过面向对象的编 ...
- Android面试收集录 电话、短信和联系人、多媒体技术
1.请写出调用系统拨号界面? Intent intent=new Intent(Intent.ACTION_DIAL,Uri.pase("tel:12345678910")); s ...
- WPF中,如何将Vista Aero效果扩展到整个窗口
原文:WPF中,如何将Vista Aero效果扩展到整个窗口 WPF中,如何将Vista Aero效果扩展到整个窗口 ...
- MVC使用ajax取得JSon数据
为了在view中获取模型中的数据,用ajax异步模式读取数据,再用json返回的view中. 1.controller中: [HttpPost] public ActionResult GetAjax ...
- Java 基础------16进制转2进制
我们知道,数字8用二进制表示为:1000 用16进制表示为:8 那么我给你一个16进制的数字,0x7f,他的二进制是什么呢? 一个16进制的位数,用4位表示.比如,0x 7 f 其中: 7用4位二进制 ...
- laravel5.5jwt-auth的使用
laravel5.5 + jwt-auth:dev-develop 安装扩展 composer require tymon/jwt-auth:dev-develop --prefer-source 添 ...
- ASP.NET Web API 2 返回 Json格式
最近在学习ASP.NET的Web API,刚刚开始以为会有些复杂,结果却非常简单. 学习的地址:http://www.asp.net/web-api/overview/getting-started- ...
- ubuntu自带的ibus输入法问题解决方法
ubuntu自带的ibus有点问题,输入字的时候不知道是个什么模式. 在网上搜到一个解决方法. 终端下执行: ibus-daemon -drx 然后切换到拼音输入法,就正常了. 写下作为记录.
- Leetcode代码补全——链表
通过补全代码可以更深刻的体会到,链表就是一个存储方式,通过一单元的存储指向下一单元,而查看单元内容通过头部开始的指针依次遍历.这是leetcode里融合两个链表的题目,具体代码如下: #encodin ...
- Oracle 11g 审计跟踪管理
在Oracle11g之前,oracle数据库自带的审计功能是关闭的,考虑到性能和审计管理的复杂性,用户一般不打开审计功能.如果有审计要求,DBA会采用trigger来实现对DDL审计的方法来折中.例如 ...