Puppet面试题及答案 - [ 软件和工具 ]

Puppet是一种开源软件配置管理工具。 它可以在许多类似Unix的系统以及Microsoft Windows上运行,并且包括自己的描述性语言来描述系统配置。

1. 什么是Puppet?

Puppet是一种开源软件配置管理工具。 它可以在许多类似Unix的系统以及Microsoft Windows上运行,并且包括自己的描述性语言来描述系统配置。

详细答案>>

2. Puppet和Chef有什么用?

Puppet和Chef是Linux上主要的配置管理系统,还有CFEngine Ansible。 Chef除了Puppet和Ansible以外,还是配置管理工具,是业界最著名的基础架构即代码(IAC)工具之一。

详细答案>>

3. Puppet如何工作?

Puppet Agent是一个守护程序,它在所有客户端服务器(您需要进行一些配置的服务器或将要使用puppet管理的服务器)上运行。所有要管理的客户端上都将安装puppet代理, 在木偶中被称为节点。详细答案>>

4. Puppet中的资源是什么?

资源是建模系统配置的基本单元。 每个资源都描述了系统的某些方面,例如特定的服务或程序包。资源声明是一个表达式,它描述资源的所需状态,并告诉Puppet将其添加到目录中。 当Puppet将目录应用到目标系统时,它将管理其中包含的每个资源,从而确保实际状态与所需状态匹配。详细答案>>

5. Puppet中的资源类型是什么?

每个资源都与一种资源类型相关联,资源类型决定了它管理的配置类型。
Puppet具有许多内置资源类型,例如文件,cron作业,服务等。有关内置资源类型的信息,请参阅资源类型参考。

详细答案>>

6. 如何将新资源类型添加到Puppet?

可以向Puppet添加新的资源类型:

  • 定义的类型是用Puppet语言编写的轻量级资源类型。
  • 自定义资源类型是用Ruby编写的,可以访问与Puppet内置类型相同的功能。
详细答案>>

7. Puppet中的类是什么?

类是已命名的Puppet代码块,存储在模块中以供以后使用,并且在按名称调用之前不会应用。 通过在清单中声明它们或从ENC分配它们,可以将它们添加到节点的目录中。 类通常配置大型或中型功能块,例如运行应用程序所需的所有软件包,配置文件和服务。详细答案>>

8. Puppet中的Node定义是什么?

节点定义或节点语句是Puppet代码块,只会包含在匹配节点的目录中。 此功能使可以将特定的配置分配给特定的节点。

详细答案>>

9. Puppet的 facts 是什么?

在请求目录(或使用puppet编制目录)之前,Puppet将使用Facter收集系统信息。 Puppet会将此信息作为facts 接收,这些信息是可以在清单中的任何位置使用的预设变量。

详细答案>>

10. Puppet可以访问哪些facts?

Puppet可以访问以下facts:
Facter的内置核心facts。 模块中存在的任何自定义facts或外部facts。

详细答案>>

11. Puppet中的函数是什么?

