本指南將幫助您在幾分鐘內構建“幻獸帕盧遊戲”的終極體驗

Mondo 遊戲 更新 2024-02-23

春節前夕,一款名為《Palworld》的遊戲火了起來,幾天內銷量就達到了數百萬,半個月內玩家就達到了數千萬。 為了提公升使用者體驗,阿里雲、華為雲、騰訊雲等國內雲廠商紛紛推出幻獸帕盧伺服器,玩家可以在幾分鐘內快速搭建開箱即用的幻獸帕盧伺服器。

在快速構建雲伺服器時,很多時候,DevOps 人員可以通過手動單擊控制台來快速建立它們。 但是在雲原生時代,有IAC(Infrastructure as the Basics)技術,DevOps人不需要手動做,只需要通過自動化建立一些雲資源即可。

例如,在騰訊雲上,彈性雲伺服器具有以下引數:

如果從 IAC 的角度來看,它實際上看起來像這樣:

## instance inforesource "tencentcloud_instance" "cvm_almalinux" security_groups = [ "$" ] vpc_id = "$" subnet_id = "$" internet_max_bandwidth_out = 10 count = 1}## security groupresource "tencentcloud_security_group" "sg_bj" resource "tencentcloud_security_group_rule" "sg_bj_1" " type = "ingress" cidr_ip = "0.0.0.0/0" ip_protocol = "tcp" port_range = "22,80,443" policy = "accept"}## vpc inforesource "tencentcloud_vpc" "vpc_bj" ## route table inforesource "tencentcloud_route_table" "rtb_vpc_bj" ## subnet inforesource "tencentcloud_subnet" "subnet_bj_01" " route_table_id = "$"}
此資訊基於TF 格式。 也就是說,它以 terrafrom 格式儲存。

對於 Terraform,Terraform 將託管雲基礎結構和配置的狀態儲存為檔案。 Terraform 將此狀態與物理世界中的實際資源對映,並跟蹤這些資源的元資料。 一般來說,狀態檔案是用 terrafrom 命名的tfstate 形式轉換為本地形式。 但是,為了更好的儲存檔案,做好版本控制、加密等工作,官方建議將此檔案儲存到雲端。

極狐GitLab可以儲存這個檔案。 Terrafrom 允許您配置後端以將狀態檔案儲存在相應的後端。 除了儲存 Terraform 檔案外,極狐 GitLab 還可以實現以下功能:

terraform 狀態檔案的版本控制。

加密狀態檔案。

鎖定狀態以解鎖。

使用 GitLab CI 遠端執行 Terraform Plan 和 Terraform Apply 命令。

如果需要使用此功能,需要確保極狐 GitLab 已經設定了 Terraform 狀態儲存的配置。 通過專案設定 --常規 --可見性、專案功能、許可權 --基礎結構進行設定。

要將 GitLab 配置為 Terraform State 的後端,您需要在檔案中配置以下配置:

terraform }
以騰訊雲為例,可以使用提供商tf 檔案中寫入了以下配置:

provider "tencentcloud" terraform }backend "http" {}
您需要做的就是執行 Terraform Init。 在初始化之前,你需要在極狐 Gitlab 上建立乙個專案來儲存狀態檔案。 可以在極狐 GitLab 主頁上建立專案

您可以使用 Omnibus 安裝私有 GitLab 例項,安裝詳情可參見極狐 GitLab 官網。

建立完成後,您可以在專案中檢視儲存在專案中的 terraform 狀態檔案 -- 運維

如您所見,terraform 狀態檔案未儲存在新專案中。 您可以使用介面提示的 Copy terraform init 命令完成初始化並將狀態檔案儲存到此專案中。 該命令內容如下:

terraform init \ backend-config="address=" \ backend-config="lock_address=/lock" \ backend-config="unlock_address=/lock" \ backend-config="username=majinghe" \ backend-config="password=$gitlab_access_token" \ backend-config="lock_method=post" \ backend-config="unlock_method=delete" \ backend-config="retry_wait_min=5"
有兩個環境變數,TF 狀態名稱和 GitLab 訪問令牌。 第乙個是 Terraform State 檔案的名稱,第二個是極狐 Gitlab 的訪問令牌。 將 terraform 狀態檔案的名稱設定為 jh-gitlab。

在極狐首頁,單擊頭像--編輯個人資料--訪問令牌,建立個人訪問令牌。

獲取訪問令牌的值並將其匯入為環境變數:

export gitlab_access_token="您的個人訪問令牌"export tf_state_name="jh-gitlab"
然後執行上面的 terrform init xxxx 命令

terraform init \ backend-config="address=" \ backend-config="lock_address=/lock" \ backend-config="unlock_address=/lock" \ backend-config="username=majinghe" \ backend-config="password=$gitlab_access_token" \ backend-config="lock_method=post" \ backend-config="unlock_method=delete" \ backend-config="retry_wait_min=5"initializing the backend...successfully configured the backend "http"! terraform will automaticallyuse this backend unless the backend configuration changes.initializing provider plugins...finding tencentcloudstack/tencentcloud versions matching "1.81.70"...installing tencentcloudstack/tencentcloud v1.81.70...installed tencentcloudstack/tencentcloud v1.81.70 (verified checksum)terraform has created a lock file .terraform.lock.hcl to record the providerselections it made above. include this file in your version control repositoryso that terraform can guarantee to make the same selections by default whenyou run "terraform init" in the future.╷│warning: incomplete lock file information for providers││ due to your customized provider installation methods, terraform was forced to calculate lock file checksums locally│ for the following providers:│ tencentcloudstack/tencentcloud││ the current .terraform.lock.hcl file only includes checksums for linux_amd64, so terraform running on another│ platform will fail to install these providers.││to calculate additional checksums for another platform, run:│ terraform providers lock -platform=linux_amd64│ (where linux_amd64 is the platform to generate)╵terraform has been successfully initialized!you may now begin working with terraform. try running "terraform plan" to seeany changes that are required for your infrastructure. all terraform commandsshould now work.if you ever set or change modules or backend configuration for terraform,rerun this command to reinitialize your working directory. if you forget, othercommands will detect it and remind you to do so if necessary.
至此,可以看到 terraform 初始化已經初始化成功!

