首页 > 解决方案 > 詹金斯的提示

问题描述

我正在尝试通过 jenkins 使用 ansible playbook 在 centos 7 上安装软件。

我正在尝试从 jenkins 调用 ansible playbook 来安装软件。

我在 ansible playbook 中使用 vars_prompt 来传递一些用户定义的参数,当我手动运行 ansible playbook 时,它会要求提示并成功运行,但是当我使用 jenkins 构建时,它不会提示任何输入。

管道:

node {
    ansiblePlaybook(
        installation: 'FirstAnsibleTest',
        inventory: '/etc/ansible/hosts',
        playbook: '/etc/ansible/install.yml',
        become: true,
        colorized: true,
        )
}

安装.yml:

- hosts: all
  vars_prompt:
   - name: "webusername"
     prompt: "Enter webusername"
   - name: "webpassword"
     prompt: "Enter webpassword"
     private: yes
  tasks:
   - import_tasks: /etc/ansible/roles/installe/tasks/main.yml

如何让 jenkins 请求可以传递给 ansible playbook 的提示?

标签: jenkinsansiblejenkins-pipeline

解决方案


由于 Jenkins 以非交互方式启动作业,因此您需要--extra-vars在调用 playbook 时传递变量及其值(例如:)--extra-vars 'webusername=foo webpassword=bar'

这在文档中进行了解释。

对于已通过命令行选项定义的任何变量,或者从非交互式会话(例如 cron 或 Ansible Tower)运行时,vars_prompt将跳过单个变量的提示。请参阅/Variables/一章--extra-vars中的在命令行上传递变量 。

对于密码,我知道无法直接传递它,但您可以例如使用环境变量。


推荐阅读