用Puppet语言编写自己的函数来转换数据和构造值。 一个函数可以选择将一个或多个参数作为参数。 函数从其最终表达式返回计算值。 Puppet中的函数语法: function <MODULE NAME>::<NAME>(<PARAMETER LIST>) >> <RETURN TYPE> { ... body of function ... final expression, which will be the returned value...详细答案>>

12. Puppet中的类是什么?请给出一些示例。

类被称为Puppet代码的命名块,存储在模块中以供以后使用,并且只有在通过名称调用它们之后才能应用。 通过在清单中声明它们或从ENC分配它们,可以将它们添加到节点的目录中。 类通常配置大型或中型功能块,例如运行应用程序所需的所有软件包,配置文件和服务。 在Puppet中定义类:定义一个类使其可供以后使用。 它尚未向目录添加任何资源; 为此必须声明它或从ENC分配它。 Puppet中的类语法: # A class with no parametersclass base::linux { file { ...详细答案>>

13. 如何使用Puppet配置系统?

可以在客户端/服务器体系结构中使用Puppet代理和Puppet主应用程序配置系统,也可以在独立体系结构中使用Puppet Apply应用程序配置系统。

详细答案>>

14. Puppet中的目录是什么?

目录是描述一台特定计算机所需系统状态的文档。它列出了需要管理的所有资源,以及这些资源之间的任何依存关系。Puppet分两个阶段配置系统: 编译目录。 应用目录。详细答案>>

15. 解释Puppet中的代理/主控架构?

当设置为代理/主服务器体系结构时,Puppet主服务器控制配置信息,并且每个受管代理节点都向主服务器请求其自己的配置目录。在此体系结构中,受管节点通常作为后台服务运行Puppet代理应用程序。 一台或多台服务器运行Puppet主应用程序Puppet Server。详细答案>>

16. Puppet代理节点和Puppet主节点如何相互通信?

Puppet代理节点和Puppet主节点通过HTTPS与客户端验证进行通信。Puppet主服务器提供HTTP接口,并提供各种端点。 当向主机请求或提交任何内容时,代理会向那些端点之一发出HTTPS请求。客户端验证的HTTPS意味着每个主服务器或代理都必须具有标识SSL证书。 他们各自检查对方的证书,以决定是否允许交换信息。Puppet包括用于管理证书的内置证书颁发机构。代理可以通过主服务器的HTTP API自动请求证书。 您可以使用puppet cert命令检查请求并签署新证书。 然后,代理可以下载已签...详细答案>>

17. Puppet中的独立体系结构是什么样的?

Puppet可以在独立体系结构中运行,其中每个受管节点都具有自己的配置信息的完整副本并编译自己的目录。 在这种体系结构中,受管节点通常以计划任务或cron作业的形式运行Puppet apply应用程序。 您也可以根据需要运行它,以用于服务器的初始配置或较小的配置任务。 像Puppet主应用程序一样,Puppet apply需要访问多个配置数据源,它可用于为所管理节点编译目录。详细答案>>

18. 如何在Linux中安装Puppet代理?

安装Puppet代理,以便您的主服务器可以与Linux节点通信。 1.安装发行包以启用Puppet平台存储库。2.确认您可以运行Puppet可执行文件。 Puppet可执行文件的位置是/opt/puppetlabs/bin/,默认情况下不在您的PATH环境变量中。 可执行文件路径与Puppet服务无关紧要,例如,服务puppet start的工作与PATH无关,但是,如果您正在运行交互式puppet命令,则必须将其位置添加到PATH或使用其完整路径执行它们。 要将可执行位置快速添加到当前终端会话的PAT...详细答案>>

19. 什么是Puppet codedir?

Puppet的codedir是Puppet代码和数据的主目录。 它包含环境(包含清单和模块),适用于所有环境的全局模块目录以及Hiera数据。

详细答案>>

20. 在Puppet的哪里能找到codedir?

Puppet的代码目录可在以下位置之一找到: *nix Systems: /etc/puppetlabs/codeWindows: %PROGRAMDATA%\PuppetLabs\code (一般在 C:\ProgramData\PuppetLabs\code)non-root users: ~/.puppetlabs/etc/code详细答案>>

21. 在Puppet中配置了codedir的文件位置是?

在puppet.conf中可以使用codedir设置来配置codedir的位置,但是请注意,Puppet Server不会使用该设置。 它在puppetserver.conf中具有自己的jruby-puppet.master-code-dir设置。 如果您使用的是非默认代码目录,则必须同时更改这两个设置。详细答案>>

22. Puppet中的主要清单或站点清单是什么?

Puppet总是开始使用单个清单文件或清单目录进行编译,这些清单被视为单个文件。 该主要起点称为主要清单或站点清单。

详细答案>>

23. puppet apply是什么?

puppet apply命令需要清单作为命令行上的参数。 (例如:puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp。)它可以是单个文件或文件目录。 puppet apply命令不会自动使用环境的清单。它始终使用传递给它的清单。详细答案>>

24. Puppet中的modulepath是什么?

Puppet主服务和puppet apply命令都从模块加载它们的大部分内容。
Puppet会自动从一个或多个目录中加载模块。 Puppet将在其中找到模块的目录列表称为modulepath。

详细答案>>

25. 什么是基本模块路径(basemodulepath)?

基本模块路径是在所有环境中使用的全局模块目录的列表。 可以使用basemodulepath设置对其进行配置,但是除非您执行了其他操作,否则它的默认值可能适合您。 basemodulepath设置的默认值为 - $codedir/modules:/opt/puppetlabs/puppet/modules. Windows系统中只是:$codedir\modules详细答案>>

26. 什么是SSLdir?

Puppet将其证书基础结构存储在ssldir目录中。 该目录在所有Puppet节点上具有相似的结构,无论它们是代理节点,Puppet主服务器还是证书颁发机构(CA)主节点。

详细答案>>

27. Puppet中的ssldir目录包含什么?

ssldir目录包含木偶证书,私钥,证书签名请求(CSR)和其他加密文档。代理节点和Puppet主节点上的ssldir目录包含一个私钥(private_keys/<certname>.pem),一个公钥(public_keys/<certname.pem>),一个签名证书(certs/ certname> pem),一个 CA证书的副本(certs/a.pem),以及证书吊销列表(CRL)的副本(crl.pem)。 他们通常还会在提交CSR后保留其CSR副本(certifi...详细答案>>

28. 什么是Puppet中的缓存目录(vardir)?

Puppet的缓存目录(有时称为vardir)包含Puppet在其正常操作过程中创建的动态或不断增长的数据。 可以挖掘其中一些数据进行有趣的分析,或将其他工具与Puppet集成。 其他部分只是基础架构,可以忽略。详细答案>>

29. vardir可以存储在Puppet中的什么地方?

vardir目录的位置Puppet Server的缓存目录默认为/opt/puppetlabs/server/data/puppetserver。可在以下位置之一找到Puppet代理和Puppet应用的缓存目录: *nix Systems: /var/opt/puppetlabs/puppet/cachenon-root users:~/.puppetlabs/opt/puppet/cacheWindows: %PROGRAMDATA%\PuppetLabs\puppet\cache (通常为: C:\...详细答案>>

30. Puppet哪些类型的环境?

环境的主要用途可分为三类:永久测试环境,临时测试环境和分散的基础结构。

详细答案>>

31. Puppet中的永久测试环境是什么?

在一个永久的Puppet测试环境中,有一个稳定的测试节点组,所有更改必须成功才能合并到生产代码中。 测试节点是整个生产基础结构的较小版本。

详细答案>>

32. Puppet中有哪些临时测试环境?

在临时测试环境中,您可以通过将版本控制中的更改签入$codedir/environments目录来测试单个更改或一组更改,在该目录中该更改将被检测为新环境。 临时测试环境可以具有描述性名称,也可以使用其基于版本的提交ID。详细答案>>

33. 在Puppet中什么是划分的基础架构?

如果您的基础架构部分由不需要协调其代码的不同团队管理,则可以将其拆分为多个环境。

详细答案>>

34. Puppet中的模块是什么?

模块是独立的代码和数据束。 这些可重复使用的,可共享的Puppet代码单元是Puppet的基本构建块。几乎所有Puppet清单都属于模块。 唯一的例外是main site.pp清单,其中包含站点范围和特定于节点的代码。详细答案>>

35. hat 是Puppet 中的模块布局吗?

在磁盘上,模块是具有特定可预测结构的目录树:
<MODULE NAME> manifests -

  • files
  • templates
  • lib
  • facts
  • examples
  • spec
  • functions
  • types
详细答案>>

36. Puppet模块中的插件类型是什么?

Puppet支持多种插件:自定义事实(用Ruby编写)。外部事实(可执行脚本或静态数据)。自定义资源类型和提供程序(用Ruby编写),用Ruby编写的自定义函数,用Puppet语言编写的自定义函数,自定义Augeas镜头,其他插件使用的其他实用程序Ruby代码。详细答案>>

37. 什么是puppet module命令?

puppet module命令提供了一个接口,用于管理Puppet Forge中的模块。 它的接口类似于几个常见的程序包管理器(例如gem,apt-get或yum)。可以使用puppet module命令搜索,安装和管理模块。详细答案>>

38. 解释如何从Puppet的命令行安装模块的过程?

puppet module install命令将安装模块及其所有依赖项。 默认情况下,它安装在Puppet模块路径的第一个目录中,默认目录为$codedir/environments/production/modules。 例如,要安装puppetlabs-apache模块,请运行:puppet模块安装puppetlabs-apache详细答案>>

39. 解释如何从Puppet Forge安装模块的过程吗?

要从Puppet Forge安装模块,请使用puppet module install命令以及所需模块的全名。Forge模块的全名格式为username-modulename。 例如,要安装puppetlabs-apache:puppet模块安装puppetlabs-apache详细答案>>

40. 如何检查Puppet中已安装的模块?

使用puppet module list命令查看安装的模块以及安装的目录。
要查看按依赖性排列的模块而不是磁盘上的位置,请使用–tree选项。

详细答案>>

41. 如何在Puppet中卸载模块?

使用puppet module uninstall命令删除已安装的模块。

详细答案>>

42. Puppet的核心命令有哪些?

Puppet的核心命令是: Pupper AgentPupper ServerPuppet ApplyPuppet CertPuppet ModulePuppet ResourcePuppet ConfigPuppet ParserPuppet HelpPuppet Man详细答案>>

43. 什么是Puppet代理?

Puppet代理在Puppet主服务器的帮助下管理系统。 它从Puppet主服务器请求配置目录,然后确保该目录中的所有资源都处于所需状态。

详细答案>>

44. 什么是Puppet服务器?

Puppet服务器使用Puppet代码和各种其他数据源编译任意数量的Puppet代理的配置。它提供与经典Puppet主应用程序相同的服务,以及更多。

详细答案>>

45. Puppet适用哪些应用?

Puppet应用管理系统,而无需联系Puppet主服务器。 它使用Puppet模块和各种其他数据源编译自己的配置目录,然后立即应用该目录。

详细答案>>

46. 什么是Puppet证书?

Puppet证书有助于管理Puppet的内置证书颁发机构(CA)。 它与Puppet主应用程序在同一服务器上运行。 您可以使用它来签名和撤销代理证书。

详细答案>>

47. 什么是Puppet模块?

Puppet模块是用于处理Puppet模块的多功能工具。 它可以从Puppet Forge安装和升级新模块,帮助生成新模块,并打包模块以供公众发布。

详细答案>>

48. 什么是Puppet资源?

Puppet资源可让您交互式地检查和操作系统上的资源。 它可以与Puppet知道的任何资源类型一起使用。

详细答案>>

49. 什么是Puppet配置?

Puppet配置可让您查看和更改Puppet的设置。

详细答案>>

50. Puppet解析器是什么?

Puppet解析器使您可以验证Puppet代码,以确保其中不包含语法错误。 它可能是持续集成工具链中有用的一部分。

详细答案>>

51. Puppet help和Puppet man是什么?

Puppet help和Puppet man可以显示Puppet其他子命令的在线帮助。

详细答案>>

52. Puppet中的子命令是什么?

Puppet的命令行工具由一个带有多个子命令的Puppet二进制文件组成。 在此版本的Puppet中可以使用以下子命令:核心工具:这些子命令构成了Puppet工具集的核心,每个用户都应该了解他们的工作。 puppet agentpuppet applypuppet certpuppet masterpuppet modulepuppet resourcepuppet lookup 偶尔有用的子命令 很多或大多数用户有时会需要使用这些子命令,但日常使用并不需要核心工具。 puppet configpu...详细答案>>

53. Puppet服务器是什么?

Puppet服务器是在Java虚拟机(JVM)上运行的应用程序,提供与经典Puppet主应用程序相同的服务。 它主要是通过在几个JRuby解释器中运行现有的Puppet主代码来实现的,但是它用用Clojure编写的新服务替换了经典应用程序的某些部分。详细答案>>

54. 什么是Hiera?

Hiera是用于从Puppet代码中分离数据的键/值查找。 Hiera是Puppet的内置键值配置数据查找系统。Puppet的优势在于可重用的代码。 满足许多需求的代码必须是可配置的:将特定于站点的信息放在外部配置数据文件中,而不是在代码本身中。详细答案>>

55. 为什么Puppet 使用Hiera?

Puppet 使用Hiera做两件事:将配置数据存储在键-值对中查找在目录编译期间特定模块对给定节点需要哪些数据,可通过以下方式完成: 目录中包含的类的自动参数查找明确的查询调用详细答案>>

56. Puppet中的PSON是什么?

PSON是JSON的一种变体,p用于序列化数据以在网络上传输或存储在磁盘上。 JSON要求序列化格式为有效的Unicode(通常为UTF-8),而PSON是8位ASCII,这使它可以表示字符串中的任意字节序列。 Puppet使用MIME类型“pson”和“text/pson”来引用PSON。详细答案>>

57. PSON与JSON有什么不同?

PSON在表示对象,数组,数字,布尔值和null值方面与JSON并无不同。 PSON的序列化字符串不同于JSON.PSON字符串是8位ASCII编码数据序列。 它必须以“(ASCII 0x22)”字符开头和结尾。

详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。