Top 19 Ansible 面试题及答案 (PDF)

这里是为新手和有经验的候选人准备的 Ansible 面试问题及答案,以帮助他们找到梦想的工作。

 

面向新手 Ansible 面试问题

1) 什么是 Ansible?

Ansible 是一个配置管理系统。它用于设置和管理基础设施和应用程序。它允许用户通过 SSH 部署和更新应用程序,而无需在远程系统上安装代理。

👉 免费 PDF 下载:Ansible 面试问题与答案 >>


2) Ansible 有什么用?

Ansible 用于管理 IT 基础设施并将软件应用部署到远程节点。

例如,Ansible 允许您使用一个命令将应用程序部署到多个节点。但是,为此需要一些编程知识来理解 ansible 脚本。


3) 什么是 Ansible Galaxy?

Ansible 可以通过命令行使用 ansible 命令与已配置的客户端进行通信。它还允许您使用 ansible-playbook 命令自动化配置。要创建基本目录结构,您可以使用 Ansible 捆绑的工具,称为 ansible-galaxy。

命令

$ ansible-galaxy init azavea. packer

azavea.packer 已成功创建


4) 什么是持续交付?

持续交付是一种在软件开发完成后立即交付软件的实践。在此方法中,我们需要使用版本控制系统。软件会在实时生产系统中不断更新。


5) 如何在 Ansible 中访问 shell 环境变量?

在 Ansible 中,如果要访问现有变量,用户需要使用 'env' lookup 插件。例如,要访问管理机器上 Office 环境变量的值

您需要编写以下代码

---
# ...
vars:
local_home: "{{ lookup('env','Office') }}"
I
{{ ansible_env.SOME_VARIABLE }}

Ansible Interview Question And Answers


6) 您需要编写什么代码来访问变量名?

可以通过添加以下方法来构建变量名

{{ hostvars[inventory_hostname]['ansible_' + which_interface]['ipv4']['address'] }}

使用 hostvars 的方法很重要,因为它是整个变量命名空间的字典。‘inventory_hostname’ 变量指定了您在 host 循环中正在查看的当前主机。


7) 说明如何禁用 cowsay?

如果安装了 cowsay,那么在 Ansible 中执行 playbook 时,您可以使用以下选项禁用 cowsay:

  1. 卸载 cowsay
  2. 设置环境变量的值

export ANSIBLE_NOCOWS=1


8) 说明如何将文件递归复制到目标主机?

“copy” 模块有一个 recursive 参数。但是,如果您希望它对大量文件执行更有效率,那么“synchronize” 模块是您的最佳选择。


9) 如何向 Ansible 的文档提交更改?

Ansible 的文档保存在项目的 git 存储库中。有关贡献的完整说明可以在文档中找到。


10) 使内容可重用/可分发的最佳方法是什么?

您可以在 playbook 文档部分阅读有关“Roles”的所有内容。这有助于使 playbook 内容独立并与其他 ansible 用户共享。


面向有经验的专业人士的 Ansible 面试问题和答案

11) 什么是 Ansible Tower?

Ansible Tower 是一个使 Ansible 非常易于使用的工具。它充当任务自动化的中心。Tower 最多可免费用于 10 个节点。


12) 检查为主机定义的清单变量的方法是什么?

为此请使用此命令

ansible -m debug -a "var=hostvars['hostname']" localhost

13) 说明变量名和环境变量之间的区别。

变量名 环境变量
可以通过添加字符串来构建它。 要访问环境变量,您需要访问现有变量。
{{ hostvars[inventory_hostname][‘ansible_’ + which_interface][‘ipv4’][‘address’] }} # ... vars: local_home: “{{ lookup(‘env’,’HOME’) }}”
允许添加字符串 要设置环境变量,我们需要查看高级 playbook 部分。
IPv4 地址类型使用变量名,我们使用 IPv4 地址。 对于远程环境变量,使用 {{ ansible_env.SOME_VARIABLE }}

14) 什么是 ad-hoc 命令?

您可以将 ad-hoc 命令视为一种在不编写 playbook 的情况下对我们的主机执行操作的方法。例如,如果您想重新启动某个组(webservers)中的所有主机。然后您可以编写一个 playbook,或者只运行一个一次性的 ad-hoc 命令。


15) 解释 Ansible facts

您可以将 ansible facts 视为一种让 ansible 获取有关主机信息并将其存储在变量中以便于访问的方式。这些存储在预定义变量中的信息可用于 playbook。为了生成 facts,ansible 会运行 setup 模块。


16) 如何查看主机的所有变量?

您可以使用 hostvars 变量查看它们。它以主机名作为键存储主机变量。例如,要查看为 localhost 定义的变量,您可以运行:

ansible -m debug -a "var=hostvars[inventory_hostname]"

17) 解释 ansible 中的模块

Ansible 中的模块是幂等的。从 RESTful 服务的角度来看,为了使操作具有幂等性,客户端可以通过使用 Ansible 中的模块来实现相同的结果。多个相同的请求将成为一个请求。

Ansible 中有两种不同类型的模块

  • 核心模块
  • 附加模块

核心模块

Ansible 团队维护这些类型的模块,并且它们始终会与 Ansible 软件一起发布。它们还将为所有请求提供比“附加”存储库中的请求更高的优先级。

附加模块

这些模块当前与 Ansible 一起捆绑,但将来可能会单独提供。它们也大多由 Ansible 社区维护。这些模块仍然可用,但对问题和拉取请求的响应速度可能会较低。


18) 何时应该测试 playbook 和 roles?

在 ansible 中,测试可以添加到新的 Playbook 中,也可以添加到现有的 Playbook 中。因此,大多数测试工作每次都提供干净的托管。通过使用这种测试方法,您只需要进行很少甚至不需要的代码更改。


19) 讨论使用 Ansible 创建空文件的方法

要创建空文件,您需要遵循以下步骤:

步骤 1. 将空文件保存到 Files 目录

步骤 2. 将其复制到远程主机。

这些面试问题也将有助于您的口试