前 25 个 Ansible 面试问题和答案 [适用于应届生和有经验者]
已发表: 2020-08-27Ansible 面试问题是当今互联网上研究最多的话题,因为 Ansible 最近获得了普及。 如今,自动化在几乎每个 IT 流程中都越来越受欢迎,因为它减少了对人工干预的需求和对更多资源的需求,而 Ansible 帮助行业实现了这一目标。
Ansible 使自动化和配置管理变得容易。 Ansible 在 IT 行业也是新生事物,并在很短的时间内获得了普及。 这是因为它有助于自动化大多数任务,节省资源和时间。
此外,它易于学习和理解。 Ansible 的火爆使得业界对 Ansible 的需求越来越大。 为了满足这一需求,正在雇用更多的人,他们对 Ansible 有很好的了解,以便候选人可以在项目中实施同样的事情,并证明它对行业有益。
以下是您需要为下一次面试准备的Ansible 面试问题。 这些问题既针对较新的水平,也针对经验水平。 这些 Ansible 面试问题和答案肯定会帮助您破解面试。
如果您想学习 Ansible,请在 IT 专业人士中非常知名的名字 upGrad 上了解它。 经验丰富的专业人员准备 u pGrad 提供的学习材料。 您可以访问该网站并深入了解 Ansible。
必读:Ansible vs Chef

