Salt中的runas参数

在Salt中的许多模块命令都有runas参数,比如cmd.run或cmd.script

以cmd.script命令举例,官方文档对于runas的描述如下:

runas
    The name of the user to run the command as

翻译过来为:运行该命令的用户名称(机翻)。
我理解的是:这条命令(或脚本)由哪个用户来执行。

比如:我有一个脚本 echo_test.sh,内容如下

echo "i am $USER"

使用cmd.script进行执行

salt minion-01 cmd.script salt://script/echo_test.sh

得到如下结果:

minion-01:
    ----------
    pid:
        63831
    retcode:
        0
    stderr:
    stdout:
        i am

查看下我这台机器的所有用户:

[root@localhost script]# cat /etc/passwd |cut -f 1 -d :
root
bin
daemon
...

我们使用其他用户执行。观察得到的结果:

# salt minion-01 cmd.script salt://script/echo_test.sh runas=root
minion-01:
    ----------
    pid:
        63908
    retcode:
        0
    stderr:
    stdout:
        i am root
        
# salt minion-01 cmd.script salt://script/echo_test.sh runas=bin
minion-01:
    ----------
    pid:
        63938
    retcode:
        0
    stderr:
    stdout:
        i am bin

# 使用不存在的用户进行执行,报错
# salt minion-01 cmd.script salt://script/echo_test.sh runas=aaa
minion-01:
    TypeError encountered executing cmd.script: an integer is required. See debug log for more info.

你可能感兴趣的:(saltstack,自动化运维,学习笔记)