Jenkins中的Ansible Playbook错误

问题描述 投票:1回答:1

我写了一个简单的剧本来安装httpd。这是我的剧本:

    ---
    - name: install httpd
      hosts: localhost
      become: root
      vars:
       inputvariable: "{{lookup('file','/home/ec2-user/inputfile.json')}}"
     tasks:
       - yum:
          name:  "{{item.packagename}}"
          state: "{{item.state}}"
        with_items: '{{ inputvariable.resources}}'

这是我的输入文件:

    {
     "resources":[
     {
      "packagename": "httpd",
      "state": "present"
     }
   ]
 }

问题是当我从控制台执行以下命令执行playbook时,它成功执行。

     ansible-playbook -vvv -C -e "ansible_python_interpreter=/usr/bin/python" apacheplaybook.yml

但是在Jenkins中执行它会显示以下错误:

“msg”:“此模块需要rpm的python2绑定。此模块需要python2 yum模块”}

这就是我运行jenkins项目的方式:enter image description here

我正在运行Jenkins作为ec2用户,我已经将/var/lib/jenkins/var/log/jenkins/var/cache/jenkins的所有者船改为ec2-user和wheel group。问题是Jenkins从控制台使用此命令成功执行。

jenkins ansible yum
1个回答
1
投票

是否有可能jenkins无法访问python2绑定,因为它将python3作为其默认值,因此yum任务无法执行。

如果您切换到:

- name: install httpd
  package: pkg={{item}} state=installed
  with_items:
    - packagenamehere

也许你可以访问cli到python2而不是jenkins(我假设你在同一服务器jenkins上执行cli)

© www.soinside.com 2019 - 2024. All rights reserved.