1.帮助文档

以cmd函数为例子说下salt中的一些帮助信息

# 查看指定modules用法
salt '*' sys.doc cmd # 查看所有的modules列表
salt '*' sys.list_modules # 查看模块下的方法
salt '*' sys.list_functions cmd # 查看所有states列表
salt '*' sys.list_state_modules # 查看指定state的所有functions
salt '*' sys.list_state_functions # 查看指定states的用法
salt '*' sys.state_doc cmd # 查看指定states指定function用法
salt '*' sys.state_doc cmd.run

2.准备工作

一台master(192.168.111.128)

两台minion(192.168.111.129,192.168.111.133)

minion需要配置/etc/salt/minion中的id(为minion ID)和master(设置为master地址)

1.加入认证列表

[root@master salt]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Centos
Ubuntu
Rejected Keys:
[root@master salt]# salt-key -A -y
The following keys are going to be accepted:
Unaccepted Keys:
Centos
Ubuntu
Key for minion Centos accepted.
Key for minion Ubuntu accepted.

2.测试是否可以远程操作

[root@master salt]# salt '*' test.ping # 测试服务器是否联通
Centos:
True
Ubuntu:
True

2.state.sls文件入门

salt默认的管理目录为/srv/salt,在这里我们改为了/base/salt(在master的/etc/salt/master中修改file_roots)

看下/base/salt中的文件结构

├── foo.conf  # 配置文件(需要下发到minion)
├── one
│   └── init.sls
├── three
│   └── init.sls
├── top.sls
└── tow
└── init.sls

在看下各个文件里的内容

[root@master salt]# cat top.sls
base: # base环境
'*':
- one # 执行one.sls或者one下的init.sls
'Centos':
- tow # 执行tow.;sls或者tow下的init.sls
'Ubuntu':
- three # 执行three.sls或者three下的init.sls
[root@master salt]# cat one/init.sls
/tmp/foo.conf: # 如果为指定name参数,这name的参数为这个
file.managed: # 上传文件
- source: salt://foo.conf # 源地址为/base/salt下(salt://表示在master配置文件中配置的地址)
- user: root
- group: root
- mode: 777
#- name: /tmp/foo.conf # 或在这里定义name并赋值
[root@master salt]# cat tow/init.sls
show_ip:
cmd.run: # 远程执行命令的函数
- name: ifconfig
[root@master salt]# cat three/init.sls
show_file:
cmd.run:
- name: cat /tmp/foo.conf
[root@master salt]#

3.关于sls文件的说明

一,普通的state文件说明:

  1.state文件的编写时YAML语法(后面会介绍YAML的具体规则)

  2.文件的执行使用state.sls

salt '*' state.sls one  # 默认找到/base/salt下的one.sls,如果没有找one/init.sls,如果在没有则报错

二,top.sls文件说明:

  1.top.sls文件不是必须的。

  2.top.sls入口文件可以同时对多台机器进行一个简单的配置管理。

  3.运行top.sls文件使用state.highstate。

salt '*' state.highstate

4.执行结果处理(redis)

Teturn是在Master端触发任务,然后Minion接受处理任务后直接与Return存储服务器建立连接

Return组件可以理解为salt的执行结果返回存储或者返回给其他程序,可以对salt的操作进行记录。

查看所有的Return列表

salt '*' sys.list_returners

下面我来演示下把执行结果返回到redis中

一,环境配置

  1.在所有的minion端安装pip,通过pip安装python的redis模块。

  2.所有的minion端配置文件中添加以下内容(Return 数据库信息)

redis.db: '0'
redis.host: '127.0.0.1' # 这里的主机为192.168.111.131
redis.port: 6379

二,安装redis并配置

  3.在192.168.111.129上用yum安装redis数据库,并配置redis地址

yum install redis
sed -i -e 's@^bind 127.0.0.1@bind 192.168.111.129@g' /etc/redis.conf

三,信息的查看

  4.在redis上查看信息

redis-cli -h 192.168.111.129 monitor  # 动态查看数据库信息
redis-cli -h 192.168.111.129 # 连接数据库查询

四,执行命令

[root@master jobs]# salt '*' test.ping
Centos:
True
Ubuntu:
True
# 此时去redis服务器就可以查看job的信息了。

4.Job管理

在salt里执行任何一个操作都会在master上产生一个jid号,minion端在/var/cache/salt/minion/proc目录下创建一个以jid号码为名称的文件,文件内是此次操作的记录,操作处理完成后改文件会自动删除。而master端会记录每次操作的详细信息,这个记录保存到/var/cache/salt/master/jobs目录下两位16进制数组成的目录名下。

一,salt-run jobs管理

下面列除salt-run中jobs的用法:

[root@master jobs]# salt-run -d | grep jobs
'jobs.active:' # 查看正在运行的jobs
Return a report on all actively running jobs from a job id centric
salt-run jobs.active
'jobs.list_job:' # 指定jid查看jobs详细信息
salt-run jobs.list_job 20130916125524463507
'jobs.list_jobs:' # 查看所有jobs信息
List all detectable jobs and associated functions
salt-run jobs.list_jobs
'jobs.lookup_jid:' # 指定jid查询jobs结果
salt-run jobs.lookup_jid 20130916125524463507
salt-run jobs.lookup_jid 20130916125524463507 outputter=highstate
'jobs.print_job:' # 指定jid查询jobs详细信息
salt-run jobs.print_job 20130916125524463507

