Jenkins中的Ansible Playbook错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins中的Ansible Playbook错误相关的知识,希望对你有一定的参考价值。

我写了一个简单的剧本来安装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无法访问python2绑定,因为它将python3作为其默认值,因此yum任务无法执行。

如果您切换到:

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

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

以上是关于Jenkins中的Ansible Playbook错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Bamboo 或 jenkins 运行 ansible playbook

从jenkinsfile启动包含vault文件引用的Ansible playbook

jenkins pipeline job实战

记一次ansible-playbook jenkins传空格的标量导致删除了服务的主目录

Jenkins+GitLab+Ansible playbook安装与基本使用

ansible-playbook 部署tomcat简单示例