我利用 Opserver 透過 WMI 監控幾台 Windows 伺服器,途中遭遇到兩個錯誤訊息 The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
及 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
,還好這兩個錯誤訊息不難解。
[料理佳餚] 讓 Jenkins 在對 GitHub 執行 git pull 指令時自動帶上 SSH Keys
有一些專案的建置作業中,某些步驟是需要對 Git Repository 做操作的,比如說在一切測試都通過之後,發行一個可執行的版本並 commit,然後 push 到待上線的 Git Repository,這時候賦予給 CI 的 Git 帳號就至少要有 Write 的權限,並且執行需要授權的操作時,自動帶上認證。
[小菜一碟] 想不到 Jenkins Git Plugin 還有一招 Sparse Checkout paths
當我們的 Git Repository 只有一包的時候,而我們又想要讓 Jenkins 只 Pull 某個資料夾底下的檔案時,Sparse Checkout paths
這個 Git Plugin 的附加行為可以幫我們辦到這件事。
[料理佳餚] Jenkins 依據 Git 特定的 committed message 或 changed path 來 trigger 建置作業
有時候我們不需要每次 commit 都執行 CI 的建置作業,例如:更換網站的 Logo、更新靜態頁面的 Wording,這次要介紹兩種方式,都是可以用來指定在特定條件之下才 trigger 建置作業的方式,一種是根據特定的 committed message,另一種是根據特定的 changed path。
[料理佳餚] log4net LogicalThreadContext 與 ThreadContext 的區別
爬了幾篇網路上的文章,實在是有看沒有懂,所以往下去追 log4net 的原始碼,再試著寫程式去實驗才明白這兩者之間的差異,顧名思義 LogicalThreadContext 與 ThreadContext 在選擇使用上跟 Thread 息息相關。
[小菜一碟] 使用 TortoiseGit 透過 SSH 操作多個 GitHub 帳號
在這個時代身為一個碼農,有個幾處碼田是挺正常的,我本身有兩個 GitHub 帳號,一個是公司用的,一個自己私人用的,而 Git Client 是用 TortoiseGit,不同的遠端儲存庫使用不同帳號去認證,而當我們選擇使用 SSH 針對不同帳號,產生不同金鑰去存取遠端儲存庫的時候,就會看到這樣子的訊息。
[廚餘回收] Jenkins 在 Windows 的安裝路徑最好不要含有空格
會有這個結論的起因是 Jenkins 有一個 Ruby Runtime Plugin,有很多 Plugin 會相依於它,雖然它最近一次更新的日期是在 2013 年 6 月 5 日,但依舊每個月都會有一萬多個安裝,而且跑在新版本的 Jenkins 也沒什麼問題(目前最新版本是 2.60.3),但是在 Windows 環境底下要安裝它就會有可怕的事情發生。
[廚餘回收] 在 CentOS 7 上安裝 MySQL 踩了幾顆地雷
原以為在 CentOS 7 上安裝 MySQL 是探嚢取物,照著官方的步驟按圖施工,必定成功,還是踩了幾顆地雷炸掉我不少時間,我選擇安裝 MySQL 的方式是用二進制包(Generic Binaries)的安裝方式,這種方式可以讓我更方便地修改環境變數,照著官方的步驟是一定可以安裝成功的,但是有幾點我們需要注意一下。
[小菜一碟] 使用其他 SSH 用戶端登入到 Google Compute Engine 的 Linux VM
GCP(Google Cloud Platform)在台灣有設置資料中心,除了常見的 AWS、Azure 之外,如果我們主要的目標用戶都在台灣,GCP 也是一個可以考慮使用的雲端平台,GCE(Google Compute Engine)是 GCP 提供的一個建置 VM 的服務,本篇文章記錄的是在 GCE 開了一台 Linux VM 之後,如何透過第三方的 SSH 用戶端登入到 VM 裡面?
[廚餘回收] 要發 HTTP PUT、DELETE Request 到 IIS 站台卻收到 404、405 的錯誤訊息
相信很多朋友都有遇到過,我們用 ASP.NET MVC 或 ASP.NET WebApi 做好的標記有 HttpPut、HttpDelete 的 Action,部署到 IIS 伺服器之後,試著去發 Request 卻收到 404、405 的錯誤訊息,除非我們只寫 HttpGet、HttpPost 方法,不然有大於 87% 的機率會遇到,底下就來記錄一下解決的方式。