saltstack——自动运维编排工具

简介

Salt是一个基础平台管理工具,基于 python 语言开发。SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。master监听4505和4506端口,4505为master和minion认证通信端口,4506为master用来发送命令或者接收minion的命令执行返回信息。

saltstack 介绍:

1、轻量级管理工具,批量执行命令;

2、常用模板:

pkg:包,有增删更新;
file:用于管理文件,包括同步文件、设置文件权限和所属用户组、删除文件等操作;
cmd:在 minion 上执行命令或者脚本;
user:管理系统账户操作;
service:管理系统服务操作;
cron:管理 crontab任务
3、saltstack 数据系统:

Grains(静态数据);
pillar(动态数据);
4、三大功能:
(1)远程执行
(2)配置管理
(3)云管理

重要组件:

(1)grains:

grains 是在 minion(客户端)启动时收集到的一些信息,比如操作系统类型、网卡ip等静态信息。
grains 的信息并不是动态的,并不会时时变更,它只是在 minion 启动时收集到的。
(2)pillar:

pillar 和 grains 不一样,是在 master 上定义的,并且是针对 minion 定义的一些信息。像一些比较重要的数据(密码)可以存在 pillar 里,还可以定义变量等。
(3)state:

是 saltstack 的最核心的功能,通过预先指定好的 sls 文件对 被控主机进行管理(包括:包、网络配置、系统服务、系统用户 等)

工作原理:

SaltStack 客户端(Minion)在启动时,会自动生成一套密钥,包含私钥和公钥。之后将公钥发送给服务器端,服务器端验证并接受公钥,以此来建立可靠且加密的通信连接。同时通过消息队列 ZeroMQ 在客户端与服务端之间建立消息发布连接。

1、Minion 是 SaltStack 需要管理的客户端安装组件,会主动去连接 Master 端,并从 Master 端得到资源状态信息,同步资源管理信息。
2、Master 作为控制中心运行在主机服务器上,负责 Salt 命令运行和资源状态的管理,Master 上执行某条指令通过队列下发到各个 Minions 去执行,并返回结果。
3、ZeroMQ 是一款开源的消息队列软件,用于在 Minion 端与 Master 端建立系统通信桥梁。

与ansible区别:

1、管理配置讲究的是更快更稳
ansible基于SSH协议传输数据;Saltstack使用消息队列zeroMQ传输数据,速度更快,是ssh的40倍。
2、ansible安装部署过程特别简单,saltstack要部署 minion 端较为不便。

实操——批量安装 Apache服务


1、修改主机名

修改主机名:
[[email protected] ~]# hostnamectl set-hostname master.saltstack.com
[[email protected] ~]# hostnamectl set-hostname web01.saltstack.com
[[email protected] ~]#  hostnamectl set-hostname web02.saltstack.com

修改 /etc/hosts文件(用scp远程复制,三台主机都一样):
vim /etc/hosts
192.168.220.131 master.saltstack.com
192.168.220.140 web01.saltstack.com
192.168.220.136 web02.saltstack.com

关闭防火墙:
systemctl stop firewalld.service
setenforce 0

分别为三台主机添加epel源:
yum install -y epel-release

2、安装 saltstack:

1、master上安装:
yum install -y salt-master

2、被管理端(minion)上安装:
yum install -y salt-minion

3、配置 master主机:

vim  /etc/salt/master 

interface: 192.168.220.131   //修改监听地址(master的地址)
auto_accept: True            //修改为true,避免要运行salt-key来确定证书认证

file_roots:                  //开启saltstack文件根目录位置,此目录需要自己创建
   base:
     - /srv/salt

nodegroups:                  //开启、设置组分类
   group1: ‘web01.saltstack.com‘
   group2: ‘web02.saltstack.com‘

pillar_opts: True            //开启pillar功能,同步文件功能

pillar_roots:                //开启pillar主目录,这个也需要自己创建
   base:
     - /srv/pillar


4、开启服务:

[[email protected] ~]# systemctl start salt-master.service
[[email protected] ~]# netstat -napt | egrep ‘4506|4505‘
tcp        0      0 192.168.220.131:4505    0.0.0.0:*               LISTEN      68112/python
tcp        0      0 192.168.220.131:4506    0.0.0.0:*               LISTEN      68136/python 

(5)配置 minino 端:

vim  /etc/salt/minino
第一台:
master: 192.168.220.131        //第16行,指定主控端IP地址
id: web01.saltstack.com        //第78行,指定被控制端的主机名
第二台:
master: 192.168.220.131
id: web02.saltstack.com 

systemctl start salt-minion.service   //开启服务

(6)在主控端测试与被控端的通信状态

[[email protected] ~]# salt ‘*‘ test.ping   //查看通信状态
web01.saltstack.com:
    True
