salt stack 工具之一——远程命令

salt stack 远程命令

salt stack是一种自动化的运维工具,可以同时对N台服务器进行配置管理、远程命令执行等操作。

salt stack分为两个部分:

  • salt-master,部署在控制服务器上,用于发出运维指令;
  • salt-minion,部署在所有需要批量运维的线上服务器上;

salt安装

服务端:yum install salt-master -y

客户端:yum install salt-minion -y

配置文件:

服务端:/etc/salt/master

服务端配置:

interface: 192.168.1.229
auto_accept: True

其中,interface 用于设置master监听的IP地址;

auto_accept设置是否自动接收minion的KEY。

master启动后默认监听4505和4506两个端口:4505(publish_port)为salt的消息发布系统;4506(ret_port)为salt客户端与服务端通信的端口。

客户端:/etc/salt/minion

客户端配置:

master: 192.168.1.229
id :34

其中,master设置服务端地址;

id用于设置minion自身的ID,master根据这个ID识别minion;

启动服务:

服务端启动方式:service salt-master start
客户端启动方式:service salt-minion start

程序日志:(有问题可查日志获取出错信息)
服务端:/var/log/salt/master
客户端:/var/log/salt/minion


key管理

1、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和minion.pub(public key),然后将minion.pub发送给master;
2、master 在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key, 然后master就能对minion发送指令了。

Salt在master和minion数据交换过程中使用AES加密, 为了保证发送给minion的指令不会被篡改,在发送命令到minion之前,minion的key需要先被master所接受(accepted),运行salt-key可以列出当前key的状态:

[[email protected] src]# salt-key -L
Accepted Keys:
34
35
37
39
56
57
Unaccepted Keys:
Rejected Keys:

salt-key命令可以接受特定的单个key或批量接受key,使用-A选项接受当前所有的key,接受单个key可以使用-a keyname。
认证命令为salt-key,常用的有如下命令:

-a ACCEPT, --accept=ACCEPTAccept the following key
-A, --accept-all Accept all pending keys
-r REJECT, --reject=REJECTReject the specified public key
-R, --reject-all Reject all pending keys
-d DELETE, --delete=DELETEDelete the named key
-D, --delete-all Delete all keys

执行命令

对所有的minion执行命令:

salt ‘*‘ cmd.run ‘uptime‘

输出结果:

34:
     18:13:18 up 268 days,  6:04,  3 users,  load average: 0.73, 0.87, 0.88
37:
     18:13:18 up 142 days, 16:51,  1 user,  load average: 0.47, 0.50, 0.46
39:
     18:13:17 up 142 days, 16:49,  3 users,  load average: 0.60, 0.59, 0.51
35:
     18:13:17 up 268 days,  6:03,  1 user,  load average: 1.11, 0.97, 0.87
57:
     18:13:18 up 149 days,  2:30,  1 user,  load average: 1.54, 1.62, 1.55
56:
     18:13:17 up 149 days,  2:31,  0 users,  load average: 1.50, 1.59, 1.51

-L选项指定minion列表:

salt -L ‘35,56‘ cmd.run ‘uptime‘ 

-E选项使用正则匹配指定minion列表:

salt -E ‘^3‘ cmd.run ‘uptime‘

-N选项指定一个分组:

salt -N group2 test.ping

注意:服务器分组需要事先在配置文件(/etc/salt/master)添加。

这里可以查看到salt支持的所有模块提供的功能列表:

http://docs.saltstack.cn/zh_CN/latest/ref/modules/all/index.html

比如:

1、disk模块,查看磁盘使用率

salt ‘*‘ disk.usage
salt ‘*‘ disk.percent /var
salt ‘*‘ disk.inodeusage

2、dig模块

salt ns1 dig.A www.google.com
salt ns1 dig.AAAA www.google.com
salt ns1 dig.MX google.com
salt ns1 dig.NS google.com
salt ns1 dig.SPF google.com
salt ns1 dig.check_ip 127.0.0.1

3、pkg模块,用于批量安装minion服务器

salt ‘*‘ pkg.install <package name>
salt ‘*‘ pkg.upgrade 

注意:不同的linux发行版本,采用的包管理方式不一样,例如Ubuntu使用apt,CentOS使用yum等,因此该模块有不同的实现;

4、cron模块,管理集群的crontab

salt ‘*‘ cron.ls root
salt ‘*‘ cron.raw_cron root
salt ‘*‘ cron.rm_job root /usr/local/weekly
salt ‘*‘ cron.rm_env root MAILTO
salt ‘*‘ cron.set_job root ‘*‘ ‘*‘ ‘*‘ ‘*‘ 1 /usr/local/weekly
salt ‘*‘ cron.write_cron_file root /tmp/new_cron

5、at模块,一次性任务

salt ‘*‘ at.at 12:05am ‘/sbin/reboot‘ tag=reboot
salt ‘*‘ at.at ‘3:05am +3 days‘ ‘bin/myscript‘ tag=nightly runas=jim
salt ‘*‘ at.atq
salt ‘*‘ at.atrm all

6、service模块

salt ‘*‘ service.available sshd
salt ‘*‘ service.get_all
salt ‘*‘ service.reload <service name>
salt ‘*‘ service.restart <service name>
salt ‘*‘ service.start <service name>
salt ‘*‘ service.stop <service name>
salt ‘*‘ service.status <service name> [service signature]

7、cmd模块

