🎹 个人简介:大家好,我是 金鱼哥,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,并将值设为空字符串 ( "" )。
📑创建问卷调查
要创建问卷调查,请执行以下操作:
- 点击按钮来调出 Add Survey 窗口。
使用屏幕顶部的 ON/OFF 切换按钮来快速激活或取消激活本次调查提示。
- 问卷调查可由任何数量的问题组成。
- 输入问题信息后,点击按钮添加问题。
调查的样式化版本显示在 Preview 窗格中。对于任何问题,您可以点击 Edit 按钮编辑问题,Delete 按钮删除问题,然后点击并拖动网格图标来重新安排问题的顺序。
- 返回左窗格以添加其他问题。
- 完成后,点击 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 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!