【问题标题】:How can I run commands in sudo mode with ansible playbook?如何使用 ansible playbook 在 sudo 模式下运行命令?
【发布时间】:2017-09-08 07:24:22
【问题描述】:

我正在尝试使用我的 ansible playbook 运行“文件夹创建”命令。 (代码如下)

创建需要sudo登录才能执行。

我按如下方式运行剧本:

ansible-playbook myfile.yml --ask-pass

这会提示输入远程机器的用户帐户密码。 ssh 连接建立,但命令失败,权限被拒绝,因为它没有使用超级用户密码。

如何解决我的问题?

 hosts: GSP
 tasks:
   - name: "make build directory"
     command: mkdir -p /home/build/
     become: true
     become_user: root
   - name: "change permissions on the directory"
     command: chmod 777 -R /home/
     become: true
     become_user: root

【问题讨论】:

    标签: ansible ansible-2.x


    【解决方案1】:

    还有--ask-become-pass 开关ansible-playbook cli 查询用户的sudo 密码。

    【讨论】:

    • 嗨,我尝试使用此选项,但不知何故,剧本卡住了,我猜是在等待 sudo 密码。 EXEC /bin/sh -c 'sudo -H -S -p "[sudo via ansible, key=xeimypdogbjjpjsufkwnrveykjyqqbsu] 密码:" -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-xeimypdogbjjpjsufkwnrveykjyqqbsu; /usr/bin/python /home/atuser/.ansible/tmp/ansible-tmp-1504858247.495368-256432984211520/command.py; rm -rf "/home/atsuser/.ansible/tmp/ansible-tmp-1504858247.495368-256432984211520/" > /dev/null 2>&1'"'"' && sleep 0'
    【解决方案2】:

    您可以在 playbook 中添加 ansible_become_pass 变量来指定成为密码。

    更多细节可以在这里找到: http://docs.ansible.com/ansible/latest/become.html

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      相关资源
      最近更新 更多