原创 測試驅動開發

最近看了幾篇關於測試驅動開發的文章,簡單總結下:TDD的基本思路就是通過測試來推動整個開發的進行,但測試驅動開發並不只是單純的測試工作,而是把需求分析、設計、質量控制量化的過程。說白了就是在開發功能代碼之前,先編寫測試代碼,然後只編寫使測試

原创 我的友情鏈接

51CTO博客開發小MáO的OracleDBA之路宅鳥樂園10886557

原创 Django中的單元測試

Django中自帶了一個單元測試類--django.test.TestCase,其是unittest.TestCase的子類,並標準的unittest進行了擴展,增加了不少測試相關的功能。用法與標準的unittest幾乎相同。from dj

原创 LVS+KeepAlived,搭建MySQL高可用負載均衡

本套方案也是前段時間測試的幾個方案之一,這套方案相對來說部署、維護都比較方便。keepalived簡單來講就是,Keepalived是一個專門爲lvs提供高可用功能的機制,它可以實現當有兩個主從lvs,而且主lvs損壞的時候,將其IP地址以

原创 自動化運維工具Ansible之Playbooks的when語句

在使用ansible做自動化運維的時候,大多數情況下都執行某些任務的時候都需要依賴某個變量的值或者是上一個任務的執行結果。如,根據facts信息中的系統版本相關的信息來確定使用哪種包管理器安裝軟件。Ansible提供when語句,可以控制任

原创 自動化運維工具Ansible之動態inventory文件

去年的時候開發了一個自動化運維的小系統,用的就是Ansible 的python API,其中動態從數據庫獲取主機組合主機變量的功能,着實費了老大的勁,最後用了個很雞肋的方法實現了。最近幾個月把Ansible的官方文檔通看了一遍,哎,想死的心

原创 自動化運維工具Ansible之Playbooks的roles和include

當需要對多個遠程節點,做很多操作的時候,如果將所有的內容都書寫到一個playbooks中,這就會產生一個很大的文件,而且裏面的某些內容也很難複用。此時不得不考慮怎麼樣分隔及組織相關的文件。最基本的,可以將任務列表單獨分隔到一個小文件裏,然後

原创 Linux運維常用命令之sed

sed是平時運維工作中較爲常用的命令之一,週末時間整理下之前的筆記,並記錄下來。sed是一個行文本編輯器,對純ASCII碼文本按行處理。sed在處理文本的時候,逐行將內容讀取到內存中做處理,並將處理結果輸出。這段內存空間稱爲“模式空間”,因

原创 自動化運維工具Ansible之Playbooks基礎應用

記得自己當初最早使用Ansible的時候,網上搜到的中文資料的都是零零散散的,後來只能硬着頭皮看官方的英文文檔。發現好多事情都沒有什麼捷徑可走,最好的資料還是官方的文檔。最近又抽時間按照官方文檔對Ansible做了一個較爲系統的學習與研究,

原创 自動化運維工具Ansible之Python API

Ansible 的Python API使用起來相當簡單快捷,使用API可以將某些運維操作封裝成一個帶有WEB界面的操作,免去了每次執行某個操作的時候都需要SSH運行Ansible命令。官方給出的一個簡單示例:import ansible.r

原创 自動化運維工具Ansible之Playbooks變量的使用

在平時運維工作中有時候需要根據不同的遠程節點或者針對不同的IP的系統做不同的配置部署.如,Ansible可以根據不同的IP地址來對各個節點上的配置文件做不同的處理,這裏就需要用到變量。可以在playbooks文件中直接定義變量:- host

原创 Shell編程關於函數要注意的幾點

今天上午一個朋友突然QQ問到,shell編程中的函數爲什麼return只能是整數,怎麼樣才能將函數的執行結果返回並保存至某個變量中。其實這個問題很好解決---只需要認真瞭解下shell函數即可。以下是根據聊天記錄整理了關於函數的幾個點:sh

原创 Python開發MySQL數據庫(表)克隆工具

前段時間因爲某些需求,需要頻繁的克隆MySQL的某些數據庫或者某幾個表。手動導出導入操作了幾次,感覺甚是繁瑣,而且效率不高,出錯機率過大。索性抽時間用Python開發了一個MySQL的clone工具,用了一段時間,將數據庫或者表克隆到同一臺

原创 empty(trim($str))報錯原因

一個if判斷如下:if (!empty(trim($a))) { ... }報出如下錯誤:Fatal error: Can't use function return value in write context in ...如下形式則不報

原创 自動化運維工具Ansible之Playbooks循環語句

在使用ansible做自動化運維的時候,免不了的要重複執行某些操作,如:添加幾個用戶,創建幾個MySQL用戶併爲之賦予權限,操作某個目錄下所有文件等等。好在playbooks支持循環語句,可以使得某些需求很容易而且很規範的實現。with_i