金鱼哥RHCA回忆录:DO447构建高级作业工作流--创建作业模板调查以设置工作的变量

简介: 第十章 构建高级作业工作流--创建作业模板调查以设置工作的变量
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


📜官网:

https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/job_templates.html#extra-variables


📜10.2.1 管理变量

Ansible用户被鼓励编写剧本,这些剧本可以在不同的情况下重用,或者在部署到在不同的环境中具有略微不同的行为、配置或工作方式的系统时重用。处理这个问题的一个简单方法是使用变量。

Ansible可以用多种方式设置变量的值,并且可以根据设置的方式重写值。例如,一个角色可以为一个变量提供一个默认值,而这个值又会被目录或剧本为该变量设置的值所覆盖。但是,通常最好在一个位置为变量设置值,以帮助避免变量优先级问题。

当使用ansible-playbook运行剧本时,用户有两种方式来交互式地设置变量的值。首先,他们可以通过使用-e或 --extra-vars选项传递额外的变量给命令。额外的变量总是优先。或者,剧本可能有一个vars_prompt部分,可以在用户运行剧本时交互式地提示用户输入。vars_prompt变量设置的值的优先级比其他变量低,可以被各种东西覆盖。

而在Ansible Tower中,这种做法却有些不同。额外的变量可以由Job Template设置,也可以在启动Job Template时提示用户使用这些变量,或者可以通过重新运行带有定义额外变量的Job来自动设置这些变量。Ansible Tower不支持带有vars_prompt问题的剧本。vars_prompt最接近的替代是Ansible Tower的Surveys功能。这将在本节稍后讨论。


📑重要:

Ansible Tower不支持使用vars_prompt交互设置变量的剧本。


📜10.2.2 定义额外变量

在Ansible Tower中,Job Templates可以通过两种方式直接设置额外的变量:

  • 额外的变量可以通过在作业模板的EXTRA VARIABLES字段中以YAML或JSON格式输入来设置。
  • 如果为EXTRA VARIABLES字段选择PROMPT ON LAUNCH,那么Ansible Tower用户将被提示在使用Job Template启动作业时交互式地修改额外变量列表。

这些额外变量与ansible-playbook的-e或--extra-vars选项指定的变量完全相同,它们的值覆盖为这些变量设置的任何值。通过额外变量设置的值总是最优先级。
在这里插入图片描述

如果为额外变量选择PROMPT ON LAUNCH,当使用作业模板启动作业时,会显示一个对话框,允许Ansible Tower用户编辑该作业的额外变量:
在这里插入图片描述

如果生成的Job稍后重新启动,将再次使用相同的额外变量。当重新启动作业时,不能更改作业的额外变量。相反,可以使用不同的额外变量集从原始job Template启动作业。


📜10.2.3 作业模板的调查

额外的变量可能很难使用,因为启动作业的用户需要了解哪些变量可用,以及如何在作业模板手册中使用这些变量。Job Template Surveys允许Job Template在用于启动作业时显示一个简短的表单,提示用户提供用于设置额外变量值的信息。


与其他设置额外变量的方法相比,提示用户输入提供了几个优势。用户不需要详细了解额外变量是如何工作的,甚至不需要知道它们是如何被使用的。他们也不需要知道剧本中使用的额外变量的名称。


因为提示符可以包含任意文本,所以它们可以以一种用户友好的方式表达,并且对于可能不了解Ansible的详细信息的用户来说很容易理解。


📑重要:

调查设置了额外的变量。事实上,问卷调查为变量设置的值会以任何其他方式覆盖同名变量设置的值。这包括作业模板的额外变量字段或它的启动提示设置。

调查和vars_prompt不是彼此的直接替代。通过vars_prompt设置的变量比其他变量具有更低的优先级,并且可以通过多种方式重写。调查设置的值是额外的变量,并且总是胜出。


📑用户友好的问题

问卷调查允许用户被提示定制的问题。与PROMPT ON LAUNCH方法相比,这为用户输入额外变量值提供了更用户友好的提示。


📑问题类型

除了提供用户友好的提示外,Surveys还可以为用户输入定义规则并执行验证。用户对调查问题的回答可限于以下七种回答类型中的一种:


📑Answer Type

  • Text:单行文本。您可以为该回答设置最小和最大长度(字符数)。
  • Textarea:多行文本字段。您可以为该回答设置最小和最大长度(字符数)。
  • Password:回答被视为敏感信息,和实际密码的处理方式很像。您可以为该回答设置最小和最大长度(字符)。
  • Multiple Choice (single select):选项列表,每次只能选择其中一个选项。请在 Multiple Choice Options 框中输入选项,每行一个。
  • Multiple Choice (multiple select):列表选项,每次可选择其中任意数量的选项。在 Multiple Choice Options 框中输入选项,每行一个。
  • Integer:整数。您可以为该回答设置最小和最大长度(字符数)。
  • Float:小数。您可以为该答案设置最小和最大长度(字符数)。

您还可以为调查问题的用户响应大小定义规则。对于以下非列表回答类型,调查可以定义用户回答允许的最小和最大字符长度:文本、文本区域、密码、整数和浮点数。


📑可选的问卷调查问题

问卷调查问题的 Required 设置决定了对于与之交互的用户,回答是不是可选的。

