快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLab
Walrus 是一款基于平臺工程理念的開源應用管理平臺
,致力于解決應用交付領域的深切痛點。借助 Walrus 將
云原生的能力和最佳實踐擴展到非容器化環(huán)境
,并
支持任意應用形態(tài)統(tǒng)一編排部署,降低使用基礎設施的復雜度
,為研發(fā)和運維團隊提供易用、一致的應用管理和部署體驗,進而構(gòu)建無縫協(xié)作的軟件交付流程。 ? 在本篇文章中,我們將手把手帶您創(chuàng)建 AWS GitLab 模板,并使用 Walrus 在 AWS EC2 實例上部署一個 GitLab 服務器。 ? 使用前提
用于存儲模板的 GitHub 或 Gitlab 倉庫。
安裝 Walrus(https://seal-io.github.io/docs/zh/deploy/standalone)。
在 GitHub 上新建倉庫
在 GitHub 上新建一個倉庫,這里我們使用的是 demo 版本庫。
將版本庫克隆到本地。
?
創(chuàng)建模板文件
打開克隆的版本庫目錄。
在該目錄下創(chuàng)建文件,如下所示:
main.tf文件定義了要創(chuàng)建的資源。在這里,我們?yōu)槟0宥x了創(chuàng)建 AWS EC2 實例并在其上運行 Gitlab 服務器的資源。
variables.tf文件定義了模板中使用的變量。Walrus 將使用這些變量生成供用戶填寫的表單。 ? Walrus 使用@label和@group來定義變量的標簽和組??蛇x的?@options用于定義變量的下拉選項,如果未定義?@options?,變量將在表單中顯示為文本框。 ? 在本示例中,我們定義了兩個組:?Basic組和?AWS?組。使用此模板創(chuàng)建服務時,表單中將顯示為兩個選項卡。 ?
outputs.tf文件定義了服務創(chuàng)建后將顯示給用戶的模板輸出。服務模板的輸出也可以被其他服務引用。在本例中,我們定義了輸出?gitlab_url,它是 Gitlab 實例的 URL。
README.md文件是對模板的描述。在使用該模板創(chuàng)建服務時,它將顯示給用戶。 ? 在此,我們可以使用 terraform-docs 工具生成模板說明。你需要根據(jù)項目文檔在筆記本電腦上安裝該工具,然后運行以下命令為模板生成?README.md?文件。
生成的?README.md?文件內(nèi)容如下:
提交和標記版本
為模板版本創(chuàng)建一個標簽。
在 Walrus 上創(chuàng)建一個模板
在瀏覽器中打開 Walrus 并登錄。
選擇?Operations Hub?中的?Template?,然后選擇我們最近創(chuàng)建的模板來制作一個新模板。這里我們將此模板命名為?gitlab-on-aws?。
Walrus 同步模板后,可以在 Operations Hub 中看到此模板。
? 導入任務完成后,可以發(fā)現(xiàn)模板顯示在列表中。需要注意的是該模板有兩個版本:v0.0.1?和?v0.0.2。
在 AWS 上部署 Gitlab 服務器
在?Operations Hub?的?Connectors?中添加 AWS。
在環(huán)境中添加 connector。
利用?gitlab-on-aws?模板創(chuàng)建服務。UI 表單中的分組和標簽是根據(jù)我們之前定義的模板變量中對應的注釋動態(tài)生成的。輸入變量在模板的?variables.tf?文件中列出。為確保網(wǎng)絡流量管理,EC2 實例需要一個安全組。我們可以創(chuàng)建一個名為all-open的安全組來允許所有網(wǎng)絡流量,為了增強安全性,可以根據(jù)需要自定義規(guī)則。 ?
在 AWS 目標區(qū)域創(chuàng)建安全組后,就可以保存和應用服務了。
部署完成后,Gitlab 實例就能在 AWS 上成功配置了。
GitLab URL 將顯示在輸出結(jié)果中。獲得 URL 后,就可以訪問 GitLab 服務器了。
總 結(jié)
以上就是在 Walrus 中創(chuàng)建模板的全步驟,我們借助 Walrus 大大簡化了部署流程。此外,Walrus 還兼容 Terraform 社區(qū)的大量成熟模板,只需輕輕一點,即可輕松采用最佳實踐。 ? 歡迎小伙伴們試用 Walrus,如果您喜歡我們的項目,可以在 GitHub 上為我們點亮星星?? ? 項目地址:https://github.com/seal-io/walrus ?