SaltStack自动化运维管理(二)——远程执行

SaltStack自动化运维管理(二)——远程执行

1. 远程执行shell命令

Salt命令由三个主要部分构成:

salt '<target>' <function> [arguments]

  • target: 指定哪些minion, 默认的规则是使用glob匹配minion id
    salt '*' test.ping

  • Targets也可以使用正则表达式:
    salt -E 'server[1-3]' test.ping

  • Targets也可以指定列表:
    salt -L 'server2,server3' test.ping

  • funcation是module提供的功能,Salt内置了大量有效的functions
    salt '*' cmd.run 'uname -a'

  • arguments通过空格来界定参数:
    salt 'server2' sys.doc pkg #查看模块文档
    salt 'server2' pkg.install httpd
    salt 'server2' pkg.remove httpd

  • salt内置的执行模块列表:
    http://docs.saltstack.cn/ref/modules/all/index.html

在这里插入图片描述

2. 编写远程执行模块

如果感觉执行模块不够用,可以自己编写远程执行模块

编辑master配置文件:

vim /etc/salt/master		#可以不用编写,默认配置就是

file_roots:
  base:
    - /srv/salt

在这里插入图片描述

重启master服务:

systemctl restart salt-master

创建模块目录:

mkdir /srv/salt
mkdir /srv/salt/_modules

编写模块文件:

vim /srv/salt/_modules/mydisk.py

def df():
    return __salt__['cmd.run']('df -h')

在这里插入图片描述

同步模块:

salt '*' saltutil.sync_modules

在这里插入图片描述

在server2和server3中查看:

yum install -y tree
cd /var/cache/salt/
tree minion/

在这里插入图片描述
运行模块:

salt server2 mydisk.df

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章