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

举报
金鱼哥 发表于 2022/06/29 17:41:02 2022/06/29
【摘要】 第十章 构建高级作业工作流--创建作业模板调查以设置工作的变量

🎹 个人简介:大家好,我是 金鱼哥,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 回忆录

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。