Jenkins中的Ansible Playbook错误

时间:2018-04-17 05:23:51

标签: jenkins ansible yum

我写了一个简单的剧本来安装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-user运行,我更改了/var/lib/jenkins&的所有者权限。 /var/log/jenkins& /var/cache/jenkins到ec2-user和wheel组。问题在于Jenkins从控制台使用此命令成功执行。

1 个答案:

答案 0 :(得分:1)

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

如果您切换到:

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

也许您可以访问cli到python2但不能访问jenkins(我假设您在同一服务器jenkins上的cli上执行)