架构师成长之路5.2-Saltstack远程执行
架构师成长之路5.2-Saltstack远程执行
配置管理工具:
- Pupper:1. 采用ruby编程语言;2. 安装环境相对较复杂;3.不支持远程执行,需要FUNC工具配置才可以
- Ansible:1.采用python编程语言;2.被红帽收购;3.轻量级;4.基于模块工作的,本身没有批量部署的能力,真正批量部署的是ansible所运行的模块。
- Saltstack:采用python编程语言,同时提供Rest API方便二次开发以及和其它平台进行集成(目前企业使用率最高)
Saltstack最基本的三大功能:
- Remote execution远程执行:同时在上百上千台机器批量执行命令
- Configuration management配置管理:状态管理(一种状态描述,但是这种状态很难回滚)
- Event-Driven infrastucture事件驱动基础设施:监听对象,状态变化产生事件捕捉事件自动编排,故障自愈
- Salt cloud 云管理:几乎可以管理所有的公有云和私有云
Saltstack四种运行方式:
- local:一台本地自运行
- Minion/Master: 就是C/S模式
- Syndic 代理组件管理(可以理解成zabbix proxy模式)
- Salt SSH: 不用安装agent,也能通过SSH收集信息
1. Saltstack的远程执行概念
远程执行是Saltstack的核心功能之一。主要使用Salt模块批量给选定的minion端执行相应的命令,并获得返回结果。
举例1:如上文例子“判断Salt的minion是否存活?”
salt:是saltstack自带的一个命令
* :表示目标主机,这里表示所有目标主机
test.ping:test是saltstack中的一个模块,ping则是这个模块下面的一个方法
举例:2:saltstack使用cmd.run模块远程执行shell命令
2.Salt命令的结构语法
salt '<target>' <function> [arguments]
目标主机target匹配方式:
- 与minionID有关的采用,通配符、列表和正则;
- 与minionID无关的采用,IP、复合、分组、Grains、Pillar
远程执行常用模块(点击所有模块列表):
- test 模块:用于测试
- user模块:用于用户管理
- cmd模块:用于执行任意shell命令
- pkg模块:用于软件包管理
- file模块:用于配置
- service模块:用于服务管理
3.Salt命令的目标主机target匹配方式
3.1 通配符匹配
[root@Saltstack01 /]# salt '*' test.ping
[root@Saltstack01 /]# salt 'Saltstack02' test.ping
[root@Saltstack01 /]# salt '*02' test.ping
[root@Saltstack01 /]# salt 'Saltstack0[1|2]' test.ping
[root@Saltstack01 /]# salt 'Saltstack0[!1|2]' test.ping
[root@Saltstack01 /]# salt 'Saltstack0?' test.ping
3.2 列表匹配
[root@Saltstack01 /]# salt -L 'Saltstack01,Saltstack02' test.ping
3.3 正则匹配
[root@Saltstack01 /]# salt -E '^Salt' test.ping
[root@Saltstack01 /]# salt -E '^Salt.*2' test.ping
3.4 IP匹配
[root@Saltstack01 /]# salt -S '172.18.20.227' test.ping
[root@Saltstack01 /]# salt -S '172.18.20.0/24' test.ping
3.5 复合匹配
[root@Saltstack01 /]# salt -C 'G@os:Centos and S@172.18.20.227' test.ping
3.6 分组匹配
[root@Saltstack01 /]# vim /etc/salt/master
nodegroups:
webserver: 'Saltstack01,Saltstack02'
dbserver: 'Saltstack03'
[root@Saltstack01 /]# systemctl restart salt-master
[root@Saltstack01 /]# salt -N 'webserver' test.ping
[root@Saltstack01 /]# salt -N 'dbserver' test.ping
3.7 Grains匹配
[root@Saltstack01 /]# salt -G 'os:Centos' test.ping
[root@Saltstack01 /]# salt -G 'localhost:Saltstack02' test.ping
4.Salt命令的远程执行常用模块
4.1 test模块
功能:用于测试。
[root@Saltstack01 /]# salt '*' test.ping
4.2 user模块
功能:详见官方。
salt '*' user.add name <uid> <gid> <groups> <home> <shell>
4.3 cmd模块
功能:实现远程的命令行调用执行,可以使用shell所有命令(默认具备root操作权限,使用时需评估风险)
4.4 pkg模块
功能:软件包状态管理,会根据操作系统不同,选择对应的安装方式(如CentOS系统默认使用yum,Debian系统默认使用apt-get)
[root@Saltstack01 /]# salt '*' pkg.install "vsftpd" #安装 [root@Saltstack01 /]# salt '*' pkg.remove "vsftpd" #卸载 [root@Saltstack01 /]# salt '*' pkg.latest_version "vsftpd" #安装最新版本 [root@Saltstack01 /]# salt '*' pkg.upgrade "vsftpd" #更新软件包 [root@Saltstack01 /]# salt '*' pkg #查看帮助手册
表上表示已安装程序包。
4.5 file模块
功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验。
#校验所有minion主机文件的加密信息,支持md5、sha1、sha224、shs256、sha384、sha512加密算法
[root@Saltstack01 /]# salt '*' file.get_sum /etc/passwd md5 #修改所有minion主机/etc/passwd文件的属组、用户权限、等价于chown root:root /etc/passwd
[root@Saltstack01 /]]# salt '*' file.chown /etc/passwd root root #获取所有minion主机/etc/passwd的stats信息
[root@Saltstack01 /]]# salt '*' file.stats /etc/passwd #获取所有minion主机/etc/passwd的权限mode,如755,644
[root@Saltstack01 /]]# salt '*' file.get_mode /etc/passwd #修改所有minion主机/etc/passwd的权限mode为0644
[root@Saltstack01 /]]# salt '*' file.set_mode /etc/passwd 0644 #在所有minion主机创建/opt/test目录
[root@Saltstack01 /]]# salt '*' file.mkdir /opt/test #在所有minion主机穿件/tmp/test.conf文件
[root@Saltstack01 /]]# salt '*' file.touch /tmp/test.conf #将所有minion主机/tmp/test.conf文件追加内容'maxclient 100'
[root@Saltstack01 /]]# salt '*' file.append /tmp/test.conf 'maxclient 100' #删除所有minion主机的/tmp/test.conf文件
[root@Saltstack01 /]]# salt '*' file.remove /tmp/test.conf
4.6 service模块
功能:被控主机程序包服务管理.
#开启(enable)禁用(disable)
salt '*' service.enable <service name>
salt '*' service.disabled <service name> #reload、restart、start、stop、status操作
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>
......
架构师成长之路5.2-Saltstack远程执行的更多相关文章
- 架构师成长之路3.1-Cobber原理及部署
点击返回架构师成长之路 架构师成长之路3.1-Cobber原理及部署 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理 ...
- 架构师成长之路5.7-Saltstack数据系统
点击架构师成长之路 架构师成长之路5.7-Saltstack数据系统 1. Saltstack的两种数据系统 Grains Pollars 2. Saltstack数据系统---Grains Grai ...
- 架构师成长之路5.6-Saltstack配置管理(jinja模板)
点击架构师成长之路 架构师成长之路5.6-Saltstack配置管理(jinja模板) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FU ...
- 架构师成长之路5.5-Saltstack配置管理(状态间关系)
点击架构师成长之路 架构师成长之路5.5-Saltstack配置管理(状态间关系) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要FUNC ...
- 架构师成长之路5.4-Saltstack配置管理(LAMP架构案例)
点击架构师成长之路 架构师成长之路5.4-Saltstack配置管理(LAMP架构案例) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要F ...
- 架构师成长之路5.3-Saltstack配置管理(State状态模块)
点击架构师成长之路 架构师成长之路5.3-Saltstack配置管理(State状态模块) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需要 ...
- 架构师成长之路5.1-Saltstack安装及入门
点击架构师成长之路 架构师成长之路5.1-Saltstack安装及入门 (安装.配置.启动) 配置管理工具: Pupper:1. 采用ruby编程语言:2. 安装环境相对较复杂:3.不支持远程执行,需 ...
- 架构师成长之路7.1 CDN理论
点击返回架构师成长之路 架构师成长之路7.1 CDN理论 CDN,Content Distribute Network,内容分发网络:CDN解决的是如何将数据快速可靠从源站传递到用户的问题.用户获取数 ...
- 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)
点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...
随机推荐
- 简述RAID 0 和RAID 1 及RAID 5
RAID 0 : 读.写速度提升 无容错能力 安全性差 最少磁盘数2.2+ 允许0块磁盘损坏 容量大 不建议企业使用 RAID 1 : 读速度提升 写速度略下降 有容错能力和安全性 允许有一块磁盘损坏 ...
- SpringCloud之Zuul过滤器实现登录鉴权实战(十一)
自定义zuul过滤器实现登录鉴权实战 1.新建filter包 2.新建类继承ZuulFilter,重写方法 3.在类顶部加注解@Comment让spring扫描 /** * @author WGR * ...
- 基于Mustache实现sql拼接
目录 一.前言 二.Mustache语法 三.Mustache拼接sql 一.前言 Mustache语法是一种模板语法,它可以帮我们拼接我们想要的东西.入职新公司,而项目里的sql语句就是用Musta ...
- kali linux 开启配置ssh服务
1. 一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修 ...
- 使用Windows Powershell卸载和安装Win10 原生应用的方法
新装的Win10带有大量的实际工作和生活中不怎么常用的APP,如果觉得这些APP占用磁盘空间或者想要卸载这些应用(APP),Win10下并不能使用Windows 应用管理器直接图形化地卸载这些应用,而 ...
- pymssql默认关闭自动模式开启事务行为浅析
使用Python采集SQL Server数据库服务器磁盘信息时,遇到了一个错误"CONFIG statement cannot be used inside a user transacti ...
- 安装requests遇到的坑
通过pip install requests命令安装,报错,提示“SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed”.百思不得其解,后 ...
- HTTPS加密流程理解
HTTPS加密流程 由于HTTP的内容在网络上实际是明文传输,并且也没有身份验证之类的安全措施,所以容易遭到挟持与攻击 HTTPS是通过SSL(安全套接层)和TLS(安全传输协议)的组合使用,加密TC ...
- Ansible之playbook拓展
一.handlers和notify结合使用触发条件 handlers同tasks是属同级,相当于一个特殊任务列表,这些任务同前文说的tasks里的任务没有本质的不同,用于当关注的资源发生变化时,才会采 ...
- 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】
目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...