在詹金斯调用Ansible剧本

时间:2017-01-20 19:32:08

标签: jenkins continuous-integration ansible ansible-playbook

我有jenkins构建,我正在尝试为s3上传调用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

3 个答案:

答案 0 :(得分:0)

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了。

答案 1 :(得分:0)

您可以尝试使用pip版本进行安装,然后尝试,请参阅以下步骤

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

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

但总是保持一个单独的vm / docker像是一个很好的选择" ansible-controller"并使用它作为jenkins的奴隶,这样你就不需要在ansible中使用ansible插件。并且jenkins总是稳定而没有太多的负担

答案 2 :(得分:0)

  1. 从配置的来源下载包信息。

    # apt update

  2. 安装ansible

    # apt install ansible

  3. 那就是它。

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

    dpkg -S apt-add-repository表示此数据包属于software-properties-common。

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

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

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