saltstack

salt教程1-理解saltstack

时光总嘲笑我的痴心妄想 提交于 2021-02-16 07:01:27
https://docs.saltstack.com/en/getstarted/system/index.html 1 基本介绍 通过观察它的实际运行,你可以大致理解salt如何工作。这意味着,在控制台上显示的数据之外,有很多东西是很难注意到的。这个部分的教程解释了salt如何工作,salt的子系统,salt的模块化架构使用,扩展salt以管理整个基础架构。 我们进入salt特定的组件之前,理解一点salt如何处理架构管理是很好的。 REAL-TIME COMMUNICATION实时通信 所有salt minion同时接受命令。这意味着升级10个或10000个系统,耗费的时间是十分相近的。数千系统的查询可以几秒之内完成。salt获取信息的方式是实时查询,而不是依赖于数据库。 NO FREELOADERS!没有空载 salt minions做自己的工作。来着salt master的通信是一个轻量级的指令,通常是:如果minion上有这些属性,使用这个命令和这个参数。当收到命令,salt minion决策是否和属性匹配。每个salt minion都把需要的所有命令存储在本地,所以命令可以被执行,并且结果很快返回到salt master。salt master不为minion做任何事。消息使用MessagePack进行高效序列化。在内部,salt使用Tornado 作为异步网络库。

自动化工具后起之秀Ansible的部署实践

ε祈祈猫儿з 提交于 2021-02-09 02:00:26
转载本文需注明出处:微信公众号EAWorld,违者必究。 从早期手动加脚本的部署方式,到后来自动化工具(chef, puppet, saltstack, ansible等)的出现,再到如今DevOps的盛行,企业应用部署正式进入平台部署阶段,CD(持续部署)已经成为企业对应用部署的标准需求,运维的交付也不再是以周或天为单位,而是以分钟为单位。 本文主要介绍自动化工具Ansible,及其在普元DevOps平台中的应用部署和日常应用部署中的实践。 本文目录: 一、如何选择合适的自动化工具? 二、Ansible架构图及工作流程 三、DevOps基于Jenkins+Ansible+GitLab的部署实践 四、Ansible日常应用部署实践 五、总结 一、如何选择合适的自动化工具? 面对众多的自动化工具(chef, puppet, saltstack, ansible等),我们该如何选择适合自己的呢?总的来说,无外乎从以下几点来权衡利弊。 活跃度(GitHub活跃度,社区活跃度) 学习成本 使用成本 编码语言 性能 各种开源的自动化工具在GitHub的关注度是其活跃度最直观的体现,从图中Contributors这一项就可以看出Ansible和SaltStack的开源项目贡献者远远多于其它几种自动化工具。越活跃的开源项目往往意味着更完善的功能和更高效的问题解决率。 Ansible

运维与自动化运维发展方向

不问归期 提交于 2021-02-08 12:29:14
1、运维自动化发展 运维学习和发展的一个线路: 1.搭建服务(部署并运行起来) 2.用好服务(监控、管理、优化) 3.自动化(服务直接的关联和协同工作) 4.产品设计(如何设计一个运维系统) -----当下云计算的核心竞争力是运维! 系统架构师(偏管理):网络 系统 数据库 开发 云计算 自动化 运维管理 服务管理 项目管理 测试 业务 -----专注于某一领域 2、运维自动化发展 运维工作内容分类: 监控运维(7x24运维值班、故障处理) 应用运维(业务熟悉、服务部署、业务部署、版本管理、灰度发布、应用监控) 安全运维(整体的安全方案、规范、漏洞检测、安全防护等) 系统运维(架构层面的分布式缓存、分布式文件系统、日志收集、环境规划(测试、开发、生产)、架构设计、性能优化) 基础服务运维(包含运维开发)(内部dns、负载均衡、系统监控、资产管理、运维平台) 基础设施运维(系统初始化、网络维护、负责设备上下架、巡检、报修、硬件监控) 3、运维自动化发展 标准化: 物理设备层面: 1.服务器标签化、设备负责人、设备采购详情、设备摆放标准 2.网络划分、远程控制卡、网卡端口 3.服务器机型、硬盘、内存统一。根基业务分类 4.资产命名规范、编号规范、类型规范 5.监控标准 操作系统层面: 1.操作系统版本 2.系统初始化(dns、ntp、内核参数调优、rsyslog、主机名规范) 3

