码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-27 00:48:16      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:saltstack   grains nodegroups state

执行命令时,忘记语法,可以使用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‘

本文出自 ““企鹅”那点事儿” 博客,请务必保留此出处http://lizhenliang.blog.51cto.com/7876557/1638581

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

标签:saltstack   grains nodegroups state

原文地址:http://lizhenliang.blog.51cto.com/7876557/1638581

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!