salt '*' xxx test=True
# 执行前测试
salt --summary "*" test.ping
#测试主机并汇总
salt "*" cmd.run "ifconfig eth0 | awk '/inet/ {print \$2}'"
#执行远程命令; awk正则匹配inet行,转义$
salt -N "apps" cmd.script salt://scripts/test.sh
#执行远程shell;apps应用组执行脚本
salt "*" pkg.version "redis" #查看yum包版本,install,remove
salt "*" service.status redis #查看服务 ;stop,start,restart
# salt "*" state.highstate
#salt初始化环境 ;复合状态的使用:base目录下寻找top.sls入口文件
# salt "*" state.sls saltenv='prod' tests.filetest
#通过saltenv指定环境中sls所在的根目录(base、prod和dev )
salt "*" state.highstat pillarenv='html'
#例子:在默认base目录使用指定的pillar环境
只在启动minion时才采集一次数据
salt '*' grains.items
#详细信息
salt '*' grains.ls
#获取grains采集信息项目
salt '*' grains.get os
#获取所有系统安装的操作系统类型
salt -G os:CentOS cmd.run 'w '
#对centos系统执行远程命令 (w查看谁登陆在做什么操作)
salt -G 'master:127.0.0.1' grains.ls
#查看grains项;grains.items 查看详细
salt "*" grains.get master | head -2
#查看master地址;用get方法获取items项的值
salt "*" grains.items | grep nodename -A 1
#查看主机名;如 grains.get nodename
salt '*' saltutil.refresh_pillar #刷新所有机器上的pillar
salt '*' pillar.data pillarenv='live' # #查看指定项目所有主机的pillar
salt "*" saltutil.sync_modules #同步模块
#自定义模块推送到minion
salt "*" type.run "hello world"
#执行模块
salt '*' saltutil.sync_all
#同步所有
salt "*" sys.list_modules
#列出所有可执行的模块
salt "*" sys.list_state_functions pkg
#列举模块中的函数
salt "*" sys.doc pkg
#查看模块注释
初始化环境: http://ops.attacker.club/Automatic/salt_init.html 线上服务部署: http://ops.attacker.club/Automatic/salt_deploy.html
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" test.ping
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" state.sls init.salt-minion.install
salt-ssh --roster-file=/srv/salt/salt-master_tools/keys/roster -i "*" state.sls init.salt-minion.uninstall
#通过salt-ssh 推送minion端,或者初始化时shell安装salt-minion