设为首页 收藏本站
查看: 1083|回复: 0

[经验分享] saltstack(返回值写入数据库)

[复制链接]

尚未签到

发表于 2018-7-31 10:49:08 | 显示全部楼层 |阅读模式
  一、目标(targeting Minions)

  1.匹配Minions>  匹配所有 (*)
  [root@node1 salt]# salt '*' test.pingnode2.minion:True
  匹配后面是.minion的
  [root@node1 salt]# salt '*.minion' test.pingnode2.minion:True
  匹配一个(?)
  [root@node1 salt]# salt '*node?.minion' test.pingnode2.minion:True
  匹配多个[1-5]
  [root@node1 salt]# salt 'node[1-5].minion' test.pingnode2.minion:True
  匹配某个主机和某个
  [root@node1 salt]# salt 'node[2,3].minion' test.pingnode2.minion:True
  匹配a-z
  [root@node1 salt]# salt 'node2.minio[n-z]' test.pingnode2.minion:True
  2.正则匹配:
  -E
  #匹配node2或者node3后面是.minion的主机[root@node1 salt]# salt -E '(node2|node3).minion' test.pingnode2.minion: True可以在sls的配置文件里使用修改 vim /etc/salt/states/top.slsbase: #匹配node2或者node3后面是.minion的主机 '(node2|node3).minion': #使用正则 - match: pcre - init.pkg
  -L
  #匹配多个主机,逗号分隔[root@node1 states]# salt -L 'node2.minion,node3,minion' test.pingnode2.minion: True
  -S ip地址匹配
  salt -S '0.0.0.0/24' test.ping
  二、模块
  1.hosts模块
  #获取IP地址[root@node1 states]# salt '*' hosts.get_ip node2node2.minion:127.0.0.1
  2.service模块
  获取minion主机所有服务[root@node1 states]# salt '*' service.get_allnode2.minion: - abrt-ccpp - abrt-oops - abrtd - acpid - atd - auditd - blk-availability - control-alt-delete - crond - cups - elasticsearch - exim - halt - htcacheclean - httpd - init-system-dbus - ip6tables - ipmi - iptables - irqbalance - kexec-disable - killall - logstash - lvm2-lvmetad - lvm2-monitor - messagebus - netconsole - netfs - network - ntpd - ntpdate - php-fpm - plymouth-shutdown - portreserve - pptpd - prefdm - psacct - quit-plymouth - quota_nld - rc - rcS - rcS-emergency - rcS-sulogin - rdisc - readahead - readahead-collector - readahead-disable-services - restorecond - rsyslog - salt-minion - sandbox - saslauthd - serial - shellinaboxd - single - smartd - snmpd - snmptrapd - splash-manager - sshd - start-ttys - svnserve - sysstat - tty - ttyS0 - udev-post - zabbix-agent - zabbix-agentd - zabbix_agentd - zabbix_server查看服务运行状态[root@node1 states]# salt '*' service.status sshdnode2.minion:True重启某个服务[root@node1 states]# salt '*' service.reload sshdnode2.minion:True
  3.salt-cp
  root@node1 minions]# salt-cp '*' /etc/passwd /tmp/passwd{'node2.minion': {'/tmp/passwd': True}}[root@node1 minions]#
  返回写入数据库
  returners.mysql
  默认情况下,发送给salt minion的命令执行结果将返回给salt master.
  Saltstack Returner的接口允许将结果发送给任意系统
  1.master端安装mysql
  第一种:源码包安装步骤省略第二种:yum install mysql-server -y启动mysql服务
  2.minion端部署MySQL-python
  yum install MySQL-python原理是minion把数据直接推到master的数据库中
  3.在master端创建数据库
  进入数据库

  •   创建库名
  CREATE DATABASE `salt` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  2.创建jid表
  USE `salt`;
  DROP TABLE IF EXISTS `jids`;
  CREATE TABLE `jids` ( `jid` varchar(255) NOT NULL, `load` mediumtext NOT NULL, UNIQUE KEY `jid` (`jid`))
  ENGINE=InnoDB DEFAULT CHARSET=utf8;
  3.创建return表
  存放返回的数据
  DROP TABLE IF EXISTS `salt_returns`;
  CREATE TABLE `salt_returns` ( `fun` varchar(50) NOT NULL, `jid` varchar(255) NOT NULL, `return` mediumtext NOT NULL, `id` varchar(255) NOT NULL, `success` varchar(10) NOT NULL, `full_ret` mediumtext NOT NULL, `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, KEY `id` (`id`), KEY `jid` (`jid`), KEY `fun` (`fun`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  4.创建事件表
  DROP TABLE IF EXISTS `salt_events`;
  CREATE TABLE `salt_events` (`id` BIGINT NOT NULL AUTO_INCREMENT,`tag` varchar(255) NOT NULL,`data` mediumtext NOT NULL,`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,`master_id` varchar(255) NOT NULL,PRIMARY KEY (`id`),KEY `tag` (`tag`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  5.授权访问

  grant all on salt.* to salt@'%'>  注:%不包括localhosts
  4.在master里修改配置文件
  # vi /etc/salt/master
  在配置文件后面追加以下内容
  mysql.host: '115.29.51.8'
  mysql.user: 'salt'
  mysql.pass: 'salt'
  mysql.db: 'salt'
  mysql.port: 3306
  5.在minion里修改配置文件
  # vi /etc/salt/minion
  在配置文件后面追加以下内容
  mysql.host: '115.29.51.8'
  mysql.user: 'salt'
  mysql.pass: 'salt'
  mysql.db: 'salt'
  mysql.port: 3306
  6.master和minion端都重启服务
  master端:# service salt-master restart
  minion端:# /etc/init.d/salt-minion restart
  7.测试
  #salt '*' test.ping --return
  mysqlnode2.minion: True#
  salt '*' cmd.run 'df -TH' --return=mysql

  node2.minion: Filesystem Type>  在数据库里查看
  方法2:
  如果每次执行不加--return=mysql由master端将返回的数据写入数据库
  1.修改master配置文件
  # vi /etc/salt/master在配置文件后面追加以下内容master_job_cache: mysql
  2.重启master
  # service salt-master restart
  3.测试
  过程略

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-544050-1-1.html 上篇帖子: Saltstack-Better 下篇帖子: saltstack 配置minion 端 网卡信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表