二,通过saltutil模块管理job

salt-run不支持kill某个job,所有使用saltutil模块管理job

先来看看saltutil模块的使用:

[root@master jobs]# salt \* sys.doc saltutil | grep job
'saltutil.find_cached_job:' # 查询job cache信息
Return the data for a specific cached job id
salt '*' saltutil.find_cached_job <job id>
'saltutil.find_job:' # 指定jid查看job信息
Return the data for a specific job id
salt '*' saltutil.find_job <job id>
'saltutil.kill_job:' # 杀掉job(发送SIGTERM 9信号方式)
Sends a kill signal (SIGKILL 9) to the named salt job's process
salt '*' saltutil.kill_job <job id>
salt '*' saltutil.runner jobs.list_jobs
'saltutil.signal_job:' # 发送指定信号
Sends a signal to the named salt job's process
salt '*' saltutil.signal_job <job id> 15
'saltutil.term_job:' # 删掉job(发送SIGTERM 15信号方式)
Sends a termination signal (SIGTERM 15) to the named salt job's process
salt '*' saltutil.term_job <job id>

salt基本使用之一(1)的更多相关文章

  1. C# salt+hash 加密

    一.先明确几个基本概念 1.伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的算法来产生的.伪随机数并不是假随机 数,这里的" ...

  2. 密码学应用(DES,AES, MD5, SHA1, RSA, Salt, Pkcs8)

    目录 一.数据加密标准 - Data Encryption Standard(DES) 二.高级加密标准 - Advanced Encryption Standard(AES) 三.消息摘要算法第五版 ...

  3. salt源码安装软件和yum安装软件

    上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...

  4. Salt安装(yum不可用时)

        salt-master安装   [salt-master]# yum install salt-master   或者 curl -L http://bootstrap.saltstack.o ...

  5. Salt 安装方式(CentOS)

    安装前必备环境:2.6.6<Pythin<3.x 本文内容是参考 中国SaltStack用户组 里面 Salt中文手册 中的安装内容实践之后总结的. 初学者可用Ubuntu系统学习安装,因 ...

  6. 翻译-Salt与Ansible全方位比较

    原文链接:http://jensrantil.github.io/salt-vs-ansible.html 作者: Jens Rantil 之前某些时候我需要评估配置管理系统.结合从他人得到的意见,我 ...

  7. salt基本原理

            转载自: 来自:http://tech.mainwise.cn/?p=438     说明:salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器 ...

  8. ecshop 重置后台密码 MD5+salt

    ecshop密码加密方式: MD5 32位+salt,简单来说就是明文密码用MD5加密一次,然后在得到的MD5字符后边加上salt字段值(salt值为系统随机生成,生成以后不再改变)再进行一次MD5加 ...

  9. salt stack 工具之一——远程命令

    salt stack 远程命令 salt stack是一种自动化的运维工具,可以同时对N台服务器进行配置管理.远程命令执行等操作. salt stack分为两个部分: salt-master,部署在控 ...

  10. saltstack/salt的state.sls的使用

    SLS(代表SaLt State文件)是Salt State系统的核心.SLS描述了系统的目标状态,由格式简单的数据构成.这经常被称作配置管理 首先,在master上面定义salt的主目录,默认是在/ ...

随机推荐

  1. vue 手机端开发 小商铺 添加购物车 以及结算 功能

    这个功能绕了我一天!!!            对 就是这个功能  一系列相关联的  四处相关联 现在加班 没时间更 过两天在更

  2. 流程控制语句(MySQL/MariaDB )

    本文目录:1.BEGIN...END2.true和false3.if结构4.case结构5.loop.leave和iterate6.repeat循环7.while循环 MySQL/MariaDB中的符 ...

  3. WIN10系统触摸板快捷键

    快捷的手势操作,有时候会让人脱离鼠标,只要不是非用不可的情况,基本上这些常用手势就能让我们摆脱鼠标携带不便或者桌子地方小的烦恼.iOS上的快捷手势很是受欢迎,win10上却鲜有人知晓,尤其是非开发人员 ...

  4. R语言-离职率分析

    案例:员工流失是困扰企业的关键因素之一,在这次的分析中我将分析以下内容: 对一些重要变量进行可视化及探索分析,收入,晋升,满意度,绩效,是否加班等方面进行单变量分析 分析员工流失的因素,探索各个变量的 ...

  5. 阿里云API网关(11)API的三种安全认证方式

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  6. Vue全家桶

    简介 “简单却不失优雅,小巧而不乏大匠”. Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进式框架.它是以数据驱动和组件化的思想构建的,采用自底向上增量开发的设计. 为什么 ...

  7. 排序技巧——双关键字排序(快速排序,sort)

    一个萌新的成长之路 Background 在做题过程中,我们常会遇到对双关键字排序的情况,如:当分数相等时,序号小的在前. 这时我们可以通过定义cmp函数作为sort的参数进行排序. Solution ...

  8. python之集合,深浅copy

    一. 集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...

  9. .net core页面使用layui的HtmlHelper扩展

    Vino.Core.Extensions.Layui 如果您的.net core 2.0项目使用layui来渲染表单,那么您可以尝试使用这个扩展库可以帮你减少代码和工作量. 项目地址:https:// ...

  10. JVM 性能调优监控工具

    声明:本文转自<https://www.cnblogs.com/anxiao/p/6796644.html?utm_source=itdadao&utm_medium=referral& ...