salt ‘*‘ cmd.run "ls -l | awk ‘/foo/{print \$2}‘"
salt ‘*‘ cmd.exec_code python2 ‘print("hello world")‘
salt ‘*‘ cmd.script salt://scripts/runme.sh ‘arg1 arg2 "arg 3"‘

cmd模块可以执行一段代码、也可以执行一个指定脚本;

8、nginx模块,批量操作nginx服务器

salt ‘*‘ nginx.configtest
salt ‘*‘ nginx.signal reload
salt ‘*‘ nginx.status
salt ‘*‘ nginx.version

类似的,salt还支持对

apache

mysql

redis

rabbit

nagios

django

hadoop

haproxy

rsync

varnish

svn

等模块的支持。

 参考文档:

http://docs.saltstack.com/en/latest/topics/tutorials/walkthrough.html

时间: 2024-10-12 06:26:47

salt stack 工具之一——远程命令的相关文章

centos 7 搭建saltstack以及salt stack模块的用法

一.archive模块实现系统层面的压缩包调用,支持gzip.gunzip.rar.tar.unrar.unzip等 archive.cmd_unzip archive.cmd_zip archive.gunzip archive.gzip archive.rar archive.tar archive.unrar archive.unzip archive.zipcmd模块实现远程的命令行调用执行(默认具备root操作权限,使用时需评估风险) cmd.exec_code cmd.exec_co

第一天salt stack 笔记

Saltstack是一个大型分布式的配置管理系统(安装升级卸载软件,检测环境),也是一个远程命令执行系统.通过c/s的模型实现.服务器端对远程客户机的操作: Saltstack部署: master:192.168.63.163     www.oms.com minion:192.168.63.129     www.omsclient.com 部署要求:两台机器网络互通,最好关闭防火墙.关闭selinux. 1.修改/etc/hosts [[email protected] salt]# ca

Docker培训课程 - 谈docker,chef,puppet,ansible,salt stack延伸

Docker培训课程 - 谈docker,chef,puppet,ansible,salt stack延伸 Docker training course - Discuss docker, chef, puppet, ansible, salt stack Hangout本文翻译自:http://www.slideshare.net/Flux7Labs/docker-training-course-discuss-docker-chef-puppet-ansible-salt-stack-han

Windows系统自带工具的 cmd 命令

目标 与计算机高手无关,只是为了减少鼠标点击的次数,提高效率. 适用范围 Windows XP,Windows 7,Window 8 (在Windows 7 下验证通过.) 使用方法 在 “运行“ 对话框 或 命令提示符 下,输入相应的命令,回车即可. 注: 1)“运行“ 对话框 :通过 ”Win键 + R” 调用. 2)命令提示符:在“运行”对话框内输入 cmd ,回车即可. 具体内容 Windows 系统常用小工具 工具名称 cmd 命令 含义 计算器 calc 与 "工具名称"

sql server管理工具连接远程服务器sql azure出现异常关闭

我本机装了sql server 2014开发版 ,我用ssms连接sql azure没问题.今天装完最新vs2012/2013 update后,启动ssms连接sql azure就出现异常.我修复下管理工具也不行. 其它机器上安装sql server管理工具都能连接上. 打微软800-820-3800开case,人家拒绝开,他们居然说这是sql azure问题,跟他们无关! 其实只要连接远程服务器都出现异常关闭程序,只能连接本地服务器,和sql azure无关啊! 火了,自己研究,终于 ....

salt stack安装与使用

Saltstack三大功能 远程执行(执行远程命令) 配置管理(状态管理) 云管理 Saltstack特征 1)部署简单.方便: 2)支持大部分UNIX/Linux及Windows环境: 3)主从集中化管理: 4)配置简单.功能强大.扩展性强: 5)主控端(master)和被控端(minion)基于证书认证,安全可靠: 6)支持API及自定义模块,可通过Python轻松扩展. Master与Minion认证 1)minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在

saltstack计划任务工具和其他命令

配置管理目录 要实现目录批量管理,也需要在top中配置管理项的文件,然后再子管理项文件中配置相应的目录信息编辑top.sls配置文件,将base: 下的修改为指定名称,这里我修改为dir [[email protected] salt]# cat top.sls base: ?'*': ? ?- dir ? ? ? //指定子配置文件名称 接下来修改top中指定的dir名称的配置文件,配置文件全称名字为dir.sls查看配置文件的配置参数信息 [[email protected] salt]#

WebLogic远程命令执行

靶机说明 目标ip:172.16.53.28(window 2003) 本靶机所针对的序列化漏洞系列以及常见安全问题如下: 弱口令登陆控制台部署war包webshell CVE-2018-2893 CVE-2018-2628 CVE-2017-10271 CVE-2017-3248 CVE-2016-3510 CVE-2015-4852 weblogic ssrf 远程登陆靶机开启weblogic服务,以及方便后续观察远程命令执行的效果 靶机登陆账号/密码:Administrator/secqu

0 openwrt路由器入门 远程命令行+文件系统

如图,拿到一个openwrt路由器我们第一步要远程控制. 这里在买了两块wifi-robots  wifi视频模块. 0首先说下这个WIIF的信息 淘宝购买链接 https://item.taobao.com/item.htm?spm=a312a.7700824.w5001-18055431271.3.18644705m9g8Qz&id=555120245987&scene=taobao_shop GL.iNet 刷的系统 OpenWrt Barrier Breaker r38451 /