zoukankan      html  css  js  c++  java
  • Devops 配置管理面试问题

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

    配置管理(CM)的目的是通过使开发或部署过程可控和可重复,确保产品或系统在其整个生命周期中的完整性,从而创建更高质量的产品或系统。 CM流程允许有序管理系统信息和系统更改,以便:
    
    修改能力, 提高性能, 可靠性或可维护性, 延长寿命, 降低成本, 降低风险 责任或正确的缺陷。

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

    我认为,你应该首先解释资产。它具有财务价值以及附加的折旧率。IT资产只是它的一个子集。任何具有成本的组织和组织都将其用于资产价值计算和税收计算中的相关收益属于资产管理,此类项目称为资产。 另一方面,配置项可能有也可能没有分配给它的财务值。它不会有任何与之相关的折旧。因此,它的生命不依赖于其财务价值,而是取决于该项目对该组织过时的时间。
    
    然后,您可以举例说明两者之间的相似性和差异:
    
    1)相似性: 服务器 - 它既是资产又是CM。
    2)差异: 构建 - 这是一种资产,但不是CM。

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

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

      ##什么是Puppet?

    建议你先给出一个小小的Puppet定义。它是一个配置管理工具,用于自动执行管理任务。 现在您应该描述其架构以及Puppet如何管理其代理。Puppet具有主从架构,其中Slave必须首先向Master发送证书签名请求,并且Master必须签署该证书以便在Puppet Master和Puppet Slave之间建立安全连接,如下图所示。Puppet Slave向Puppet Master和Puppet Master发送请求,然后在Slave上推送配置。 请参阅下面的图解释上述说明。

       ##在客户端使用Puppet Master进行身份验证之前,需要对其证书进行签名和接受。你将如何自动完成这项任务?

    最简单的方法是在puppet.conf中启用自动签名。 请注意这是一个安全风险。如果你还想这样做:
    
    把Puppet master加入防火墙 - 限制端口tcp / 8140只限于你信任的网络。 为每个“信任区域”创建puppet master,并且只在该Puppet master清单中包含受信任的节点。

      ##描述通过Puppet自动化流程所取得的最重要的收益。

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

      ##您使用哪些开源或社区工具来使Puppet更强大?

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

      ##什么是Puppet清单?

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

      ##什么是Puppet模块以及它与Puppet Manifest的不同之处?

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

      ##什么是Puppet的Facter?

    你应该回答Facter在Puppet中做了什么,所以根据我的说法,你应该说:Facter收集有关Puppet Agent的基本信息(事实),例如硬件细节,网络设置,操作系统类型和版本,IP地址,MAC地址, SSH密钥等等。这些事实随后在Puppet Master的Manifests中作为变量提供。

      ##资料转载来源

    https://www.sohu.com/a/249411015_607181
  • 相关阅读:
    android 入门-工程属性介绍
    android 入门-android属性介绍
    android 入门-布局
    android 入门-动画与容器
    android 入门- 词汇
    android 入门-引用库项目
    android 入门-防微信拍摄视频 按钮事件处理
    WPF Adorner
    c# Quartz.net的简单封装
    WPF 触摸屏小键盘样式
  • 原文地址:https://www.cnblogs.com/liangzhenghong/p/11502639.html
Copyright © 2011-2022 走看看