jenkins - 詹金斯的提示
问题描述
我正在尝试通过 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 以非交互方式启动作业,因此您需要--extra-vars
在调用 playbook 时传递变量及其值(例如:)--extra-vars 'webusername=foo webpassword=bar'
。
这在文档中进行了解释。
对于已通过命令行选项定义的任何变量,或者从非交互式会话(例如 cron 或 Ansible Tower)运行时,
vars_prompt
将跳过单个变量的提示。请参阅/Variables/一章--extra-vars
中的在命令行上传递变量 。
对于密码,我知道无法直接传递它,但您可以例如使用环境变量。
推荐阅读
- javascript - 使用谷歌图表在地图中出现地理区域点的问题
- apache-nifi - apache nifi 递归地从 web 服务器目录中获取文件
- spatial - R:使用 viewRGB() 和 editMap() 时出错
- microsoft-dynamics - 使用 Business Central Web 服务/api 接收非结构化数据?
- java - 来自自定义类的 Android Studio 调用活动
- c# - WPF,C# 我不明白,Ticker 从“From”移动到“To”
- python - 将多个 Excel 文件保存到具有唯一文件名的特定路径
- python - matplotlib quiver:无效的 RGBA 参数
- javascript - 更改 chrome 中输入类型时间的行为
- scala - `F[Something[F]]` 背后的意图是什么?