saltstack基础知识
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基础知识的更多相关文章
- ansible学习基础知识和模块(一)
基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
随机推荐
- servelet基础
1.1 servlet简介 Java Servlet 是运行在 Web 服务器或应用服务器上的程序.她是一个浏览器和服务器之间的中间层.程序员开发程序,实现servlet的接口.S ...
- Importing Maven projects' has encountered a problem
导入项目是报错,这个是maven问题--Importing Maven projects' has encountered a problem ---------------------------- ...
- java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
Text的包导错了 不是:import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text; 而是:import ...
- 批量压缩 css js 文件 包含多个文件 自动识别
注意事项 css 注释压缩不会造成影响 因为是块注释 当然也可以选择去注释压缩 js 带注释压缩 要注意注意 注意 //行注释会造成 压缩后的代码在一行 导致注释后的代码都失效 ...
- Android开发 ---基本UI组件8:九宫格布局、setOnItemClickListener()项被选中监听事件
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- web 页面上纯js实现按钮倒计数功能(实时计时器也可以)
需求构思:本功能想实现的是,一个按钮在页面载入就显示提醒续费,,,倒数60秒后,完成提醒功能,可以按另外一个页面跳转到主页. 参考网上的大神,实现如下:Button2倒数,Button3跳转,在页面上 ...
- Ubuntu16.04+CUDA8.0+cuDNN5.1+Python2.7+TensorFlow1.2.0环境搭建
软件版本说明:我选的Linux系统是Ubuntu16.04,CUDA用的8.0,Ubuntu16.04+CUDA8.0+cuDNN5.1+Python2.7只支持TensorFlow1.3.0以下的版 ...
- sql循环查询树形结构
pid:父类别id ' connect by prior pid = id --查询父祖类别 union ' connect by prior id = pid;--查询子孙类别 这样查询出选中id ...
- mysql中外键的创建与删除
外键的创建 方法1:创建表的时候设置(外键名随机生成) 1.前提条件,必须要有一个主表,这里设为persons 2.主表中必须设置主键字段primary key,这里设为id_p //创建数据库dat ...
- VS使用Nuget教程详解 Visual studio 安装第三方的组件库
首先说明Nuget是什么呢?它的官方是:https://www.nuget.org/ 官方主页的介绍如下: What is NuGet? NuGet is the package manager fo ...