首页 文章

在詹金斯调用Ansible剧本

提问于
浏览
0

我有jenkins构建,我正在尝试为s3上传调用ansible playbook文件 . 当我执行一个用于调用ansible playbook文件的post-build-script时,我以下面的错误结束 . Cannot run program "ansible-playbook" (in directory "/var/jenkins_home/workspace/mybuild"): error=2, No such file or directory

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

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

When I try running ansible-playbook myplaybook.yml directly in jenkins image(terminal) I am ending up with bash: ansible-playbook: command not found

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

3 回答

  • 0
    • 从配置的源下载包信息 .

    # apt update

    • 安装ansible

    # apt install ansible

    而已 .

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

    dpkg -S apt-add-repository 告诉该数据包属于software-properties-common .

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

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

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

  • 0

    您可以尝试使用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总是稳定而没有太大的负担

  • 0

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

    On Ubuntu/Debian:

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

    On CentOS/RedHat:

    sudo yum install epel-release
    sudo yum install ansible
    

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

相关问题