SaltStack入门(二)Grains、NoteGroup和State

2016-07-30 10:52:06来源:oschina作者:香胖人点击

执行命令时,忘记语法,可以使用sys.doc模块查询salt模块相关使用方法。# salt '*' sys.doc disk1、执行命令时,查找minion目标(targeting)常用有三种方式:



12345678


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.ping2、NodeGroup(minion分组)



12345678910111213


# vi /etc/salt/master #不用重启salt服务,修改后即生效nodegroups:web: 'host1'#多个主机以逗点分割db: 'host2' #测试分组后效果# salt -N db test.pinghost2: True # salt -N web test.pinghost1:True



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



1234567


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



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



1234567891011121314151617181920


# 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个空格,冒号后门一个空格



123456789101112131415161718192021222324252627282930313233343536


# salt '*' state.sls web.httpd #只执行/srv/salt/web/httpd.sls# salt '*' state.highstate#执行所有top关联的slsl文件host1:---------- ID: httpd Function: pkg.installed Name: apache2 Result: TrueComment: The following packages were installed/updated: apache2.Started: 11:30:40.994840 Duration: 103211.119 msChanges:省略.....Summary------------Succeeded: 1 (changed=1)Failed: 0------------Total states run: 1host2:---------- ID: httpd Function: pkg.installed Name: apache2 Result: TrueComment: The following packages were installed/updated: apache2.Started: 11:30:41.458100 Duration: 122426.802 msChanges: 省略.....Summary------------Succeeded: 1 (changed=1)Failed: 0------------Total states run: 1



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



1234567891011121314151617


# vi httpd.sls httpd:pkg:-name: apache2-installedservice: -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'



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台