saltstack工作日常使用汇总(六)

巧了我就是萌 提交于 2021-02-07 14:51:11
saltstack部署上就不用管了,后面基本是是在维护上用大量的时间了,耗费时间去逐一修改配置,不如好好研究下salt,用多了就都会喜欢上它的。 1、salt的常用使用整理如下: 基本上执行的脚本命令就都在/src/salt这个目录下,因为上面配置文件/etc/salt/file_roots.conf文件里有定义。 执行的两种方式: 可以直接执行脚本命令。后面跟的就是命令就可以。 把命令拷贝到客户端,然后在客户端是执行(拷贝通过filemanaged模块,执行用call命令)。 1、salt '*' test.ping 最基本的功能,看那些主机能连上(salt '3d-1-172.1.3.13' test.ping)。 2、salt "*" cmd.run "Wmic Path Win32_OperatingSystem get LastBootUptime|findstr /v "LastBootUpTime"" 查看主机的最后开机时间。 [root@vm63 ~]# salt "*" cmd.run "Wmic Path Win32_OperatingSystem get LastBootUptime|findstr /v "LastBootUpTime"" 3d-1-10.10.0.2: 20210128183339.739225+480 3d-2-10.10.0.25:

saltstack源码详解一

拥有回忆 提交于 2021-01-31 04:57:34
@(python之路)[saltstack源码详解一] saltstack源码详解 [TOC] 初识源码流程 环境准备: # 安装 yum install salt-ssh pip3 install salt-ssh # 命令 salt-ssh # 配置 /etc/salt/roster # 功能 salt-ssh "*" cmd.run "ls" 下面我们查看源码 入口 yum install salt-ssh 后,他就会把代码放到python中的lib中。他会触发这个脚本 from salt.scripts import salt_ssh if __name__ == '__main__': salt_ssh() 他会调用这里边的东西并执行。 解析 salt-ssh "*" cmd.run "ls" -i 命令 源码流程: 启动命令时python脚本 读取默认配置文件 obj = salt.clissh.SaltSSH() obj.run() 执行命令 obj = SSH(配置文件) obj.run() 创建进程间供享的队列;[] 读取配置文件中的主机,给每个符合条件的主机创建一个进程; host = next(target_iter) routine = MultiprocessingProcess(target=self.handle_routine,args=args)

saltstack数据系统之Grains Pillar

假如想象 提交于 2021-01-28 15:09:59
1、数据系统grains, 如果老板让你收集线上300台服务器的相关硬件信息,你是选选择用一台台登录,还是用salt,又或者使用python的api。 grains是saltstack的组件之一,用来收集minion客户端的底层信息(操作系统版本、ip地址、内存、cpu、磁盘、内核等系统属性), 在minion上收集的信息,可以作为master匹配目标 。 如果需要自定义grains,需要添加到minion的/etc/salt/grains(配置文件定义默认路径)。 minion的grains信息是在minion启动时采集汇报给master。grains是以key value 形式存放的数据库。 查看grains的命令用法: salt ‘*’ sys.doc grains 列出所有grains里的状态模块: salt '*' grains.ls 打印所有状态信息: salt ‘*’ grains.items (同上面状态模块的扩展信息) 列出每台的ip地址: salt '*' grains.item fqdn_ip4 (可自定义显示的内容) 列出每台的操作系统: salt '*' grains.item os #查看granins的命令用法: [root@beijin base]# salt '*' sys.doc grains grains.append: New in

