【13】进大厂必须掌握的面试题-配置管理面试

Q1。配置管理流程的目标是什么?

配置管理(CM)的目的是通过使开发或部署过程可控和可重复,从而创建更高质量的产品或系统,来确保产品或系统在其整个生命周期中的完整性。CM流程允许对系统信息和系统更改进行有序管理,以实现以下目的:

  • 修改功能,
  • 提高绩效
  • 可靠性或可维护性,
  • 延长寿命
  • 降低成本,
  • 降低风险并
  • 责任或纠正缺陷。

Q2。资产管理和配置管理有什么区别?

以下是资产管理和配置管理之间的一些区别:

资产管理配置管理-devops面试问题

Q3。资产和配置项有什么区别?

据我说,您应该首先解释资产。它具有财务价值以及附加的折旧率。IT资产只是其中的一个子集。任何有成本的东西,组织将其用于资产价值计算和税收计算中的相关收益,都属于“资产管理”,该项目称为资产。
另一方面,配置项目可能没有分配财务价值。它不会有任何与之相关的折旧。因此,其寿命将不取决于其财务价值,而是取决于该项目成为组织过时的时间。

现在,您可以举一个例子来展示两者之间的相似性和区别:
1)相似性:
服务器–它既是资产又是配置项。
2)差异:
建筑–它是资产,而不是CI。
单据–这是配置项,但不是资产

Q4。您对“基础架构即代码”有什么了解?它如何适合DevOps方法?它能达到什么目的?

基础架构即代码(IAC)是一种IT基础架构,运营团队可以使用它来通过代码自动管理和配置,而不是使用手动流程。
要求更快部署的公司将基础设施像软件一样:视为可以用DevOps工具和流程进行管理的代码。这些工具使您可以更轻松,快速,安全和可靠地进行基础架构更改。

Q5。在Puppet,Chef,SaltStack和Ansible中,哪一个是最佳的配置管理(CM)工具?为什么?

这取决于组织的需求,因此请在所有这些工具上提及几点:
Puppet是最古老,最成熟的CM工具。Puppet是一个基于Ruby的配置管理工具,但是尽管它具有一些免费功能,但许多使Puppet出色的功能仅在付费版本中可用。不需要很多额外功能的组织会发现Puppet很有用,但是那些需要更多自定义的组织可能需要升级到付费版本。
Chef是用Ruby编写的,因此可以由了解该语言的人自定义。它还包括免费功能,并且必要时可以将其从开源升级到企业级。最重要的是,它是一种非常灵活的产品。
Ansible是一个非常安全的选项,因为它使用Secure Shell。这是一个易于使用的工具,但是除了配置管理之外,它还提供了许多其他服务。它非常容易学习,因此非常适合那些没有专门的IT员工但仍需要配置管理工具的人。
SaltStack是面向大型企业的基于python的开源CM工具,但是其学习曲线相当低。

Q6。什么是Puppet?

我建议您首先给Puppet一个小定义。这是一个配置管理工具,用于自动执行管理任务。
现在,您应该描述其架构以及Puppet如何管理其代理。Puppet具有Master-Slave体系结构,其中Slave必须首先向Master发送证书签名请求,Master必须对该证书进行签名,以便在Puppet Master和Puppet Slave之间建立安全连接,如下图所示。Puppet Slave向Puppet Master发送请求,然后Puppet Master在Slave上推送配置。

Q7。在客户可以通过Puppet Master进行身份验证之前,需要先签名并接受其证书。您将如何自动执行此任务?

最简单的方法是在puppet.conf中启用自动签名。
务必提及这是安全隐患。如果您仍然想这样做:

  • 将Puppet主服务器防火墙-将端口tcp / 8140限制为仅信任的网络。
  • 为每个“信任区域”创建人偶母版,并且仅在该人偶母版清单中包括受信任的节点。
  • 切勿使用完整的通配符,例如*。

Q8。描述您通过Puppet自动化流程所获得的最大收益。

对于这个答案,我建议您向您解释过去使用Puppet的经验。您可以参考以下示例:
我使用Puppet自动化了Linux和Windows计算机的配置和部署。除了将处理时间从一周减少到10分钟之外,我还使用了角色和配置文件模式,并在README中记录了每个模块的用途,以确保其他人可以使用Git更新该模块。我编写的模块仍在使用,但是我的队友和社区成员对它们进行了改进

Q9。您使用哪些开放源代码或社区工具来增强Puppet的功能?

在这里,您需要提及这些工具以及如何使用这些工具使Puppet更加强大。以下是一个供您参考的示例:
更改和请求通过Jira进行票证,我们通过内部流程管理请求。然后,我们使用Git和Puppet的代码管理器应用程序根据最佳实践来管理Puppet代码。此外,我们使用烧杯测试框架通过Jenkins的持续集成管道来运行所有Puppet更改。

Q10。什么是人偶清单?

这是一个非常重要的问题,因此请确保流程正确。据我说,您应该首先定义清单。每个节点(或Puppet代理)在Puppet Master中都有其配置详细信息,以本机Puppet语言编写。这些详细信息以Puppet可以理解的语言编写,被称为清单。它们由Puppet代码组成,其文件名使用.pp扩展名。
现在举一个例子。您可以在Puppet Master中编写清单,以创建文件并在连接到Puppet Master的所有Puppet代理(从站)上安装apache。

Q11。 什么是Puppet Module?与Puppet Manifest有何不同?

对于此答案,您可以使用以下提到的解释:
人偶模块是清单和数据(例如事实,文件和模板)的集合,它们具有特定的目录结构。模块对于组织Puppet代码很有用,因为它们使您可以将代码拆分为多个清单。使用模块组织几乎所有的人偶清单被认为是最佳实践。
人偶程序称为清单,由人偶代码组成,其文件名使用.pp扩展名。

Q12。 Puppet的因素是什么?

您应该回答Facter在Puppet中的确切功能,所以据我说,“ Facter收集有关Puppet Agent的基本信息(事实),例如硬件详细信息,网络设置,操作系统类型和版本,IP地址,MAC地址, SSH密钥等。这些事实然后在Puppet Master的清单中作为变量提供。”

Q13。什么是Chef?

通过定义Chef开始此答案。它是一个强大的自动化平台,可将基础结构转换为代码。Chef是一种工具,您可以为其编写用于自动化过程的脚本。什么过程?与IT相关的几乎所有内容。
现在,您可以解释Chef的体系结构,它包括:

  • Chef Server: Chef Server是基础结构配置数据的中央存储。Chef服务器存储配置节点所需的数据并提供搜索功能,该功能强大的工具可让您根据数据动态驱动节点配置。
  • Chef节点:节点是使用Chef客户端配置的任何主机。Chef-client在您的节点上运行,请与Chef服务器联系以获取配置节点所需的信息。由于节点是运行Chef-client软件的计算机,因此有时将节点称为“客户端”。
  • Chef Workstation: Chef Workstation是用于修改菜谱和其他配置数据的主机。

Q14。Chef中的资源是什么?

我的建议是首先定义资源。资源代表基础架构及其所需的状态,例如应安装的软件包,应运行的服务或应生成的文件。
您应该解释有关Resource的功能,包括以下几点:

  • 描述配置项的期望状态。
  • 声明使该项目达到所需状态所需的步骤。
  • 指定资源类型,例如包,模板或服务。
  • 根据需要列出其他详细信息(也称为资源属性)。
  • 被分为描述工作配置的配方。

Q15。你用Chef的资源是什么意思?

对于此答案,我建议您使用上述流程:首先定义配方。资源是资源的集合,描述了特定的配置或策略。资源描述了配置系统部分所需的一切。
定义之后,通过包括以下几点来说明资源的功能:

  • 安装和配置软件组件。
  • 管理文件。
  • 部署应用程序。
  • 执行其他资源。

Q16。 资源与Chef资源有何不同?

答案很直接。您可以简单地说:“资源是资源的集合,主要配置软件包或某些基础结构。“资源”将资源和其他信息组合在一起,比仅包含资源更易于管理。”

Q17。 如果您未在Chef中指定资源的操作,会发生什么情况?

我的建议是首先给出一个直接的答案:当您不指定资源的操作时,Chef将应用默认操作。
现在用一个例子来说明这一点,下面的资源:

file ‘C:UsersAdministratorchef-reposettings.ini’ do
content ‘greeting=hello world’
end

是相同以下资源:

file ‘C:UsersAdministratorchef-reposettings.ini’ do
action :create
content ‘greeting=hello world’
end

是因为:创建的文件资源的默认操作。

Q18。什么是Ansible模块?

在Ansible中,模块被视为工作单元。每个模块大部分都是独立的,可以用标准脚本语言编写,例如Python,Perl,Ruby,bash等。模块的指导属性之一是幂等,这意味着即使多次重复操作,例如从中断中恢复,它将始终将系统置于相同状态。

Q19。什么是Ansible中的剧本?

剧本是Ansible的配置,部署和编排语言。它们可以描述您希望远程系统执行的策略,或一般IT流程中的一组步骤。剧本被设计为人类可读的并且以基本文本语言开发。
从根本上讲,剧本可用于管理远程计算机的配置和部署。

Q20。 我如何查看所有ansible_变量的列表?

默认情况下,Ansible收集有关所管理机器的“事实”,并且可以在Playbook和模板中访问这些事实。要查看有关计算机的所有可用事实的列表,可以作为临时操作运行“ setup”模块:
**Ansible -m setup主机名

**这将打印出所有可用的事实的字典。该特定主机。

Q21。如何设置应用程序的部署顺序?

WebLogic Server 8.1允许您选择应用程序的加载顺序。请参阅“应用程序”中的“应用程序MBean加载顺序”属性。WebLogic Server在部署应用程序之前先部署服务器级资源(首先是JDBC,然后是JMS)。应用程序的部署顺序如下:连接器,然后是EJB,然后是Web应用程序。如果应用程序是EAR,则按照在application.xml部署描述符中声明它们的顺序加载各个组件。

Q22。是否可以在不重新部署整个应用程序的情况下刷新已部署应用程序的静态组件?

是的,您可以使用以下语法使用weblogic.Deployer来指定组件并以服务器为目标:
java weblogic.Deployer -adminurl http:// admin:7001 -name appname -targets server1,server2 -deploy jsps / *。jsp

Q23。如何关闭自动部署功能?

自动部署功能每三秒钟检查一次应用程序文件夹,以确定是否有任何新应用程序或对现有应用程序的任何更改,然后动态部署这些更改。

为在开发模式下运行的服务器启用了自动部署功能。要禁用自动部署功能,请使用以下方法之一将服务器置于生产模式:

  • 在管理控制台中,单击左窗格中的域名称,然后在右窗格中选择“生产模式”复选框。
  • 在启动域的管理服务器时,在命令行中包含以下参数:
    -Dweblogic.ProductionModeEnabled = true
  • 将为给定域中的所有WebLogic Server实例设置生产模式。

Q24。什么时候应该使用external_stage选项?

如果要自己暂存应用程序,请使用weblogic.Deployer设置-external_stage,并且希望通过自己的方式将其复制到其目标。

欢迎关注 Java架构师社区公众号.
本文转载自Java架构师必看 ,更多内容点击查看!

你可能感兴趣的:(【13】进大厂必须掌握的面试题-配置管理面试)