博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Saltstack远程执行(四)
阅读量:5268 次
发布时间:2019-06-14

本文共 3600 字,大约阅读时间需要 12 分钟。

  • Saltstack远程执行

语法例:salt '*' cmd.run 'w'

 -  命令:salt

 -  目标:'*'

 -  模块:cmd.run,自带150+模块,也可以自己写模块

 -  返回:执行后结果返回,Returnners组件

 

1、指定目标(targeting)

官网文档:

两种定位方法:一种和minion ID有关,一种和monion ID无关

    1)minion ID有关的方法

  指定具体的minion ID

salt 'linux-node2.example.com' test.ping

  通配符

salt '*' test.ping  salt 'linux-node2*' test.pingsalt 'linux-node[1|2].example.com' test.pingsalt 'linux-node[1-2].example.com' test.pingsalt 'linux-node[!2].example.com' test.pingsalt 'linux-node?.example.com' test.ping

  列表

salt -L 'linux-node1.example.com,linux-node2.example.com' test.ping

  正则表达式

salt -E 'linux-(node1|node2)*' test.pingsalt -E 'linux-(node1|node2).example.com' test.ping

备注: 所有匹配目标的方式,都可以用到top file里面来指定目标。

minion ID设置方案:IP地址、根据业务来进行设置

例:redis-node1-redis04-idc04-h5web.example.comredis-node1  # redis第一个节点redis04  # 集群idc04  # 机房h5web  # 业务线

   

    2)minion ID无关的方法

  IP地址、子网

salt -S 192.168.137.12 test.pingsalt -S 192.168.137.0/24 test.ping

  分组,需要配置master文件

vim /etc/salt/master

重启systemctl restart salt-master

salt -N web test.ping

  混合匹配

官方文档 

  批处理 ,可用于重启所有主机或进程场景,百分比或固定数量的一点一点重启主机或进程

官方文档 

 

2、执行模块

官网文档 

列出salt所有模块,以及如何使用的帮助文档

通过yum默认安装salt所有模块存放路径 /usr/lib/python2.7/site-packages/salt/modules(centos 7)

例:

salt '*' network.active_tcp  # 列出所有主机运行的tcp连接salt '*' network.arp  # 列出所有主机arpsalt '*' service.available sshd  # 列出所有主机sshdsalt '*' service.get_all  # 列出所有主机的所有运行服务salt '*' service.status sshd  # 列出所有主机sshd运行状态salt-cp '*' /etc/hosts /tmp/test  # 将master上/etc/hosts文件拷贝到所有主机的/tmp/testsalt '*' state.show_top  # 查看topsalt '*' state.single pkg.installed name=lsof  # 所有主机安装lsof

 

3、返回程序

官方文档 

 1)将返回写入mysql库,是由minion直接写入mysql库

所有minion安装python mysql模块

salt '*' state.single pkg.installed name=MySQL-python或salt '*' cmd.run 'yum install MySQL-python -y'

    创建salt库

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

    创建表

---- Table structure for table `jids`--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;CREATE INDEX jid ON jids(jid) USING BTREE;
---- Table structure for table `salt_returns`--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;
---- Table structure for table `salt_events`--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;

    授权

grant all on salt.* to salt@'%' identified by 'salt@pw';FLUSH PRIVILEGES;
exitmysql -h192.168.137.11 -usalt -psalt@pw saltshow tables;

    配置minion文件

vim /etc/salt/minionmysql.host: '192.168.137.11'mysql.user: 'salt'mysql.pass: 'salt@pw'mysql.db: 'salt'mysql.port: 3306

重启 systemctl restart salt-minion

    测试

salt '*' test.ping --return mysql

salt '*' cmd.run 'df -h' --return mysql

 

4、编写执行模块

1)放置路径

cd /srv/saltmkdir _modules

2) 命名

文件名就是模块名

例: my_disk.py

vim /srv/salt/_modules/my_disk.pydef list():	cmd = 'df -h'	ret = __salt__['cmd.run'](cmd)	return ret

3)刷新

salt '*' saltutil.sync_modules

会放到指定目标的/var/cache/salt/minion下

4)执行

salt '*' my_disk.list

 

转载于:https://www.cnblogs.com/shhnwangjian/p/5986964.html

你可能感兴趣的文章
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>