(对此已经有一些问题,但是没有解决方案对我有用)
在我使用的服务器上,我们必须“ sudo su-webapps”,然后将命令作为webapps运行。 我相信Ansible没有提供执行此操作的本地方法(只有sudo可用,但是sysadmins限制了我可以运行它的命令列表,su可以与Ansible一起使用,但不能在服务器上单独运行)。>
我尝试过 https://www.coveros.com/ansible-privledge-escalation-using-sudo-su/
[privilege_escalation]
become_exe=sudo su -
使用剧本:
---
- hosts:
- test
become: yes
become_user: webapps
become_method: su
tasks:
- name: Updates file
copy:
src: a.txt
dest: dest/a.txt
运行它会给出:
SSH:EXEC SSH -vvv -C -o ControlMaster =自动-o ControlPersist = 60秒-o KbdInteractiveAuthentication =否-o PreferredAuthentications =带麦克风的gssapi,gssapi-keyex,基于主机的公钥 -o PasswordAuthentication =否-o'User =“ myUser”'-o ConnectTimeout = 10 -o ControlPath = / Users / lmoreau / .ansible / cp / d895b40f7e -tt myServer'/ bin / sh -c'“'”'sudo su-webapps -c'“'”“”“”“”“”“” / bin / sh -c '''''''''''''''''''''''1' '“'回声 成为成功-nxilvumwmfikgyuisutwiwobidrgqpao; / usr / bin / python /var/tmp/ansible-tmp-1583355901.6967812-200466745901442/AnsiballZ_setup.py'“'”'“”“”“”“”'“'”“”“”“”“”“”“ ''''''''''''''''''' &&睡眠0'“'”''
...
“ msg”:“超时(12秒),等待特权升级提示:\ r \ nWe 相信您已经收到了当地的常规演讲 系统\ r \ n管理员。通常可以归结为这三个 事情:\ r \ n \ r \ n#1)尊重他人的隐私。\ r \ n#2)思考 在您键入之前。\ r \ n#3)强大的力量带来了巨大的成功 责任。\ r \ n \ r \ n“
另一种尝试:
[privilege_escalation]
become_exe=’sudo su - ‘
“ module_stdout”:“ / bin / sh:’sudo:未找到命令\ r \ n”, “ msg”:“模块故障\ n请参阅stdout / stderr了解确切错误”,
在不覆盖begin_exe的情况下:
“ su”方法使“超时(12秒)等待特权升级” 提示:“
“ sudo”方法给出“ msg”:“缺少sudo密码”
注意:我没有我想要成为的帐户的密码,并且不应该拥有任何密码。
我如何做与Ansible手工做的一样?
答案 0 :(得分:0)
使用这个:
- hosts: application
become: yes
become_exe: "sudo su - webapps"
become_method: su
tasks: