溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

saltstack(返回值寫入數(shù)據(jù)庫)

發(fā)布時間:2020-04-10 08:20:04 來源:網(wǎng)絡(luò) 閱讀:686 作者:丶AKon 欄目:數(shù)據(jù)庫

一、目標(biāo)(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

匹配某個主機(jī)和某個


[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的主機(jī)[root@node1 salt]# salt -E '(node2|node3).minion' test.pingnode2.minion: True可以在sls的配置文件里使用修改 vim /etc/salt/states/top.slsbase: #匹配node2或者node3后面是.minion的主機(jī) '(node2|node3).minion': #使用正則 - match: pcre - init.pkg

-L


#匹配多個主機(jī),逗號分隔[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主機(jī)所有服務(wù)[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查看服務(wù)運行狀態(tài)[root@node1 states]# salt '*' service.status sshdnode2.minion:True重啟某個服務(wù)[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]#

返回寫入數(shù)據(jù)庫

returners.mysql


默認(rèn)情況下,發(fā)送給salt minion的命令執(zhí)行結(jié)果將返回給salt master.

Saltstack Returner的接口允許將結(jié)果發(fā)送給任意系統(tǒng)


1.master端安裝mysql


第一種:源碼包安裝步驟省略第二種:yum install mysql-server -y啟動mysql服務(wù)

2.minion端部署MySQL-python


yum install MySQL-python原理是minion把數(shù)據(jù)直接推到master的數(shù)據(jù)庫中

3.在master端創(chuàng)建數(shù)據(jù)庫


進(jìn)入數(shù)據(jù)庫

  1. 創(chuàng)建庫名

CREATE DATABASE `salt` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;


2.創(chuàng)建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.創(chuàng)建return表 

存放返回的數(shù)據(jù)

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.創(chuàng)建事件表

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.授權(quán)訪問

grant all on salt.* to salt@'%' identified by 'salt';

注:%不包括localhosts


4.在master里修改配置文件

# vi /etc/salt/master

在配置文件后面追加以下內(nèi)容 

mysql.host: '115.29.51.8'

mysql.user: 'salt'

mysql.pass: 'salt'

mysql.db: 'salt'

mysql.port: 3306


5.在minion里修改配置文件

# vi /etc/salt/minion

在配置文件后面追加以下內(nèi)容

mysql.host: '115.29.51.8'

mysql.user: 'salt'

mysql.pass: 'salt'

mysql.db: 'salt'

mysql.port: 3306

6.master和minion端都重啟服務(wù)


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% /

在數(shù)據(jù)庫里查看


方法2:


如果每次執(zhí)行不加--return=mysql由master端將返回的數(shù)據(jù)寫入數(shù)據(jù)庫

1.修改master配置文件


# vi /etc/salt/master在配置文件后面追加以下內(nèi)容master_job_cache: mysql

2.重啟master


# service salt-master restart

3.測試


過程略


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI