我正在尝试使用ansible shell模块执行shell脚本,如下面的代码
-name : Execute
become_user: someuser
shell:
cmd: "./script.ksh"
chdir: "/path/to/script"
但是脚本仍然使用我的登录名而不是"someuser"如何解决这个问题?
由@β.εηοιτ可知。βε的become: yes
缺失,参见Become指令中的示例和解释。
你觉得成为:yes不过是sudo ?
默认设置(至少在我的情况下)使用sudo
。要查看正在使用的默认become_method
,请检查您的"最接近"。
您可以在详细模式下运行剧本,并使用-vvv
增加详细程度来查看正在使用的确切命令。
如果become: yes
与become_user: <username>
没有帮助,尝试使用不同的become_method
。
su
和su -
示例:
- name : Execute
shell:
cmd: "./script.ksh"
chdir: "/path/to/script"
become: yes
become_user: someuser
become_method: "su"
或:
- name : Execute
shell:
cmd: "su - someuser -c './script.ksh'"
chdir: "/path/to/script"
become: yes
在这种情况下,您很可能会收到以下警告:
[WARNING]:考虑使用'become', 'become_method'和'become_user'而不是运行su