【问题标题】:ansible.legacy.setup\n - module failed to execute on jenkins pipelineansible.legacy.setup\n - 模块无法在 jenkins 管道上执行
【发布时间】:2022-07-27 23:05:45
【问题描述】:

我正在使用 Jenkins 启动一个简单的 Ansible 管道(在 localhost 上创建一个文件夹,如下所示

  name: Play1

  hosts: localhost

  become: true

  remote_user: ec2-user

  tasks:

   - name: Create directory

     file:

       path: /home/ec2-user/Newfolder

       state: directory

       group: ec2-user

       owner: ec2-user

       mode: 0700

但是当我构建管道时,我收到了这个错误消息:

TASK [Gathering Facts] *********************************************************
fatal: [localhost]: FAILED! => {"ansible_facts": {}, "changed": false, "failed_modules": {"ansible.legacy.setup": {"failed": true, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}}, "msg": "The following modules failed to execute: ansible.legacy.setup\n"}

请问您对此错误有什么想法吗?

【问题讨论】:

    标签: jenkins ansible gitlab jenkins-pipeline


    【解决方案1】:

    我认为您没有提供 sudo 密码,并且 ansible_user 尚未配置为无密码 sudo。以下是您提供的 sn-p 的错误。

    {"failed": true, "module_stderr": "sudo: a password is required\n",
    

    在剧本中,你提供了become: trueremote_user: ec2-user

     become: true
    
     remote_user: ec2-user
    

    所以您的ec2-user 没有权限成为root 用户而没有密码被传递。你可以运行sudo -l 命令来检查用户可以用他当前的sudo 配置做什么。 如果您不想更改 sudoers 文件,则只需在执行时将 -K 标志传递给 playbook 以提示输入 sudo 密码。

    -K, --ask-become-pass
    

    但是,ec2-user 用户必须在 sudoer 文件中;没有它,无论通过-K 提供ec2-user 密码,都会出现如下错误

    ec2-user is not in the sudoers file
    

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 2021-02-03
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多