自動化Linux
1. Linux裡面自動化部署工具有哪些
1. Puppet
Puppet是一款開源工具,旨在為系統管理員大大簡化自動化和報告工作。它基本上是款配置管理軟體,有助於配置和維護企業網路中的伺服器及其他系統。系統管理員通常每天要花大量時間重復做同樣的任務。他們總是想要使這些任務實現自動化,以便有更多的時間來處理其他項目或學習新的概念和腳本語言。管理員可以通過編寫腳本使任務實現自動化,但是在擁有大型網路的公司,腳本不是很方便。這時候,Puppet就大有用場,因為藉助Puppet,你可以:
為網路上的每個主機定義獨特的配置設置;
不斷監測網路,查找任何變動;
幫助高效地創建和管理用戶;
幫助管理每個開源工具的配置設置。
2. CHEF
Chef是另一款可供Linux系統管理員使用的流行的自動化工具。它用Ruby和Erlang編寫,對於配置和維護公司的伺服器大有幫助,無論貴公司擁有十台伺服器還是上百台。它還可以幫助你將雲端伺服器與亞馬遜EC2、OpenStack、RackSpace或谷歌雲整合起來。Chef可以將你的基礎設施轉變成代碼,那樣藉助代碼,你只要更改幾行代碼,就能輕松撤下一台伺服器,從而讓你輕松管理伺服器。物理節點還意味著:將變更內容部署到生產環境之前,可以對它輕松進行測試,你還可以輕松控制針對代碼的每次更新的版本。Chef DK為你提供了測試和管理配置的所有工具,Chef Server充當你所有「菜譜」(recipe)的存儲庫,可以管理與伺服器連接的每個節點。Chef客戶軟體在每個客戶端上運行,時不時收到伺服器方面的信息,從而更新其配置設置。
3. CFEngine
面向Linux系統管理員的下一款自動化工具是CFEngine,這是另一個領先的自動化系統,可幫助你輕松管理整套基礎設施,並使之實現自動化。一旦你使用CFEngine為網路中的系統定義了配置,那麼CF Engine就會自動確保配置符合規范。不用說,如果你的網路中有10個或100個節點,可以在短短幾秒內更新或改動任何一個節點或所有節點。CFEngine之所以受到許多Linux系統管理員的青睞,是由於它運行成本低、響應速度快、具有自癒合功能。
4. Ansible
Ansible是Red Hat提供的一款開源配置管理和IT企業自動化軟體,隨帶一種簡單的編程語言,讓系統管理員能夠高效地處理自動化和配置過程。Ansible由控制機器和控制機器控制的節點組成。節點是通過SSH來加以控制的。Ansible的主要特點之一是代理並不是部署到節點 ,但是完全藉助SSH來進行通信。易學易用、具有一致性、高可靠性和安全性是讓Ansible脫穎而出的其他特性。Ansible的唯一局限就是無法配置裸機和虛擬機。
5. Foreman
Foreman是另一種用於取證分析的開源配置管理工具。Foreman提供了儀錶板,我們可以通過儀錶板來配置裸機伺服器和虛擬機。默認情況下,無論我們何時安裝Foreman,它都使用Puppet作為配置工具。不過藉助插件,Foreman還支持與其他配置管理工具整合起來,比如Chef、Puppet、Ansible、Salt及其他眾多工具。Foreman自動化工具還隨帶各種各樣的介面,包括命令行介面、Web前端以及REST API。Foreman的其他一些顯著功能包括如下:
通過儀錶板,管理Puppet模塊和puppet類方面的改動;
很容易從Foreman儀錶板來管理Puppet環境;
由於儀錶板,創建主機群(Hosts Group)以及為主機群添加puppet模塊變得很輕松;
可以從Foreman儀錶板,輕松添加Puppet模塊或推送到節點。
6. Katello
Katello是另一種開源自動化工具。換而言之,我們可以說Katello是一種開源版的Red Hat satellite Server;如果我們不想花錢在企業產品及其支持上,就可以用它來代替Red Hat satellite Server。Katello已被Foreman收購,Foreman中的大部分功能在Katello中也得到了支持。Katello Server的主要功能如下:
給基於Linux的伺服器(RHEL和CentOS )打補丁;
使用Pulp Service來同步代碼庫;
使用Foreman進行各種配置;
它還可以處理訂閱內容管理,並審計所有已部署的軟體包;
藉助Katello,你可以為所有主機創建主機群,另外還可以在單一主機或一群主機上批量執行操作。
7. Nagios
Nagios現在名為Nagios Core,它是一種開源自動化和監控工具,可以管理基礎設施中的所有系統。它還提供警報服務,一旦察覺到你的網路中哪裡有問題,就會提醒系統管理員。藉助SNMP以及Nagios,系統管理員還可以控制並管理列印機、路由器和交換機。Nagios讓我們得以創建事件處理工具,一旦某個應用程序及其服務停運,就可以自動重啟出現故障的那個應用程序及其服務。
2. 如果想學Linux,應該怎麼學
學嵌入式Linux要先學以下幾點:
1.C語言。要有C語言的基礎,當然越熟練越好,不熟也沒關系,具備基本技能就可以:比如寫一個數組排序、輸入數字求和什麼的。C語言的學習就是多些多練。
2.Linux基礎
Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI ,編譯器GCC,調試器GDB和 Make 項目管理工具, Shell、 Makefile腳本編寫等知識,嵌入式開發環境的搭建。
3.Linux系統編程
重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。
4.Linux網路編程
計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,Javascript等Web編程技術及實現方法。
5.數據結構與演算法
數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。
6.Cortex A8 、Linux 平台開發
通過基於ARM Cortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
7.驅動開發
驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
3. 軟體測試面試寶典「Linux 資料庫 測試工具 自動化 性能測試」
1.介紹一下測試流程(重點,常見!)
2.介紹一下測試方法
3.介紹一下測試用例設計方法(用例設計方法&測試方法需要分清楚)
4.設計一個登錄頁面的用例(提供某個場景的設計用例,重點!)
5.舉例說明項目推進的能力(針對個人評價的舉例說明)
6.考試中遇到的比較難的一個項目是?(掌握自己簡歷上的項目)
7.印象深刻的一個bug?
8.你們公司是不是敏捷開發?介紹一下敏捷開發?
9.復盤會議的主要內容有哪些?
10.App 的兼容性怎麼測,App 的介面測試怎麼測?
11.Web 端測試和 App 端測試有何不同(常見)
1. 工作中常使用的 SQL 語法有哪些?
2.資料庫存儲過程
3.SQL 常見查詢語句編寫(此處僅舉例常見的查詢語句,如有更多坑,希望補充)
a.查詢所有學生的數學成績,顯示學生姓名 name, 分數, 由高到低。
b.統計每個學生的總成績(由於學生可能有重復名字),顯示欄位:學生 id,姓名,總成績。
c.列出各門課程成績最好的學生, 要求顯示欄位: 學號,姓名,科目,成績
4.慢查詢是什麼意思?
5.導致資料庫性能差的可能原因有哪些?
6.Redis 緩存應用場景
7.怎麼定位 Redis 緩存失效問題(緩存壞了)
1. 工作中常用的 Linux 命令有哪些?
2.什麼命令可以幫助 Linux 執行 Windows 上傳的腳本?
3簡述 Linux 三劍客
4.如何通命令定位 Linux 伺服器下的日誌?
5.簡述項目中的環境搭建和維護
1. 自動化代碼中,用到了哪些設計模式?
2. 什麼是斷言?
3. UI 自動化測試中,如何做集群?
4. 怎麼對含有驗證碼的功能進行自動化測試?
5. 如何優化和提高 Selenium 腳本的執行速度?
6. 介面測試能發現哪些問題?
7. Selenium 中隱藏元素如何定位?
8. 如何判斷一個頁面上元素是否存在?
9. 如何提高腳本的穩定性?
10. 如何定位動態元素?
11. 如何通過子元素定位父元素
12. 平常遇到過哪些問題? ?如何解決的
13. 一個元素明明定位到了,點擊無效(也沒報錯),如果解決?
14. 測試的數據你放在哪?
15. 什麼是數據驅動,如何參數化?
16. 其他介面都需要登錄介面的信息,怎麼去讓這個登錄的介面只在其他介面調用一次?
17. 介面產生的垃圾數據如何清理?
18. 怎麼用介面案例去覆蓋業務邏輯?
1. 性能測試指標包括哪些
2. 如果一個需求沒有明確的性能指標,要如何開始進行性能測試?
3. 介紹 JMeter 聚合報告包括哪些內容?
4. 如果有一個頁面特別卡頓,設想一下可能的原因?
5. 說一說項目中的實際測試內容
6. 介紹一下 JMeter 進行性能測試的過程
7. 介紹一下 JMeter 和 LoadRunner 的區別
全套【軟體測試/自動化測試】海量資料免費領取
4. 什麼是Linux運維自動化
這個概念比較寬泛,現在的自動化分幾種,有腳本控制,人為干預的半自動化,也有全程腳本判斷執行的全自動化管理,不過這個最終還是需要人來定期維護的