在后台,可选的问卷调查变量可在 extra_vars 中传递给 playbook,即使没有填写也一样。

  • 如果非文本变量(输入类型)标记为可选,且未填写,则不会将任何问卷调查 extra_var 传递给 playbook。
  • 如果文本输入或文本区域输入标记为可选,未填充,且最小 length > 0,则不会将任何问卷调查 extra_var 传递给 playbook。
  • 如果文本输入或文本区域输入标记为可选,未填写,且最小 length === 0,则会将该问卷调查 extra_var 传递给 playbook,并将值设为空字符串 ( "" )。

📑创建问卷调查

要创建问卷调查,请执行以下操作:

  1. 点击image-20220429125235078按钮来调出 Add Survey 窗口。

在这里插入图片描述

使用屏幕顶部的 ON/OFF 切换按钮来快速激活或取消激活本次调查提示。

  1. 问卷调查可由任何数量的问题组成。
  2. 输入问题信息后,点击image-20220429125310183按钮添加问题。

    调查的样式化版本显示在 Preview 窗格中。对于任何问题,您可以点击 Edit 按钮编辑问题,Delete 按钮删除问题,然后点击并拖动网格图标来重新安排问题的顺序。

  3. 返回左窗格以添加其他问题。
  4. 完成后,点击 Save 保存问卷调查。

在这里插入图片描述


📜10.2.4 课本练习

[student@workstation ~]$ lab project-survey start

📑1. 以admin帐号和redhat密码登录Ansible Tower web。


📑2. 添加一个调查到DEV webservers setup作业模板。

在这里插入图片描述
在这里插入图片描述

重要:在保存之前,确保ON/OFF开关设置为ON在顶部调查显示编辑器窗口
在这里插入图片描述


📑3. 拉取代码并修改。

[student@workstation ~]$ cd ~/git-repos/my_webservers_DEV
[student@workstation my_webservers_DEV]$ git pull
[student@workstation my_webservers_DEV]$ vim templates/index.html.j2
…………. # 在底部添加
Deployment Version: {{ deployment_version }} <br>

[student@workstation my_webservers_DEV]$ git add --all
[student@workstation my_webservers_DEV]$ git commit -m "Display Deployment Version on index page"
[student@workstation my_webservers_DEV]$ git push

📑4. 更新My webservers DEV项目的存储库的本地副本。

在这里插入图片描述


📑5. 作为Developers团队的一员,使用更新后的DEV webservers setup模板启动一个Job。

在这里插入图片描述
在这里插入图片描述


📑6. 验证结果。

[student@workstation ~]$ curl servera
This is a test message RedHat 8.0 <br>
Current Host: servera <br>
Server list: <br>
servera.lab.example.com <br>
serverb.lab.example.com <br>
Deployment Version: v1.0 <br>

[student@workstation ~]$ curl serverb
This is a test message RedHat 8.0 <br>
Current Host: serverb <br>
Server list: <br>
servera.lab.example.com <br>
serverb.lab.example.com <br>
Deployment Version: v1.0 <br>

💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第十章 构建高级作业工作流--创建作业模板调查以设置工作的变量 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
存储 Java 数据库连接
【Mybatis】关系映射 表对象之间的关系
【Mybatis】关系映射 表对象之间的关系
274 0
|
前端开发 JavaScript
ES6中什么是Promise?
ES6中什么是Promise?
|
10月前
|
SQL 缓存 IDE
Spingboot项目解决.gitignore文件不起作用的问题
【10月更文挑战第15天】在使用 Git 时,有时会遇到 `.gitignore` 文件不起作用的情况。这通常是因为要忽略的文件或文件夹已经被添加到仓库中。解决方法是先将这些文件从缓存中移除,再重新提交。具体操作如下: 3. 运行 `git add .`。 4. 运行 `git commit -m "fixed files"`。 这样就可以成功忽略指定的文件或文件夹。
386 58
|
监控 网络协议 安全
|
监控 算法 自动驾驶
计算机视觉的实践与挑战:技术深度剖析
【8月更文挑战第21天】计算机视觉技术作为人工智能的璀璨明珠,正逐步深入到我们生活的各个方面,带来前所未有的便利和变革。然而,随着技术的不断发展,我们也面临着诸多挑战和问题。未来,我们需要不断推动技术创新和跨学科合作,加强数据安全和隐私保护,提升算法的鲁棒性和可解释性,以应对这些挑战并推动计算机视觉技术的持续发展。让我们共同努力,探索计算机视觉技术的广阔天地,为创造一个更加智能、安全和美好的世界而不懈努力。
|
11月前
|
机器学习/深度学习
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
本文介绍了YOLOv10的性能优化,通过融合Ghost模块和C2f结构,实现了网络性能的均衡。GhostNet通过GhostModule和GhostBottleNeck减少参数量,适用于资源有限的场景。YOLOv10-C2f_Ghost在减少参数和计算量的同时,保持了与原始网络相当或更好的性能。文章还提供了详细的代码修改步骤和可能遇到的问题解决方案。
1333 1
YOLOv10优改系列一:YOLOv10融合C2f_Ghost网络,让YoloV10实现性能的均衡
|
Java 调度 Spring
写项目常用的三个功能(课时二十五)
写项目常用的三个功能(课时二十五)
164 0
|
存储 Kubernetes 对象存储
Kubernetes版本对接对象存储几种方案
Kubernetes版本对接对象存储几种方案
|
消息中间件 NoSQL Redis
基于Redis实现消息队列
基于Redis实现消息队列
634 0
|
算法
【备战蓝桥,冲击省一】 进制转换 你不会还不会吧?
【备战蓝桥,冲击省一】 进制转换 你不会还不会吧?
168 0