saltstack(返回值写入数据库)
admin
2023-05-28 01:01:22
0

一、目标(targeting Minions)

1.匹配Minions Id


匹配所有 (*)


[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端创建数据库


进入数据库

  1. 创建库名

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@'%' identified by '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 Size Used Avail Use% Mounted on /dev/vda1 ext3 8.5G 4.3G 3.8G 54% /

在数据库里查看


方法2:


如果每次执行不加--return=mysql由master端将返回的数据写入数据库

1.修改master配置文件


# vi /etc/salt/master在配置文件后面追加以下内容master_job_cache: mysql

2.重启master


# service salt-master restart

3.测试


过程略


相关内容

热门资讯

以融合之姿赴未来之约——“安阳... 文脉绵延千载,风潮激荡未来。作为甲骨文的故乡、殷墟所在地,安阳正站在文旅产业高质量发展的关键节点——...
坚决打好打赢“三夏”攻坚战丨邓... 邓州小麦开镰收割。 杨清令 王崇顺 摄河南日报讯 (全媒体记者 李宗宽 曾倩 曹国宏 通讯员 王崇顺...
河南安阳文峰区区长刘学平,任上... 据安阳市纪委监委消息:安阳市文峰区委副书记、区长刘学平涉嫌严重违纪违法,目前正接受安阳市纪委监委纪律...
大V一年发帖180余条侮辱某汽... 【大河财立方消息】 5月20日,国家发展改革委和最高人民法院联合发布贯彻实施民营经济促进法典型案例。...
满产、赶单、行情旺,河南铝加工... 【大河财立方 记者 吴春波】 在高端转型成效显现和海外订单激增双重利好共振之下,河南铝加工产业出口业...
消失的提现键,与他们被银行“冻... 文丨東昇 编辑丨雪梨王许强的钱包里,那张卡号以6217开头的河南村镇银行储蓄卡依旧平整。银联标识清晰...
AI智联万物,高通面向6G交出... 通信世界网消息(CWW)在5月17日举行的“2026世界电信和信息社会日大会”上,高通公司中国区董事...
事关杭州未来五年发展!这场发布... 科技日报记者: 这两年,“杭州六小龙”现象备受中外关注。在推动人工智能创新发展方面,“十五五”期间杭...
不想伺候“老登”的姚顺宇,天才... 出品|搜狐科技 作者|常博硕 编辑|杨锦 硅谷的AI圈里,有两个名叫“Yao Shunyu”的年轻人...
特朗普:不要中国学生,那可太冒... 【文/观察者网 阮佳琪】5月15日,美国总统特朗普结束访华行程。当日,外交部发言人郭嘉昆回答特朗普中...