saltstack简介

saltstack基于python开发的C/S架构的配置管理工具,分为服务器端salt-master和客户端salt-minion。并且支持浩称最快的ZeroMQ消息队列机制,服务器和客户端以daemon守护进程方式工作,监听端口号为4505和4506。
saltstack官网 saltstack帮助文档

saltstack安装

  • 添加saltstack的官方yum源:
    yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
  • 重建yum缓存:
    yum clean expire-cache
  • 服务器端安装:
    yum install -y salt-master --disablerepo base
  • 客户端安装:
    yum install -y salt-minion --disablerepo base

    由于原先base源里我配置的是阿里的源,其中也有salt包版本是2015.5.10-2,所以要安装最新的包就要从第一步中下载的salt-latest源中安装。

saltstack开机自启动及服务启动

  • 服务端:
    systemctl enable salt-master

    systemctl start salt-master
  • 客户端:
    systemctl enable salt-minion

    systemctl start salt-minion

saltstack基本命令

  • 命令语法格式:
    salt [options] '<target>' <function> [arguments]

    • salt:所有命令都以salt开头
    • option:参数,通常有:
      • -E,使用正则表达式匹配target
      • -L,使用列表方式匹配target
      • -N,使用分组方式匹配target
      • -I,使用pillar方式匹配target
      • -S,使用子网掩码方式匹配target
      • -G,使用grains方式匹配target
    • target:目标主机,所有主机用'*'
    • function:要自执行的python 模块.方法,如:cmd.run,test.ping
    • arguments:传递给function的参数.
  • 使用帮助信息
    • 列出所有可用模块
      salt '*' sys.list_modules
    • 查看模块所有功能
      salt '*' sys.list_functions
    • 查看模块用法
      salt '*' sys.doc function

服务端配置

  • pillar配置:
    默认情况下服务器端不需配置直接启动服务即可投入使用。一般情况下我们用到pillar的时候配置一下,因为pillar的信息存储在master上,pillar和grains都是saltstack的重要组件,作用是提供不同的维度来管理客户端。默认情况下,pillar需要一个pillar_roots来维护pillar的配置,默认pillar_roots的工作目录为:/srv/pillar,也可以自定义:

    cat /etc/salt/master
   pillar_roots:
base:
- /srv/salt/pillar

以上配置表明:pillar的工作目录为/srv/salt/pillar,在这个目录下可以创建一系列的sls文件,用以对客户端进逻辑分类或标识。pillar执行时需要一个top.sls的入口文件。

  • 同步pillar数据
    salt '*' saltutil.refresh_pillar
  • 获取全部数据
    salt '*' pillar.items
  • 获取指定数据
    salt '*' pillar.items 标识名
  • 配置文件管理配置

    主要用于配置文件分发。一般分为三个环境,基础环境,开发环境,生产环境,对应于master配置文件中配置如下:
	file_roots:
base:
- /srv/salt/base
dev:
- /srv/salt/dev
prod:
- /srv/salt/prod
  • nodegroups配置

    nodegroups用来对minion端进行分类成组,将具有相似特征的minion端划到一个组里去,方便实施策略和统一管理。
    cat /etc/salt/master找到nodegroups并编写信息。
   nodegroups:
group1: 'L@ha1,ha2'
group2: 'G@os:Debian and foo.domain.com'

客户端配置

  • 修改服务器端和客户端ID
    cat /etc/salt/minion分别找到如下行,修改相应信息。
master:<master主机名或IP地址>
id:<客户端主机名或IP地址>
  • grains配置

    grains的信息存储在minion端,主要用来标识minion端的信息,如这是一台httpd server或mysql等信息。master端可以用-G来检索出符合特定信息的minion端,方便实施不同的策略。
    cat /etc/salt/minion
   grains:
roles:
- httpd_1

saltstack常用模块函数介绍

  • test.ping用于测试连通性
  • cmd.run用于运行命令
  • cmd.script用于执行脚本
  • cp.get_file用于复制文件
  • cp.get_dir用于复制目录
  • pkg.install用于安装软件包
  • pkg.remove用于卸载软件包
  • file.append用于向文件追加内容

saltstack基础知识的更多相关文章

  1. ansible学习基础知识和模块(一)

    基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...

  2. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  3. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  4. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  5. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  8. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  9. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. form表单的提交方式

    开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单  <input type="submit"/> <!DOCTYPE htm ...

  2. jar包安装到本地仓库

    mvn install:install-file -Dfile=hm_test.jar -DgroupId=com.TEST -DartifactId=hm_test -Dversion=1.0 -D ...

  3. React文档(十二)组合vs继承

    React拥有很强大的组合模型,我们建议使用组合来替代继承来重利用组件之间的代码. 在本章节中,我们将讨论一些开发者经常触及继承的问题,并且我们该如何使用组合来解决这些问题. 组合 一些组件事先不知道 ...

  4. windows服务项目的 安装 卸载 查看

    安装服务:installutil.exe C:\a.exe卸载服务Installutil.exe /u C:\a.exe 查看服务状态 services.msc

  5. Web 安全漏洞之 XSS 攻击

    什么是 XSS 攻击 XSS(Cross-Site Scripting)又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.XSS是一种经常出现在 Web 应用程序中的计算机安全漏洞,是由于 ...

  6. 线程基础:多任务处理——MESI协议以及带来的问题:伪共享

    1.概述 本文和后续文章将着眼CPU的工作原理阐述伪共享的解决方法和volatile关键字的应用. 2.复习CPU工作原理2.1.CPU工作原理要清楚理解本文后续内容,就需要首先重新概述一下JVM的内 ...

  7. day062 中间件

    中间件:  作用: 介于request和response之间的一到处理过程,相对比较轻量级,并且在全局上改变django的输入与输出,因为改变的是全局,所以需要谨慎使用,用不好会影响到性能. 当用户发 ...

  8. n阶楼梯,一次走1,2,3步,求多少种不同走法

    ##已知n阶楼梯,一次可以迈1,2,3步.求所有走法## 如果要列出走法,时间复杂度太高,O(n)=2**n,前两个函数遍历走法.## 如果只是单纯列出走法数量,就简单多了,也但是很容易内存爆表. # ...

  9. Ajax实战(原生)

    /** 之前一直在学习ajax,也拿jQuery写了很多,感觉还是写原生的对基础的理论理解的深刻.特此书写. * 得到ajax对象 */ function getajaxHttp() { var xm ...

  10. .NET并行计算和并发7-Task异步

    使用任务并行库执行异步任务 下面的示例演示如何通过调用 TaskFactory.StartNew 方法来创建并使用 Task 对象. using System; using System.Thread ...