接下來,執行 terraform 計畫:

terraform planterraform used the selected providers to generate the following execution plan. resource actions are indicated withthe following symbols: +createterraform will perform the following actions: # tencentcloud_vpc.vpc_xiaoamge will be created + resource "tencentcloud_vpc" "vpc_xiaoamge" plan: 1 to add, 0 to change, 0 to destroy.──note: you didn't use the -out option to s**e this plan, so terraform can't guarantee to take exactly these actions ifyou run "terraform apply" now.
然後你可以看到之前建立的專案下對應的狀態檔案 jh-gitlab。

當然,在DevOps最佳實踐中,所有的Terraform檔案也可以儲存在極狐GitLab專案中,用於版本控制,Terraform命令的執行也可以與極狐GitLab CI CD整合。

將 Terraform 相關檔案儲存在極狐 GitLab 專案中,例如 Providertf、variable.tf、cvm.TF等

然後在專案的根目錄中建立乙個 ..gitlab-ci.YML 檔案,其中包含以下內容:

variables: tf_dir: $tf_state_name: "jh-gitlab" address: ""# stages of the pipelinestages: -validate - plan# image which will use in each stageimage: name: hashicorp/terraform:light entrypoint: [""]# script to be executed before each stage default: tags: -terraform before_script: -terraform --version - export gitlab_access_token=$jh_access_token - cd $ cp .terraformrc ~/ - terraform init -reconfigure -backend-config="address=" -backend-config="lock_address=/lock" -backend-config="unlock_address=/lock" -backend-config="username=majinghe" -backend-config="password=$gitlab_access_token" -backend-config="lock_method=post" -backend-config="unlock_method=delete" -backend-config="retry_wait_min=5" # to validate terraform files configurationvalidate: stage: validate script: -terraform validate# to check the plan of the infrastructureplan: stage: plan script: -terraform plan dependencies: -validate
您需要將提供商要求的三個敏感資訊:secret-id、secret-key、極狐ACESS token以環境變數的形式儲存在極狐上

觸發 CI CD 管道,您可以看到管道生成的結果:

驗證階段的構建日誌如下:

其中,計畫階段的構建日期如下:

其他步驟如apply and destory也可以直接寫在CI CD流水線中,因為這一步會直接建立對應的雲資源或者刪除對應的雲資源,所以這裡就不一一演示了,但原理是一樣的。

使用 Terraform 實現 IAC,可以通過操作建立和配置雲計算資源,全流程可以進行版本控制更改,方便安全審計,使用者無需直接操作雲計算資源,許可權管理變得更加安全輕鬆。

使用以上方法快速建立幻獸帕魯遊戲伺服器,您將體驗到幻獸帕盧遊戲帶來的酸味體驗。

相關問題答案

    曼谷旅遊指南,幫助您更好地規劃行程

    曼谷旅遊指南。曼谷是泰國的首都,是一座充滿活力和文化的城市。無論您是想體驗泰國傳統文化還是享受現代城市生活,曼谷都能滿足您的需求。這裡有乙份曼谷指南,可幫助您計畫旅行。.出發前的準備。在前往曼谷之前,您需要準備一些必需品,例如護照 簽證 泰銖 藥品 太陽鏡 防曬霜等。同時,了解當地的天氣狀況,以便更...

    外貿訂單策略幫你獲得81個外貿客戶

    與其他行業相比,外貿已經很容易做,而且自由。如果你沒有感受到外貿的紅利,你的機會 方法和策略就更少了。外貿人,不要為內耗著急,一定要堅持!共享。一是用好外貿工具。外貿是乙個資訊量差的行業,一旦資訊量過大,就很難跟上同行的節奏。這些工具不僅可以幫助我們變得懶惰,還可以縮小資訊差距。開發客戶。wlw 開...

    王者榮耀幫你解開高分誤區!變強和變強是有區別的!

    首先,我們來澄清一下 王者榮耀 教義中常見的乙個誤區,得分和提高技能不是一回事。有很多教學,其中一些是關於如何得分的,另一些是關於如何提高他們的技能的。它們之間的區別在於,追求更高的分數可能會限制您提高技能的範圍。為了提高你的技能,你需要不斷犯錯,嘗試新事物,並突破你的極限。而在追求高分時,你不能冒...

    “謝謝你給我機會幫助你!”

    月日,郭兵 右 和志願者潘珍娜在福州寶龍廣場周邊進行了無障礙環境評估。謝謝你給我機會幫助你!郭兵說,這是他最欣賞的一句話。郭兵,年出生,從小就患上小兒麻痺症,導致雙腿殘疾,長期致力於推動無障礙環境設施建設,用微薄的實力服務社會。郭兵和他的志願者們花了一年多的時間,在街道上調查和收集資料,並繪製了福建...

    辛奇真的能幫你減肥嗎?

    近年來,發酵食品越來越受歡迎,部分原因是它們被認為對健康有益。例如,有證據表明,吃或喝發酵食品可以改善糖尿病患者的血糖控制。它們可以降低糖尿病或肥胖症患者的血脂水平和血壓。發酵食品也可以改善腹瀉症狀。但是,正如最近的一項研究表明的那樣,它們能幫助你 嗎?讓我們看看證據。什麼是發酵食品?發酵食品是當微...