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

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

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

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

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

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

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

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

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

如今,您能够举一个例子来展现二者之间的类似性和区别:
1)类似性:
服务器–它既是资产又是配置项。
2)差别:
建筑–它是资产,而不是CI。
单据–这是配置项,但不是资产面试

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

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

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上推送配置。bash

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架构师必看 ,更多内容点击查看!

相关文章
相关标签/搜索