对SaltStack进一步了解(基本使用)

执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。

# salt ‘*‘ sys.doc disk

1、执行命令时,查找minion目标(targeting)常用有三种方式:

salt ‘shell 正则’ 命令
例:# salt ‘host*‘ cmd.run ‘df -h‘  #我们主机ID是host加数字的
salt –E ‘perl 正则’  命令         #--pcre,不会perl语言,也不举例了
salt –N group 命令          #--nodegroup,前提已经做好分组
例:# salt -N web cmd.run ‘df -h‘
salt –L ‘host1,host2’ 命令               #--list
例:# salt -L ‘host1,host2‘ cmd.run ‘df -h‘
salt –G ‘os.ubuntu’ 命令        #--grains

grains是什么?

grains是minion启动时采集服务器系统信息,如硬盘、CPU、内存、网卡等一些静态的数据。

grains相关命令:

列出grains相关模块

# salt ‘*‘ grains.ls

列出minion采集的grains静态数据

# salt ‘*‘ grains.items

列出某个grains信息

# salt ‘*‘ grains.item os

对grains有了初步了解,现在会用salt –G命令了吧!

# salt -G ‘os.Ubuntu‘ test.ping

2、nodegroup(minion分组)

# vi /etc/salt/master   #不用重启salt服务,修改后即生效
nodegroups:
  web: ‘host1‘
  db: ‘host2‘
  
#测试分组后效果
# salt -N db test.ping
host2:
   True
   
# salt -N web test.ping
host1:
True

3、state(状态管理)

要想启用配置管理功能,首先要对受控端进行设置,让minion以root用户接受主空端管理指令:

# vi /etc/salt/minion
user: root
开启主控端配置管理功能:
# vi /etc/salt/master
file_roots:
  base:
    - /srv/salt/               #默认存放管理指令和文件位置

手动创建目录和默认入口配置文件(top.sls)

# mkdir /srv/salt

# vi /srv/salt/top.sls   #使用YAML语言格式定义
base:                  #默认的起点配置
 ‘*‘:                  #匹配所有在线minion,指定组直接写组名
- web.httpd      #web是默认/srv/salt下目录,http是state文件名字,以sls结尾

# vi /srv/salt/web/httpd.sls              #创建目录或文件名根据自己情况定义
httpd:                #说明
 pkg:               #包管理
    -name: apache2               #包名称
- installed          #包的状态,卸载是removed

注意:缩进是2个空格,冒号后门一个空格

# salt ‘*‘ state.highstate          #执行state命令
host1:
----------
         ID: httpd
   Function: pkg.installed
       Name: apache2
     Result: True
    Comment: The following packages were installed/updated: apache2.
    Started: 11:30:40.994840
   Duration: 103211.119 ms
    Changes:  
                            省略.....
Summary
------------
Succeeded: 1 (changed=1)
Failed:   0
------------
Total states run:     1
host2:
----------
         ID: httpd
   Function: pkg.installed
       Name: apache2
     Result: True
    Comment: The following packages were installed/updated: apache2.
    Started: 11:30:41.458100
   Duration: 122426.802 ms
    Changes:  
                 省略.....
Summary
------------
Succeeded: 1 (changed=1)
Failed:   0
------------
Total states run:     1

apache已安装完毕并启动,然后将修改后的配置文件推送到minion(apache服务器),配置文件已修改好,位置在/srv/salt/web/httpd.conf,修改内容是添加个虚拟主机,在httpd.sls添加文件分发信息。

# vi httpd.sls           
httpd:
 pkg:
    -name: apache2
    -installed
 service:
   -name: apache2        #服务脚本名
   -running              #运行状态
   -reload: True     #如watch监控项发生变化,则重新加载配置
   -watch:               #监控文件变化
    - file: /etc/apache2/httpd.conf
/etc/apache2/httpd.conf:        #分发到minion位置
 file.managed:                #文件管理操作
    -source: salt://web/httpd.conf                #修改好的配置文件位置
    -user: root
    -group: root
    -mode: 644
    -backup: minion

此时查看minion服务器apache配置文件有没有更新:

# salt ‘*‘ cmd.run ‘cat/etc/apache2/httpd.conf‘
时间: 2024-08-01 10:27:50

对SaltStack进一步了解(基本使用)的相关文章

SaltStack远程控制、配置管理与实战介绍

说明:      本文档仅写了一些基础的SaltStack操作命令,但这些命令也是工作中经常会用到的,像grains.pillar.jinja2功能更强大,但如果不是大批量升级改造的话一般不需用到.更高级的操作请参阅书籍. 1.salt常用命令 salt-key –L 或 salt-key:列出各minion的授权状态 salt 'minion-25.180' sys.doc test.echo: sys.doc用来获取模块的用处和示例用法 salt 'minion-25.180' test.p

运维自动化之Saltstack(五)配置管理

配置管理--终于到重点了 说到配置管理,不得不说一下下面谈到的几个概念,理解他们很重要. Salt是通过一个文件top.sls管理minion端的状态的. 这个文件top.sls在这里叫做入口文件,此文件里记录了一个或者几个环境,在某一个环境下需要管理的minion端ID. 以及记录了受管理的minion端需要去匹配的状态:状态一般会有多个状态. 说一下我理解的状态,状态就是一组配置,配置里包含了minion端需要安装的软件名和设置好的配置文件,salt是通过配置文件去声明的.这个配置文件名必须

Saltstack 学习之target minions(一)

本文总结saltstack如何定位目标主机,以及介绍一些常见使用样例. > 为什么需要定位主机? 作为配置管理软件,首先要解决的是如何确定一次推送的主机,或者说特定配置的推送目标.试问如果无法很好的确定一次或多次推送的目标,又何谈实现大批主机的分类配置管理的自动化呢? > saltstack的target机制? saltstack 为此建立了一套很是完善的minion定位机制.官方术语叫"target minions",即通过多种途径,指定minion具有的属性(比如正则匹

Saltstack (一)基本介绍和安装

saltstack 是一个新的基础平台管理工具: C/S架构 端口号: TCP 4505  用于和客户端的长连接,保证master端和minion端的消息通信正常 TCP 4506  用于文件服务的传输端口,进行认证等 官方网站: http://www.saltstack.com 官方文档: http://docs.saltstack.com GitHub:    https://github.com/saltstack 中国SaltStack用户组: http://www.saltstack.

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

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

saltstack小试牛刀

当我们服务器数量只有1台,2台,几台时,我们部署软件工具可以逐台登录服务器操作,但随着企业服务器数量不但增多,显然逐台登录部署已经变得不现实.这时自动化运维管理工具就闪亮登场了,目前比较流行的工具有puppet,ansible,saltstack.我曾经使用过ansible和saltstack,当机器数量较多时,ansible执行比saltstack慢很多,今天主要介绍下saltstack. 1. saltstack介绍 saltstack是由python编写的采用c/s架构的自动化运维工具,由

Saltstack批量编译部署nginx(多模块)

最近一直在研究saltstack的同步文件和批量执行命令,随着架构的变大,批量部署的需求也变得明显起来了,我需要用一条命令就部署好nginx和tomcat,并且符合我所有的环境需求,可以直接投入生产环境使用,这就需要用到saltstack的批量安装部署功能了.这篇文章主要介绍nginx的批量部署,下篇讲解tomcat多实例的批量部署方法. 环境介绍: Centos 6.5 salt 2015.5.10 nginx 1.12.0 minion:test 1.修改master配置文件,修改后重启服务

saltstack安装配置使用

背景:puppet 用ruby开发,saltstack用python语言开发的包 环境: 修改hostname和hosts文件, 关闭selinux,清空iptables 172.16.115.157  master.huangzp.com  ;hostname master 172.16.115.203  agent.huangzp.com  ;hostname agent 一.配置认证 1. 安装和启动Saltstack服务 master上: yum install  -y epel-rel

  Saltstack实战

一:saltstack简介 部署的工作,不能只用手来做了,我们需要用工具来完成,工具化和标准化是相辅相成的,工具化让线上运行的东西更标准 Saltstack是比较新的自动化工具,是python开发的,也提供了api,saltstack有三大功能,远程执行,配置管理和云管理,配置管理也可以叫做状态管理,运维三板斧,监控,执行,配置 Saltstack对不,Puppet是ruby写的不支持远程执行  ansible 也是python写的.Saltstack的官方网站就是saltstack.com 运