Ansible 面试问答
Q1。 Ansible 的优势是什么?
Ansible 有几个优点和优势,包括:
- 它没有代理,但只需要在目标机器上运行的 SSH 服务。
- 它不需要很多资源。 因此,开销很低。
- Ansible 的唯一依赖是 Python,它预装在大多数系统中。
- Ansible 很容易理解。
Q2。 Ansible 中的 CD/CI 是什么?
CI 和 CD 是软件开发中遵循的实践。 CD 是持续交付的缩写,而 CI 是持续集成的缩写。
在 CD 中,软件被构建并交付到生产环境中,而在 CI 中,不同的开发人员在不同的模块上工作,每天上传集成。 Ansible 是 CD 和 CI 的完美工具,因为它为设置所需环境和最终部署应用程序提供了稳定的基础架构。
Q3。 Ansible 是如何工作的?
Ansible 通常分为两种类型的服务器,称为控制机器和节点。 它存在于控制机器上,控制机器进一步连接到不同的节点。 剧本由 Ansible 在控制机器上运行,这些机器使用 SSH 执行 Ansible 模块,并在执行完成时删除这些模块。 控制机器管理所有节点; 因此不需要第三方工具。
Q4。 什么是 Ansible 剧本?
playbook 是编写 Ansible 代码的文件。 Playbook 遵循 YAML 格式,是 Ansible 的基本功能。 Playbook 中包含的文件按顺序运行。 总的来说,Playbook 是 Ansible 的构建块。
Q5。 什么是 Ansible 塔? 它有什么特点?
Ansible Tower 是一个基于 Web 的解决方案,IT 团队可以轻松访问它。 Ansible 的主要功能是充当所有自动化任务的枢纽。 该塔最多可免费用于 10 个节点。
以下是 Ansible Tower 的一些主要功能:
- 作业调度。
- 它有助于安排作业稍后运行并设置重复选项。
- 基于滚动的操作控制:您可以使用 Ansible Tower 轻松设置不同的角色并提供对特定角色的访问权限。
- 完整记录的 REST API:使用 REST API,您可以轻松地将 Ansible 与您现有的环境集成。
- 门户模式:Ansible Tower 提供易于使用的 UI,对新手和有经验的用户都很有用。
- 云集成:Ansible Tower 与大多数云环境兼容,例如 Azure、RackSpace 和 Amazon EC2。
Q6。 什么是幂等性?
幂等性是 Ansible 的一个基本特性,它确保只发生所需的更改。 例如,任何任务都可以在服务器上执行多次,但不会改变已经正常工作的部分。 它可以使用创建的属性在 Ansible 中实现。
问题 7。 什么是 Ansible Galaxy?
Ansible Galaxy 是不同 Ansible 角色的仓库,您可以通过它安全地共享内容。 它通过 Galaxy 网站完成,用户可以根据角色访问权限查找和共享内容。 Ansible-Galaxy 是可用于安装角色、创建新角色、删除现有角色以及在 Galaxy 网站上执行不同任务的命令。
Q8。 如何使用 Ansible 创建加密文件?
管理加密内容的主要命令是 Ansible-vault。 使用此命令,可以加密文件并用于编辑、查看和解密数据。 新的加密文件是使用 Ansible-vault 创建的,只需传递文件名即可创建命令。 举个例子; 创建 Hello.yml 使用以下命令:
$ Ansible-Vault 创建 Hello.yml
问题 9。 什么是 ask_pass 模块?
当需要基于密码的身份验证以连接到节点时,需要 ask_pass。 只需添加 - Ansible 命令的 ask-pass 选项。 使用此选项时,Ansible 将提示用户输入密码以进行连接。
问题 10。 什么是标签?
当有一个大的 Ansible playbook,并且您想要执行其中的一部分时,可以使用标签。 标签可用于 Ansible 中的不同结构,但标签最基本的用途是用于单个任务。 标签可以应用于多个任务。 这是通过在命令行选项中使用 –tags 来完成的。 所以所有有这个标签的任务都会被执行。
问题 11。 您可以在标签的帮助下过滤任务吗?
是的,可以使用 Ansible 标签过滤任务。 这可以通过以下方式完成:
- 您可以在命令行工具上使用 –tags 选项或 –skip-tags 选项。
- 您可以在 Ansible 配置设置中使用 TAGS_RUN 和 TAGS_SKIP 选项。
问题 12。 什么是处理程序?
处理程序是常规的剧本任务,但不同之处在于剧本任务顺序发生,而处理程序在被某些事件或任务调用时执行。 只有在特定游戏中的所有任务都完成后,处理程序才会执行一次。 例如,在配置设置更改或安装完成时启动新服务。
阅读:DevOps 项目理念
问题 13。 如何测试 Ansible 项目?
以下三种方法可用于测试 Ansible 项目:
断言:断言与测试在其他语言(如 Python)中的工作方式相匹配。 它验证系统是否已到达执行测试的实际位置,而不是作为您在检查模式下找到的模拟。 断言显示该任务完成了它实际必须做的事情。
检查模式: Ansible 中的检查模式允许用户在不接触任何其他内容的情况下运行 playbook。 这意味着如果在没有检查模式的情况下执行剧本,它将让用户知道模块会发生什么变化。 检查模式就像一个模拟,是 Ansible 中使用最少的选项。

