詹金斯的提示

时间:2018-07-04 10:43:12

标签: jenkins ansible jenkins-pipeline

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

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

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

管道:

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

install.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

我如何让詹金斯询问可以传递给ansible剧本的提示?

1 个答案:

答案 0 :(得分:0)

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

这在documentation中有解释。

  

对于任何vars_prompt变量,所有提示都将被跳过   已通过命令行--extra-vars定义的变量   选项,或从非交互式会话(例如cron)运行时   或Ansible塔)。请参见   /Variables/章。

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