在詹金斯调用Ansible剧本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在詹金斯调用Ansible剧本相关的知识,希望对你有一定的参考价值。

我有jenkins构建,我正在尝试调用sible上传的ansible playbook文件。当我执行一个用于调用ansible playbook文件的post-build-script时,我以下面的错误结束。无法运行程序“ansible-playbook”(在目录“/ var / jenkins_home / workspace / mybuild”中):error = 2,没有这样的文件或目录

下面的截图是ansible post build脚本配置。 enter image description here

仅供参考:我的构建文件夹中有一个文件(ansibledemo.yml)。我尝试给出绝对路径(/var/jenkins_home/workspace/mybuild/ansibledemo.yml)。仍然没有去。

当我尝试直接在jenkins图像(终端)中运行ansible-playbook myplaybook.yml时,我最终得到了bash:ansible-playbook:command not found

当我尝试在我的jenkins服务器上安装ansible时,我无法执行任何安装命令。请参阅下面的屏幕截图。 enter image description here

答案

Ansible没有安装在你的Jenkins机器上,首先你需要在jenkins机器上安装ansible:

在Ubuntu / Debian上:

sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

在CentOS / RedHat上:

sudo yum install epel-release
sudo yum install ansible

之后,您将能够运行ansible-playbook。

另一答案

您可以尝试使用pip版本作为替代方案进行安装并尝试,请参阅以下步骤,

$ virtualenv venv
$ source venv/bin/activate
$ pip install ansible-container[docker,openshift]

您可以在docs中看到更多要安装的选项:https://docs.ansible.com/ansible-container/installation.html

但总是保持一个单独的vm / docker像“ansible-controller”并使用它作为jenkins的奴隶,这是一个很好的选择,所以你不需要ansible的ansible插件。 jenkins总是稳定而没有太大的负担

另一答案
  1. 从配置的源下载包信息。 # apt update
  2. 安装ansible # apt install ansible

而已。

如果您运行官方jenkins容器(基于debian)而不是使用ansible内置的repo,并且您不需要“apt-add-repository”。但是你可以通过安装软件属性来安装apt-add-repository以便进一步使用。

dpkg -S apt-add-repository告诉该数据包属于软件属性 - 常见。

出现错误是因为容器的作者总是尝试使其尽可能轻并删除包信息。

您不需要sudo,因为默认情况下您将成为容器中的root用户。只有在您故意提及时才会成为另一个用户。

请将您在容器中工作的信息添加到您的问题中。

以上是关于在詹金斯调用Ansible剧本的主要内容,如果未能解决你的问题,请参考以下文章

詹金斯:对于每个循环问题

ansible-playbook剧本

Ansible的脚本—playbook剧本

ini 詹金斯新贵剧本

Ansible 剧本变量 -01

自动化运维Ansible之Playbook剧本