前言 项目中使用saltstack有一段时间了,之前都是在控制台操作,后来感觉越来越不方便,每次操作需要登陆服务器,还需要记一堆命令.最重要的是,公司进新人之后,新人由于不熟悉saltstack,容易产生误操作,而saltstack这种批处理工具,误操作的代价是非常巨大的.为此我开发了一套saltstack的web控制台,简化操作的同时,实现权限的管理. 随着saltstack的web控制台开发的版本迭代,我们遇到了几个问题,如下: 1,第一版控制台,采用同步的方式执行,web控制台等待后端执行…
1.目标 2.执行模块 3.返回 salt ‘*’ cmd.run ‘uptime’ 命令 目标 执行模块 执行模块参数 1.SlatStack远程执行–目标 执行目标:https://docs.saltstack.com/en/latest/topics/targeting/index.html#advanced-targeting-methods (1)和Minion ID相关的目标匹配方式 .MinionID匹配 [root@linux-node1 ~]# salt 'linux-node…
saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt命令,将cmd.run ls命令从salt.client.LocalClient.cmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果. master接收到命令后,将要执行的命令发送给客户端minion. minion从消息总线上接收到要处理的命令,交给minion.…
Saltstack异步执行命令 salt执行命令有时候会有超时的问题,就是命令下发下去了,部分主机没有返回信息,这时候就很难判断命令或任务是否执行成功.因此,salt提供异步执行的功能,发出命令后立即返回一个jid.然后我们就可以根据这个jid来查询任务是否执行成功. 命令行实现异步 参数--async,返回job ID,根据job ID我们可以查询执行结果. salt --async '*' test.ping salt-run jobs.lookup_jid 2016111716315335…
Saltstack远程执行 语法例:salt '*' cmd.run 'w' -  命令:salt -  目标:'*' -  模块:cmd.run,自带150+模块,也可以自己写模块 -  返回:执行后结果返回,Returnners组件 1.指定目标(targeting) 官网文档:https://docs.saltstack.com/en/latest/topics/targeting/index.html 两种定位方法:一种和minion ID有关,一种和monion ID无关 1)mini…
SaltStack远程执行详解 ●目标(Targeting) ●模块(Module) ●返回(Returnners) 混合模式-C 选项 主机名设置参照: redis-node1-redis03-idc04-soa.example.com(电商) 1.1模块介绍 [root@linux-node1 salt]# salt '*' service.available sshd linux-node1.zhurui.com:     True linux-node2.zhurui.com:    …
上一篇:SaltStack远程执行-模块 参考官方文档:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html#module-salt.returners.mysql Salt执行的返回是由minion返回的,是由minion直接写在数据库或者其他里面的 在minion上面安装MySQL-python (salt不支持交互所以需要yum安装是时候加参数y) salt '*' cmd.run…
一.认识自动化运维 传统运维效率低,大多工作人为完成 传统运维工作繁琐,容易出错 传统运维每日重复做相同的事情 传统运维没有标准化流程 传统运维的脚本繁多,不能方便管理 自动化运维就是要解决上面所有问题 Puppet (www.puppetlabs.com)基于rubby开发,c/s架构,支持多平台,可管理配置文件.用户.cron任务.软件包.系统服务等. 分为社区版(免费)和企业版(收费),企业版支持图形化配置. Saltstack(官网 https://saltstack.com,文档doc…
saltstack把执行的结果保存到mysql中,以便进行命令安全审计 mysql负责存储数据,mysql-python负责收集数据 master需要安装mysql和MySQL-python,minion端安装MySQL-python 系统环境 CentOS Linux release 7.4 master    10.0.0.111 minion    10.0.0.112 1.master 端操作: 参考网址:https://docs.saltstack.com/en/latest/ref/…
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkPHP框架(3.2) Redis数据库:测试数据回调函数:通过一个Redis的自增incr来测试异步脚本执行的次数和访问的时间(平时都是用Redis测试写日志的) 编辑器:Visual Studio Code (CLI运行环境好看点) PHP 的命令行模式 从版本 4.3.0 开始,PHP 提供了一种…
来源:Redislabs作者:Martin Forstner 翻译:Kevin (公众号:中间件小哥) 以我的经验,将某些应用拆分成更小的.松耦合的.可协同工作的独立逻辑业务服务会更易于构建和维护.这些服务(也被称为微服务)各自管理自己的技术栈,因此很容易独立于其他服务进行开发和部署.前人已经总结了很多关于使用这种架构设计的好处,在此我就不再赘述了.关于这种设计,有一个方面我一直在重点关注,因为如果没有它,将会导致一些有趣的挑战.虽然构建松耦合的微服务是一个非常轻量级和快速的开发过程,但是这些服…
分享4: 需求:需要在项目程序生成前后执行相关的事件,比如:需要将某个文件拷贝到bin\Debug中,或者创建某文件夹等. 分析:我们可利用项目属性(选择项目右键,选择属性)中的“生成事件”预定义相关的命名行(预先生成事件命名行(R)或后期生成事件命名行(O)) 如上,例如:拷贝文件:xcopy "$(ProjectDir)lib\*.*" "$(TargetDir)" /S /R /Y(拷贝时一定要加上/S/R/Y)(在项目根目录下的lib文件夹中所有文件拷贝到b…
目前spring框架是j2ee比较常用的项目开发技术,只需在web.xml文件中进行少许配置即可,代码如下所示:<!--spring的配置文件--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext.xml</param-value></context-param…
js中立即执行函数的应用:应用到事件绑定上. 少说多做,直接运行代码(代码中有注释): <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>js立即执行函…
本文和大家分享一个jquery的实例,这个实例实现的是点击网页里的按钮或链接,第一次和第二次会执行不同的事件,也就是两个事件会轮流执行. <script language="javascript"> $(function(){ var f = false; $("#aijquery1").click(function(){ if(f == !f){ alert(1) }else{ alert(2) } }); }); </script> 上面…
error PRJ0019: 工具从"正在执行生成后事件..." 原因是属性->生成事件->生成后事件 命令行设置错误导致的,修改即可 因为path前面有空格,所以这里一定要加" " copy  G3DMdlOper.h  "E:\MapGIS 10\SDK\MapGIS_SDK\Include" 改成可读写的 xcopy /r /y G3DMdlOper.h  "E:\MapGIS 10\SDK\MapGIS_SDK\In…
原因:由于JavaScript为单线程,同一时间只能执行处理一个事件.“blur优先于click执行”.而在本示例中,由于blur处理程序,会将对下拉框展示区隐藏,所以导致其后续click事件并不会执行. 解决方案1:对blur事件进行延迟,让click先执行. $("input").blur(function(){ setTimeout(function(){ // input框失去焦点要做的事情 }, 300); }); // 选择对应选项,并赋值给input框 $(".…
character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先级依次 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先…
前面讲了如何通过pymysql操作数据库,这次写一个爬虫来提取信息,并将数据存储到mysql数据库 1.爬取目标 爬取猫眼电影TOP100榜单 要提取的信息包括:电影排名.电影名称.上映时间.分数 2.分析网页HTML源码 可以看到每部电影信息都被包裹在一对<dd>...</dd>标签中,所以我们只需提取出一个标签对中的上述信息即可.使用正则表达式提取 3. 完整过程 这个例子有2个关键点:正则编写和数据处理(写进mysql数据库) (1) 正则表达式的编写### pattern…
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章主要是最近研究了数据库的定时计划备份,联系爬虫简单做的一个实验,但方法可以,尤其在Windows xp年代.整个系列主要分为五部分,共五篇文章: 1.Python爬取招聘信息,并且存储到MySQL数据库中: 2.调用pyinstaller包将py文件打包成exe可执行文件: 3.设置Windows系…
最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() os.system('ls')#返回结果0或者1,不能得到命令的输出 2. os.popen() output = os.popen('ls') print output.read()#打印出的…
关于Ueditor存储在mysql"UTF-8"乱码的问题 首先小编要声明之前出乱码的原因,mysql 字段设置的BLOB类型 紧接着我们要先确认两件事: 1.首先要确认你的mysql 表的编码格式是否为utf-8,如果不清楚,别着急在下亮出神器 show create table <表名> 即可 2.要确认你的编辑软件编码格式是否为utf-8,以及前台提交的数据格式是否为utf-8,如果都和小编的一样,那么好下面的设置最为重要 将mysql中的BLOB字段更改为mediu…
要想使用Hive先要有hadoop集群的支持,使用本地把元数据存储在mysql中. mysql要可以远程连接: 可以设置user表,把localhost改为%,所有可连接.记住删除root其他用户,不然可能会有影响 update user set host='%' where host='localhost'; Hive的安装部署: 1.解压tar文件 2.修改文件: 修改conf/下面的文件: cp hive-env.sh.tempalte hive-env.sh 配置hive-env.sh文…
网上没什么资料,就分享下:) 简单模式:kafka传数据到Flink存储到mysql 可以参考网站: 利用Flink stream从kafka中写数据到mysql maven依赖情况: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma…
数据太大压缩存储,可以使用zlib中的压缩函数,代码如下: import ujson import MySQLdb import zlib import base64 kwargs = { 'host': '0.0.0.0', 'port': 3307, 'db': 'test', 'user': 'test_user', 'passwd': 'xxxxxxxxxxxx' } def trans_data(): """ 将json数据dumps存储到mysql中 其中一列数据…
1.导入包import requests #取数from lxml import etree #用xpath解析import pymysql #连接数据库import chardet #自动获取编码2.获取单页htmldef get_one_page(url): headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.6…
任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def __init__(self): self.connect = pymysql.connect( host='localhost', user='root', password='', database='quotes', charset='utf8', ) self.cursor = self.c…
上一卷中我将爬取的数据文件直接写入文本文件中,现在我将数据存储到mysql中,我依然用的是pymysql,这个很麻烦建表需要在外面建 这次代码只需要改变pipyline就行 来 现在看下结果: 对比发现数据准确无误…
saltstack执行结果保存到MySQL中,以便进行命令安全审计必须是python2.7以上的环境安装相关模块ubuntu系统安装 apt-get install -y python-mysqldb centos系统安装 yum install -y MySQL-python 数据库.相关表创建以及账户创建授权官网:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html#module-sa…
Saltstack的一个比较突出优势就是具备执行远程命令的功能. 操作方法与func (https://fedorahosted.org/func/)相似,可以帮助运维人员完成集中化的操作平台. http://docs.saltstack.cn/topics/targeting/index.html 命令格式:salt '<操作目标>' <方法> [参数] 查看被控制机的内存使用情况 [root@saltstack-master master]# salt 'saltstack_w…