saltstack自动化运维平台的介绍、部署、基本使用

saltstack:服务器基础架构集中化管理平台,有配置管理、远程执行、监控等功能,基于Python语言开发,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建,

优点(1.部署简单便捷;2支持的系统多样;3配置简单,功能强,扩展性好;4基于主从,用证书建立连接,安全性高;5支持API及自定义模块)

认证minion在启动时,会在/etc/salt/pki/minion自动生成minion.pem(private key)和minion.pub(public key) ,然后将minion.pub发给master服务端,master收到key后通过salt-key命令accept minion public key ,这样在master的/etc/salt//pki/master/minions下将会有minion id命名的key ,这时master可对minion发送指令。

  连接master服务端 服务默认监听端口4505 4506

4505为saltstack的消息发布系统

4506为saltstack客户端与服务端通信接口

通过lsof查看4505 会发现minion持续保持ESTABLISHED(已建立)状态

SaltStack

Salt类似Ansible,因为它也是基于CLI的工具,采用了推送方法实现客户端通信。它可以通过Git或通过程序包管理系统安装到主服务器和客户端上。客户端会向主服务器提出请求,请求在主服务器上得到接受后,就可以控制该客户端了。

Salt可以通过普通的SSH与客户端进行通信,但如果使用名为minion的客户端代理软件,可以大大增强可扩展性。此外,Salt含有一个异步文件服务器,可以为客户端加快文件服务速度,这完全是Salt注重高扩展性的一个体现。

  与Ansible一样,你可以直接通过CLI,向客户端发出命令,比如启动服务或安装程序包;你也可以使用名为state的YAML配置文件,处理比较复杂的任务。还有“pillar”,这些是放在集中地方的数据集,YAML配置文件可以在运行期间访问它们。

  你可以直接通过CLI,向客户端请求配置信息,比如内核版本或网络接口方面的详细信息。只要使用名为“grain”的库存元素,就可以描述客户端;这样一来,管理员可以轻松向某一种类型的服务器发出命令,不需要依赖已配置群组。比如说,只要使用一个CLI命令,你就可以向运行某个内核版本的每个客户端发送命令。

  与Puppet、Chef和Ansible一样,Salt也提供了大量的模块,以处理特定的软件、操作系统和云服务。自定义模块可以用Python或PyDSL来编写。除了Unix管理外,Salt的确提供Windows管理功能,但它还是更擅长管理Unix和Linux系统。

Salt的Web用户界面Halite非常新,功能不如其他系统的Web用户界面来得全面。它提供了事件日志和客户端状态的视图,能够在客户端上运行命令,但除此之外乏善可陈。

Salt的最大优点在于可扩展性和弹性。你可以有多个级别的主服务器。上游主服务器可以控制下游主服务器及其客户端。另一个优点在于对等系统,让客户端可以向主服务器提出问题,然后主服务器从其他服务器得到答案,提供全面信息。如果需要在实时数据库中查询数据,以便完成客户端的配置,这个优点就很方便。

部署环境

实验环境:

IP地址 角色 环境
10.0.0.30 master
centos7.3

10.0.040
minion

centos7.3
10.0.0.50 minion centos7.3

设置环境

修改主机名

hostnamectl set-hostname dlp.linuxwang.cn
hostnamectl set-hostname node01.linuxwang.cn
hostnamectl set-hostname node02.linuxwang.cn

在所有主机添加本地解析

