执行命令时,忘记语法,可以使用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-10-12 03:09:00