手动运行:它验证系统是否处于您希望的状态。 这是一种简单的方法,但有风险,因为结果可能与生产环境中的不同。
问题 14。 如何升级 Ansible?
升级 Ansible 是一件容易的事。 您可以使用以下命令执行此操作:
sudo pip install Ansible==<版本号>
问题 15。 你什么时候使用 {{ }}?
这是 Ansible 的基本规则之一:“使用 {{ }} 除非:”
问题 16。 如何访问 shell 环境变量?
可以使用“env”查找插件访问控制机器的现有变量。 例如; 获取管理机home环境变量的值,可以输入:
Local_home:”{{lookup('env','HOME')}}”
问题 17。 Ansible 服务器的要求是什么?
如果您使用 Windows,则必须有安装 Linux 的虚拟机。 它需要 Python 2.6 或更高版本。 如果您管理这些要求,那么您可以继续使用它。
问题 18。 变量名和环境变量有什么区别?
变量名 | 环境变量 |
要创建变量名,您必须添加字符串 | 要访问环境变量,您需要已经存在的变量 |
通过添加字符串,您可以创建多个变量名 | 您应该参考高级 Ansible Playbook 来创建环境变量 |
对于变量名,使用 ipv4 地址 | 对于远程环境变量,使用 {{ Ansible_envSOME_VARIABLES}} |
问题 19。 将 Ansible 与 Chef 进行比较。
参数 | Ansible | 厨师 |
安装和设置 | 客户端机器不需要特殊设置。 设置非常简单。 | 服务器在主机上运行,客户端代理在客户端机器上运行。 因此,设置有点棘手。 |
配置管理 | 它使用 YAML,它类似于英语并且易于理解。 | 它使用 Ruby 领域相关语言。 因此,Ruby的知识是必须的。 |
静态-动态库存 | 它使用静态和动态清单,例如,INI 文件的主机存在于不同部分。 | 用户必须在厨师服务器上注册主机。 |
价钱 | 对于基本操作,100 个节点的金额为 10,000 美元/年,高级套餐为 14,000 美元。 | 它更实惠,每个节点的支付金额为 137 美元。 |
Q20。 什么是临时命令?
Ad hoc 命令是单一任务和快速命令,不可重复使用。 它主要用于很少执行的任务。 例如,如果您想在假期前关闭实验室中的所有计算机,则可以使用单个 Ansible ad hoc 命令来完成。 该命令在 /usr/bin/Ansible 命令行工具上执行。 可以使用 ad hoc 命令执行多项任务,例如复制文件、重新启动服务器、管理用户、管理包等。
问题 21。 什么是配置管理,它如何帮助组织?
配置管理用于系统地处理更新并保持其完整性。 通过配置管理,所做的所有更新都在系统中进行维护和跟踪,并确保系统是最新的。 配置管理通过以下方式帮助组织:
- 它有助于确定随着用户需求的变化需要进行哪些更改。
- 恢复到以前的版本,以防更新的版本出现故障。
- 它替换了不正确的组件,因为用户无法准确地找到它。
- 由于自上次实施以来需求发生变化,它会更新实施。
问题 22。 Ansible 有哪些不同的组件? 解释 Ansible 架构。
Ansible 自动化引擎是 Ansible 的主要组件,它直接与配置管理数据库、不同的云服务以及编写 playbook 的用户进行通信。
Ansible 自动化引擎具有以下组件:
- Inventories:它包含所有节点、数据库和服务器的位置。
- API: Ansible API 与其他 API 一样工作。 Ansible API 有助于不同的云服务和私有或公共服务之间的通勤。
- 模块: Ansible 模块用于自动化各种任务。 这些模块有助于管理库、包、文件、系统资源等。 Ansible 有大约 450 个模块,可以自动化 Ansible 环境中的几乎所有内容。
- 插件: Ansible 插件有助于执行 Ansible 任务。 Ansible 提供了大约 100 个插件来帮助轻松执行任务。
- 网络: Ansible 通过创建剧本帮助自动化各种网络和服务。
- Playbook: Playbook 是按顺序执行的任务列表。 它们遵循 YAML 格式,用于任务自动化。
- CMDB:它是一个数据库,包含所有已安装的 IT 资产以及它们之间的关系。
- 云:它由在线托管并用于存储、管理和处理数据的远程服务器组成,而不是本地服务器。
问题 23。 playbook 和 play 和有什么不一样?

剧本包含一个或多个剧本,剧本包含一个或多个任务。
问题 25。 我们可以在 Ansible 中创建模块吗?
是的,这些模块可以在 Ansible 中创建。 Ansible 是一个适用于 python 语言的开源工具。 任何了解编码的人都可以在 Ansible 中创建模块。
另请阅读:全栈开发人员面试问题
结论
这些是必读的Ansible 面试问题,可让您为下一次面试做好准备,并获得作为 Ansible 分析师的梦想职业。 由于竞争日益激烈,各行业正在更快地适应新技术,以便他们能够跟上市场的步伐并在竞争中取得领先。 Ansible 就是这样一种技术,因其优势而受到 IT 行业的广泛关注。 如果您想了解有关 Ansible 全栈开发的更多信息,请查看 upGrad 的全栈开发计划的 PG 文凭。