[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.30    dlp.linuxwang.cn
10.0.0.40    node01.linuxwang.cn
10.0.0.50    node02.linuxwang.cn

SaltStack的通信模式总共分为2种模式:ZeroMQ、REAT,鉴于REAT目前还不是太稳定,我们选择ZeroMQ模式,本次安装采用源码安装的方式

在master配置(10.0.0.30)

yum -y install epel-release
yum -y install salt-master
for i in enable restart status; do systemctl $i salt-master;done
netstat -utpln |grep -e 4505 -e 4506

tcp        0      0 0.0.0.0:4505            0.0.0.0:*               LISTEN      17452/python        
   tcp        0      0 0.0.0.0:4506            0.0.0.0:*               LISTEN      17470/python

在minion配置(10.0.0.40-50)

yum -y install epel-release
yum -y install salt-minion
ping dlp
vi /etc/salt/minion
master: dlp.linuxwang.cn  ##修改16行,指定master
:wq
for i in enable restart status;do systemctl $i salt-minion;done

授权

salt-key -L 查看当前的salt key信息

[[email protected] ~]# salt-key -L
       Accepted Keys:
       node01.linuxfan.cn
       node02.linuxfan.cn
       Denied Keys:
       Unaccepted Keys:
       Rejected Keys:
salt-key -A

[[email protected] ~]# salt-key -A
       The following keys are going to be accepted:
       Unaccepted Keys:
       node01.linuxwang.cn
       node02.linuxwang.cn
       Proceed? [n/Y] Y  
       Key for minion node01.linuxwang.cn accepted.
       Key for minion node02.linuxwang.cn accepted.

授权成功可进行远程操作

测试被控主机的连通性

# salt ‘*‘ test.ping

[[email protected] ~]# salt "*" test.ping
   node01.linuxwang.cn:
    True
   node02.linuxwang.cn:

这时开始涉及我们的saltstack模块的使用, 由一个一个的模块对我们的远程的主机进行操作。

模块介绍

Archive模块:实现系统层面的压缩包调用,支持 gunzip、gzip、rar、tar、unzip等
           
cmd模块  :实现远程命令行调用执行(默认具备root权限)
        
cp模块    :实现远程文件、目录的复制,以及下载URL文件等操作 
         
cron模块  :实现被控主机的crontab计划任务操作
          

dnsutil模块:实现被控主机通过DNS相关操作
file模块:被控主机文件常见操作,包括文件读写、权限、查找、校验等
iptables模块:被控主机Iptables支持
network模块:返回被控主机网络信息
pkg包管理:被控主机程序包管理,如 yum 、apt-get等
service服务模块:被控主机程序包管理服务
时间: 2024-11-10 06:55:31

saltstack自动化运维平台的介绍、部署、基本使用的相关文章

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

2015年5月9日公开课第二季—《自动化运维平台的设计理念》

朋友们,随着我们上期公开课的成功举办,马哥linux运维为了给大家分享更多的干货,我们将于2015年5月9日进行公开课第二季,本季公开课将由magedu-comyn老师为大家进行分享! 运维即将迈入2.0时代,越来越追求平台化,自动化,工具化等多元化的整合,相应的,对运维的要求在慢慢的提升,知名互联网公司中,devops已经成为一种新趋势,新的职业,在未来的运维职业中,自动化运维程度要求将会更高,comyn大神的运维自动化框架,已经成熟的运用于多家互联网公司中,标准化流程化自动化,极大的提高了运

Saltstack自动化运维工具 实战与部署

自动化工具比较 Puppet也许是四款工具中最深入人心的.就可用操作.模块和用户界面而言,它是最全面的.Puppet呈现了数据中心协调的全貌,几乎涵盖每一个运行系统,为各大操作系统提供了深入的工具.初始设置比较简单,只需要在需要加以管理的每个系统上安装主服务器和客户端代理软件.命令行接口(CLI)简单直观,允许通过puppet命令下载和安装模块.然后,需要对配置文件进行更改,好让模块适合所需的任务;应接到指令的客户端与主服务器联系时,会更改配置文件,或者客户端通过立即触发更改配置文件的推送(pu

OMserver自动化运维平台搭建及测试

本文基于<Python自动化运维  技术与最佳实践>第十三章内容"从零开始打造B/S自动化运维平台". 参考链接为作者刘天斯个人博客: https://blog.liuts.com/post/245/ https://blog.liuts.com/post/246/ https://github.com/yorkoliu/pyauto 平台简介:OMServer是本平台的名称.OMServer实现了一个集中式的Linux集群管理基础平台,提供了模块扩展的支持,可以随意添加集

从零打造B/S 自动化运维平台 &nbsp; (一、自动化运维平台的应用及业务流程)

背景以及需求: 随着企业业务的不断发展,运营方面,如何保障业务的高可用及服务质量?很多企业处于"半自动化"状态,一但出现故障,技术部人员都会加入"救火"的行列,不仅浪费人力物力,而且使业务出现一段"停运时间",给公司造成一定的损失. 解决方案: 如果要解决以上问题,就需要构建一个高效的运营模式. 要构建一个高效的运营系统,可以从以下几方面放手: 1)制定符合企业特点的 IT 制度 2)流程规范 3)质量与成本管理 4)运营效率建设 接下来我们就开

MySQL自动化运维平台建设

MySQL自动化运维工具Inception 一.Inception简介 Inception是集审核.执行.回滚于一体的一个自动化运维系统,它是根据MySQL代码修改过来的,用它可以很明确的,详细的,准确的审核MySQL的SQL语句,它的工作模式和MySQL完全相同,可以直接使用MySQL客户端来连接,但不需要验证权限,它相对应用程序(上层审核流程系统等)而言,是一个服务器,在连接时需要指定服务器地址及Inception服务器的端口即可,而它相对要审核或执行的语句所对应的线上MySQL服务器来说,

Saltstack 自动化运维工具详细介绍

Saltstack 简介 什么是saltstack ? Saltstack是基于python开发的一套C/S架构配置管理工具 ? 使用SSL证书签方的方式进行认证管理 ? 底层使用ZeroMQ消息队列pub/sub方式通信 – 号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各种操作 – 采用RSA Key方式确认身 主要功能 ? Saltstack最主要的两个功能是:配置管理与远程执行 ? Saltstack不只是一个配置管理工具,还是一个云计算与数据中心架构编排的利器 ? S

[转载] 运维平台规划体系全介绍

原文: http://www.infoq.com/cn/articles/operation-platform-planning-introduction 很多观点我都比较赞同, 特别是工作流引擎+运维可视化的观点 识别运维平台的边界在哪儿,才能更好地构建平台,从而协助运维的日常工作. 在之前的文章中,谈到过“运维的本质——可视化”,在可视化的篇幅中,着重介绍自动化的可视化和数据的可视化:在后续的篇章中又介绍了“互联网运维的价值体系”,里面分解了几个维度:质量.成本.效率.安全等.以上都是为了清

BAT解密:互联网技术发展之路(10)- 运维平台技术

备注:本来想自己写一篇运维体系的文章的,但毕竟不是专业运维人员出身,担心讲的太肤浅,因此转载我的好朋友王金银(江湖人称老王)同学发表在InfoQ的运维体系介绍.老王的牛逼相信很多同学已经领教过了,全球运维技术大会深圳站一个人专场讲运维能讲3个小时,而且会场还爆满,更多老王的介绍可以参考文章的最后,也可以关注老王的微信公众号:互联网运维杂谈. 原文链接:运维平台规划体系全介绍 =============================================================