[[email protected] ~]# salt ‘*‘ test.ping
web01.saltstack.com:
    True
web02.saltstack.com:
    True

salt ‘*‘ cmd.run ‘df -h‘      //查看所有被管理段的挂载情况

[[email protected] ~]# salt-key      //查看在master上已经被接受过的客户端
Accepted Keys:
web01.saltstack.com
web02.saltstack.com
Denied Keys:
Unaccepted Keys:
Rejected Keys:

查看被监控主机上grains所有值(每次minino在启动时都会获取客户端信息):
salt ‘web01.saltstack.com‘ grains.items (静态数据)
salt ‘web01.saltstack.com‘ pillar.items (动态数据)

(7)开始批量安装Apache服务:
下面演示的是远程通过 yum 安装 Apache :

mkdir /srv/salt

vim /srv/salt/top.sls
base:
  ‘*‘:
    - apache
//注意:‘*‘,则表示在所有的客户端执行 apache 模块。

vim /srv/salt/apache.sls
apache-service:
  pkg.installed:
    - names:                // 如果只有一个服务,那么就可以写成 – name: httpd 不用再换一行
      - httpd
      - httpd-devel
  service.running:
    - name: httpd
    - enable: True
//注意:apache-service 是自定义的 id 名。pkg.installed 为包安装函数,下面是要安装的包的名字。service.running 也是一个函数,来保证指定的服务启动,enable 表示开机启动。


systemctl restart salt-master    //重启服务
salt ‘*‘ state.highstate         //执行刷新state配置命令



接下来,去两台 minino上验证一下 httpd是否安装成功:

原文地址:https://blog.51cto.com/14475593/2469056

时间: 2024-11-06 11:26:29

saltstack——自动运维编排工具的相关文章

Linux自动运维工具Ansible的使用

Linux自动运维工具Ansible的使用 我们熟悉这个工具后, 可以很轻松的安装k8s. 一.介绍 ansible - run a task on a target host(s) Ansible是一个用Python开发的运维工具, 可以在本地让远程主机执行命令, 项目地址: Github源码, 中文文档 二.安装 简单上阵, 我们的主机都是ubuntu, 请使用root用户: sudo su apt install ansible ansible --version 配置文件: ls /et

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

saltstack 自动化运维安装

saltstack --自动化运维 saltstack-master 安装:yum -y install salt-mastersaltstack-master配置:如下图,修改 salt-master本身监听地址sed -i 's/#interface: 0.0.0.0/interface: 192.168.1.26/g' /etc/salt/mastersed -e '/^$/d;/^#/d' /etc/salt/master #查看配置 可以在master 端使用自动认证(可选)vim /

基于开源打造智能云上自动运维

自动化能自动化的一切 然后介绍了使用Terraform和Packer开源工具完成云上自动运维的具体实现过程 云上自动化资源架构和变更实践 https://yq.aliyun.com/articles/218891?spm=5176.100239.blogcont159008.36.Vzs09S 如何用开源工具进行Multi-Cloud的自动化资源架构和变更? DevOps和基础设施自动化 据数据统计,在2015年DevOps的被采纳率是66%,而到了2016年就达到了74%,在这短短的一年间增加

写了一款自动运维监控工具

AisinGioro 是一款自动运维监控工具,用于监控主机性能参数(心跳.CPU.内存.硬盘.网站连接数).网络连通性(Ping.Port.Http).监控异常通知,基于B/S架构,主要技术 .Net/C#, SignalR, OWIN, AngularJs, Bootstrap,欢迎下载使用,或进行二次开发. 开发环境 Visual Studio 2015, .Net Framework 4.6.1 项目分支介绍 AisinGiroro.Core 基础库 C# Library AisinGio

自动运维模块批量监控linux主机

1.修改linux agent解压即用包用解压缩软件打开zabbix_linux_agent.zip并进入到以下目录: 右键install_zabbix_linux_agent.sh 选择 在记事本打开,在参数区找到Agent_Server参数,并且值改为zabbix服务器的地址.结果如下图: 保存并更新到压缩包中: 2.自动运维模块添加主机管理操作步骤:自动运维->主机管理->新增信息填写:分组名:Linux ,主机名:192.168.1.10 ,IP:192.168.1.10 ,操作系统:

自动运维工具 -saltstack安装使用(实例演示!!!)

saltstack概述 在生产环境中,服务器往往不止一两台,一般都是成千上万台服务器.这对运维人员来说管理难度太大了,而saltstack是一个新的基础平台管理工具,可以支持管理上万台服务器规模,数秒钟即可完成数据传递,是现在用的比较多的自动化运维工具之一. Salt是一个基础平台管理工具.SaltStack采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.master监听4505和4506端口

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

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

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

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