【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架構師必看 ,更多內容點擊查看!

相關文章
相關標籤/搜索