0%

身為軟體工程師,雖然當了運維工程師,但還是會需要碰到 GitHub 以及開發工作,最近遇到一個情況是要使用 GitHub API 去實作出一套 CMS 系統,讓內部開發者可以透過介面自動提交對應的檔案,申請 AWS 資源。

本篇會介紹實作自動化 GitHub Flow 時候,看到 API 規格時仍舊一頭霧水,原本以為自己已經很熟 Git 了,真正要實作時才發現對其運作的原理還有很大的進步空間,所以查了很多資料整理出來這篇筆記。文章會介紹直接對 GitHub repo 操作的流程,就不用再把整包程式碼 clone 到本地端了。

Read more »

AWS to GCP site-to-site VPN 建置紀錄,主要是透過這樣的建置可以很快掌握到兩座公有雲的網路架構規劃以及熟悉基本的操作,本篇主要對照的是GCP 官方網站文章 - Build HA VPN connections between Google Cloud and AWS

其實網站上的文章寫得非常詳盡,只是裡面有部分文字容易讓我看不懂,所以就做個紀錄,以防以後我老花忘記。

通常公有雲提供 Site-to-Site VPN 的目的主要是要提供雲端對地端的 Hybrid Cloud 連接場景,對照的業務應用情境就是:

  • 你有兩座 Kubernetes 要做備援,要部署 CI/CD 流水線
  • 某個你想用的產品只有公有雲 A 有,但是你主要控制 CI/CD 的節點都在公有雲 B 上,你想寫腳本從公有雲 B 控制公有雲 A

我這邊沒有使用地端的環境,就把兩座公有雲環境網路打通,主要要注意的有兩點:

  • 不同公有雲環境的 zone 最好要在同個地區,比方說東京就對到東京
  • 網段規劃不可與其他 subnet 重疊,比方說在規劃 GCP Subnet 時,你規劃了 10.143.0.0/20,AWS 那邊就不能有重複的 subnet 也用這組網段
Read more »

環境以及使用版本

  • AWS EC2, Kubernetes Version: 1.21
  • Verdaccio, Version: v5.8.0

為什麼選擇 Verdaccio

Verdaccio 是義大利文的棕綠、橄欖綠的意思,唸法: ver搭起偶,念起來潮度百分百,而且同事聽不懂你在說什麼

這個工具是一套開源的 NPM 的套件包管理工具 (Registry),假設企業內部有些自有的 JavaScript 套件只能放在內部做管理,就可以自建這個 NPM Registry。假設企業內部有用 GitHubGitHub Enterprise,也可以使用 GitHub NPM Registry,比較詳細的介紹以及使用方式可以參考這篇 - GitHub - Working with the NPM Registry,要注意的是如果你的專案設定是 private 就無法使用這個功能。本次安裝 Verdaccio 純粹是因為帳號可以獨立出來,不需要跟 GitHub 綁定。

Read more »

研究 Open Policy Agent Gatekeeper(a.k.a OPA Gatekeeper)的起因還是在準備考 CKS(Certified Kubernetes Security Specialist) 這張證照的過程中有看到這個工具。

一般來說,在管理 Kubernetes 時如果有想要做部署規範管理,會想到 Kubernetes 原生的 Pod Security Policies(PSP)

但是有在關注 Kubernetes 的公告的人,就會發現 PSPKubernetes 1.21 版本標示為 deprecated,並且在 Kubernetes 1.25 版本將完全被移除 (fully removed),取而代之的是使用 Pod Security Standards (PSS) 。這意味這如果你是使用原生的方式去撰寫這些管理的 Policies 的話,未來會需要花費一番功伕去升級、改寫這些 Policies,所以就開始研究第三方 (3rd-Party) 的規範管理工具。

Read more »

如果有看我的這一篇:第一篇描述自動發佈文章的人就會知道這個部落格發佈版本是用一支 JavaScript 程式拉部落格程式碼下來,並且使用 hexo generate 指令發布新的文章,然而在耍廢很久之後,我發現發佈文章竟然失效了!這篇文章就這次的 Trouble Shooting 過程紀錄一下,以防下次失效又要再來一次…

Read more »

隨著 Ansible Automation Platform 2.0 於今年七月中釋出 Early Access 版本,我之後會寫一篇文章介紹與大家之前比較熟悉的 Ansible Tower 在特性上有什麼差別,有興趣的朋友可以先在新的環境玩玩看,先不要急著升級,因為之後會有更多新功能,也會在之後的文章一併介紹。

本篇主要是介紹升級 Ansible Tower 3.8.4 (Ansible Tower 的最後一版) 到 Ansible Automation Platform 2.0 的作法。

之所以會有這篇文章的出現,主要是因為 Ansible Automation Platform 2.0 以及之後的版本對於 RHEL 作業系統和 Ansible-core 的版本都會有一些限制,所以先寫篇文章記錄一下,之後有朋友想升級也可以當個參考 。

Read more »

最近在協助合作夥伴安裝 OpenShift 4.8 的時候,剛好遇到一些資源設定不足的部分,導致工作節點一多就裝不起來的問題,在這邊紀錄一下 trouble shooting 的過程以及反思。

另外也會附上安裝好之後要部署 Internal Registry 的做法,在 OpenShift 要使用 s2i 或是自動構建容器映像檔,都會需要 Internal Registry,身為 OpenShift 管理員是一定要裝這個的。

Read more »

最近在研究 Ansible Tower Notification 的功能,發現Ansible Tower Notification 列表 沒有 LINE 相關的設定。之前有設定過一次 Slack,不過腦中記憶庫年久失修

思來想去,工作時程又很趕,還是使用熟悉的 LINE Notify 好了。於是手動寫了支 Ansible playbook,隔天起來,想想應該是有其他人也會想用 LINE Notify 去串 playbook 做通知,所以決定寫個 Plugin 讓想用 LINE Notify 的人不用寫落落長的腳本。

於是我花了一小時寫完 Ansible Module 並測試,然後花了兩小時半在查如何把這個 Module 弄成 Ansible Galaxy 看得懂的格式並且讓 Playbook 可以引用這個 Module。

如何貢獻的文件真的太分散了 XD

所以就有這篇整理文的誕生,順便簡單介紹一下 Ansible 的元件們,畢竟我也常常搞混…

Read more »