0%

2022 年終於要結束了,今年仍舊是在精神時光屋中度過…

在新的工作內容中恰好碰到了客製化 Terraform Provider 的需求,所以寫一篇文章來記錄一下開發和 Release 的流程,本篇文章假設已經對於 Terraform 這套 IaC 工具使用有基礎的了解,如果沒有聽過或使用過的人可以先拜讀 Che-Chia (David) Chang 大大的 2021 鐵人賽文章 - Terraform Workshop - Infrastructure as Code for Public Cloud 疫情警戒陪你度過 30 天,有助新手們由淺入深了解這套深度整合各大公有雲的 IaC 工具。

Read more »

身為軟體工程師,雖然當了運維工程師,但還是會需要碰到 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 »