首页 文章

Jenkins中的Ansible Playbook错误

提问于
浏览
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从控制台使用此命令成功执行 .

1 回答

  • 1

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

    如果您切换到:

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

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

相关问题