【问题标题】:Prompts in Jenkins詹金斯的提示
【发布时间】:2018-07-04 10:43:11
【问题描述】:

我正在尝试通过 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 的提示?

【问题讨论】:

    标签: jenkins ansible jenkins-pipeline


    【解决方案1】:

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

    这在documentation中有解释。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 2019-06-03
      相关资源
      最近更新 更多