如何通过 Saltstack pillar组件定义与被控主机相关的任何数据?

▼魔方 西西 提交于 2021-01-27 09:28:45
什么是pillar? pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板、state、API等。在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户id、组id、读写权限、程序包等信息,定义的规范是采用Python字典形式,即键/值,最上层的键一般为主机的id或组的名称。 pillar主配置文件定义 Saltstack默认将主控端配置文件中的所有数据都定义到pillar中,而对所有被控主机开放,可通过修改/etc/salt/master配置来定义是否开启或关闭这项功能。 [root@saltstack-master _grains]# vim /etc/salt/master pillar_opts: True [root@saltstack-master _grains]# /etc/init.d/salt-master restart Stopping salt-master daemon: [确定] Starting salt-master daemon: [确定] 修改后执行命令来观察效果: [root@saltstack-master

Elasticsearch +logstash +filebeat+redis+saltstack部署ELK日志平台

和自甴很熟 提交于 2021-01-21 12:48:21
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。 Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。 Filebeat隶属于Beats。目前Beats包含四种工具: Packetbeat(搜集网络流量数据) Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据) Filebeat(搜集文件数据) Winlogbeat(搜集

大数据集群的自动化运维实现思路

爱⌒轻易说出口 提交于 2021-01-07 23:46:50
| 作者简介 王晓伟 知数堂《大数据实战就业》课程讲师 六年大数据相关工作经验 清华大学软件工程硕士 曾就职于网易、搜狗等互联网企业 从事大数据及数据仓库的开发管理工作 拥有丰富的数据平台建设、 及Hadoop生态系统组件优化经验 | 王老师往期公开课及试听视频: 1、第1期课程刚结课 (正式课试听视频: https://pan.baidu.com/s/1yfgL5g7FGfjnhas1CtoAWA ) 2、往期公开课: 《大数据与Hadoop入门指引》 《轻松学习机器学习算法原理》 《时序数据库InfluxDB原理及应用初探》 本周四晚,欢迎来知数堂体验王晓伟老师的公开课 分享主题 :《 MySQL与数据仓库如何进行数据交互 》 分享时间 :2018年7月12日,20:30-22:00 微信扫码 、 戳下方链接, 或 “ 阅读原文” 报名预约吧 https://ke.qq.com/course/314213 摘 要 IT公司的数据平台是支撑大规模数据处理、数据决策支持的重要基础设施,随着大数据及人工智能技术的发展,大数据集群规模变得越来越大。然而,如何快速、高效的管理好成千上万台的大数据集群成为了很多大数据工程师的奋斗目标,设计实现合理的自动化运维系统将使大数据集群的管理事半功倍。 本文将从大数据集群面临的挑战、自动化运维系统的设计原则

saltstack批量管理文件和计划任务

微笑、不失礼 提交于 2021-01-07 08:52:49
简介 saltstack是由thomas Hatch于创建的一个开源项目,设计初衷是为了实现一个快速的远程执行系统。用来管理你的基础架构,可轻松管理成千上万台服务器。 关于saltstack更多功能本文不多介绍了,本文主要演示使用saltstack来管理服务器的文件(例如/etc/hosts,/etc/resolv.conf)和计划任务。 使用前情 在维护大量服务器的时候,系统一般初始化并上线以后,我们希望所有的服务器系统的某些配置文件一样,这时候我们需要一种工具来批量管理这些文件,保证配置文件的一致性,比如:/etc/resolv.conf这个文件。我们会希望这个文件不管在任何时候都是统一的。接下来我们就通过saltstack来演示这个功能 环境准备 你需自行安装好salt-master salt-minion,并且在master上能够使用test.ping模块检查到minion,如下所示 [root@saltmaster001 salt] salt 'qd01-stop-free002*' test.ping qd01-stop-free002: True 配置master 修改/etc/salt/master,添加如下 file_roots: base: - /srv/salt pillar_roots: base: - /srv/pillar pillar_opts: