【问题标题】:You need to be root to execute - ansible您需要成为 root 才能执行 - ansible
【发布时间】:2019-07-30 05:38:39
【问题描述】:

我有一个带有 ansible 控制器 + 节点的实验室设置,并探索了几个领域。

到目前为止,我在两台机器上都设置了一个名为 ansible 的用户帐户并启用了基于 ssh 密钥的身份验证

同时在两台机器上为用户设置 sudo 权限

当我尝试运行下面的剧本时,它在本地机器上运行,在另一个节点上失败。

--- #Install Telnet - hosts: all name: Install Telnet become: true become_user: ansible become_method: sudo tasks: - yum: name: telnet state: latest

输出如下 `[ansible@host1 playbooks]$ ansible-playbook telnetDeployYUM.yml

播放 [安装 Telnet] ****************************************** ****************************************************** ****************************************************** *************************

任务[收集事实] ****************************************** ****************************************************** ****************************************************** ************************ 好的:[192.168.64.6] 好的:[192.168.64.5]

任务 [yum] ******************************************* ****************************************************** ****************************************************** *********************************** 好的:[192.168.64.5] 致命:[192.168.64.6]:失败! => {"changed": true, "msg": "你需要是 root 才能执行这个命令。\n", "obsoletes": {"grub2": {"dist": "x86_64", "repo": “@anaconda”、“版本”:“1:2.02-0.64.el7.centos”}、“grub2-tools”:{“dist”:“x86_64”、“repo”:“@anaconda”、“版本”: "1:2.02-0.64.el7.centos"}}, "rc": 1, "results": ["加载的插件:fastestmirror\n"]} 要重试,请使用:--limit @/home/ansible/playbooks/telnetDeployYUM.retry

播放回顾 ************************************************ ****************************************************** ****************************************************** ************************************ 192.168.64.5:好的=2 更改=0 无法访问=0 失败=0 192.168.64.6 : ok=1 changed=0 unreachable=0 failed=1

[ansible@host1 剧本]$ `

我还可以手动以 ansible 用户身份在失败的目标上运行 sudo yum

我相信 sudo 设置正确

[ansible@host2 root]$ sudo whoami root

专家能否分享一些关于我在故障机器方面缺少什么的见解,谢谢。

【问题讨论】:

    标签: ansible


    【解决方案1】:

    使用-vvvv 运行以查看 ansible 在做什么。

    您是否在sudoers 中设置了ansible 以实现无密码权限提升? 您收到一条消息,它正在等待“升级提示”。这意味着当您使用 become 运行时,您无法成为,因为它需要密码。确保您的测试用户在/etc/sudoers 中,并且您已将其标记为该用户在运行 sudo 命令时不需要输入密码。该条目应在该文件的行上以 :NOPASSWD 结尾。

    【讨论】:

      【解决方案2】:

      下面应该可以正常工作

      - hosts: all
        name: Install Telnet
        become: yes
        tasks:
          - yum:
            name: telnet
            state: latest
      

      ansible 或执行 ansible 的用户应该在 sudoers 文件中。

      您正在将用户更改为 ansible,这不是必需的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 2012-12-03
        相关资源
        最近更新 更多