设为首页 收藏本站
查看: 1646|回复: 0

[经验分享] SaltStack入门(二)Grains、NoteGroup和State

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-8 09:09:14 | 显示全部楼层 |阅读模式
执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。
# salt '*' sys.doc disk
1、执行命令时,查找minion目标(targeting)常用有三种方式:
1
2
3
4
5
6
7
8
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启动时采集服务器系统信息,运行过程中数据不会发生变化,如操作系统、内核、网卡等一些静态的数据。
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分组
1
2
3
4
5
6
7
8
9
10
11
12
13
# 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、States(配置管理)
要想启用配置管理功能,首先要对受控端进行设置,让minion以root用户接受主空端管理指令:
1
2
3
4
5
6
7
# vi /etc/salt/minion
user: root
开启主控端配置管理功能:
# vi /etc/salt/master
file_roots:
  base:
    - /srv/salt/               #默认存放管理指令和文件位置



手动创建目录和默认入口配置文件(top.sls)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# mkdir /srv/salt

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

----------------------------
如果想使用分组定义,如下:
base:
  web:
     - match: nodegroup
     - web.httpd
----------------------------

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



注意:缩进是2个空格,冒号后门一个空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# salt '*' state.sls web.httpd     #只执行/srv/salt/web/httpd.sls
# salt '*' state.highstate        #执行所有top关联的slsl文件
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添加文件分发信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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




1
# salt '*' state.sls web.httpd         #再执行下



使用下面命令查看minion服务器apache配置文件已经更新完成:
1
# salt '*' cmd.run 'cat /etc/apache2/httpd.conf'



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-64850-1-1.html 上篇帖子: SaltSack入门(一)安装及简单使用 下篇帖子: SaltSack入门(三)Salt相关命令和Pillar应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表