久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Terraform安裝及簡(jiǎn)單介紹

      在 DevOps 實(shí)踐中,基礎(chǔ)設(shè)施即代碼如何落地是一個(gè)繞不開的話題。像 Chef,Puppet 等成熟的配置管理工具,都能夠滿足一定程度的需求,但有沒(méi)有更友好的工具能夠滿足我們絕大多數(shù)的需求?筆者認(rèn)為 Terraform 是一個(gè)很有潛力的工具,目前各大云平臺(tái)也都支持的不錯(cuò),尤其是使用起來(lái)簡(jiǎn)單明了。本文會(huì)簡(jiǎn)單的介紹一下 Terraform 相關(guān)的概念,然后通過(guò)一個(gè)小 demo 帶大家一起進(jìn)入 Terraform 的世界。說(shuō)明:本文的演示環(huán)境為 Ubuntu 16.04。

      Terraform 是什么?

      Terraform 是一種安全有效地構(gòu)建、更改和版本控制基礎(chǔ)設(shè)施的工具(基礎(chǔ)架構(gòu)自動(dòng)化的編排工具)。它的目標(biāo)是 “Write, Plan, and create Infrastructure as Code”, 基礎(chǔ)架構(gòu)即代碼。Terraform 幾乎可以支持所有市面上能見(jiàn)到的云服務(wù)。具體的說(shuō)就是可以用代碼來(lái)管理維護(hù) IT 資源,把之前需要手動(dòng)操作的一部分任務(wù)通過(guò)程序來(lái)自動(dòng)化的完成,這樣的做的結(jié)果非常明顯:高效、不易出錯(cuò)。

      Terraform安裝及簡(jiǎn)單介紹

      Terraform 提供了對(duì)資源和提供者的靈活抽象。該模型允許表示從物理硬件、虛擬機(jī)和容器到電子郵件和 DNS 提供者的所有內(nèi)容。由于這種靈活性,Terraform 可以用來(lái)解決許多不同的問(wèn)題。這意味著有許多現(xiàn)有的工具與Terraform 的功能重疊。但是需要注意的是,Terraform 與其他系統(tǒng)并不相互排斥。它可以用于管理小到單個(gè)應(yīng)用程序或達(dá)到整個(gè)數(shù)據(jù)中心的不同對(duì)象。

      Terraform 使用配置文件描述管理的組件(小到單個(gè)應(yīng)用程序,達(dá)到整個(gè)數(shù)據(jù)中心)。Terraform 生成一個(gè)執(zhí)行計(jì)劃,描述它將做什么來(lái)達(dá)到所需的狀態(tài),然后執(zhí)行它來(lái)構(gòu)建所描述的基礎(chǔ)結(jié)構(gòu)。隨著配置的變化,Terraform 能夠確定發(fā)生了什么變化,并創(chuàng)建可應(yīng)用的增量執(zhí)行計(jì)劃。

      Terraform 是用 Go 語(yǔ)言開發(fā)的開源項(xiàng)目,你可以在 github 上訪問(wèn)到它的源代碼。

      Terraform 核心功能

      • 基礎(chǔ)架構(gòu)即代碼(Infrastructure as Code)
      • 執(zhí)行計(jì)劃(Execution Plans)
      • 資源圖(Resource Graph)
      • 自動(dòng)化變更(Change Automation)

      基礎(chǔ)架構(gòu)即代碼(Infrastructure as Code)
      使用高級(jí)配置語(yǔ)法來(lái)描述基礎(chǔ)架構(gòu),這樣就可以對(duì)數(shù)據(jù)中心的藍(lán)圖進(jìn)行版本控制,就像對(duì)待其他代碼一樣對(duì)待它。

      執(zhí)行計(jì)劃(Execution Plans)
      Terraform 有一個(gè) plan 步驟,它生成一個(gè)執(zhí)行計(jì)劃。執(zhí)行計(jì)劃顯示了當(dāng)執(zhí)行 apply 命令時(shí) Terraform 將做什么。通過(guò) plan 進(jìn)行提前檢查,可以使 Terraform 操作真正的基礎(chǔ)結(jié)構(gòu)時(shí)避免意外。

      資源圖(Resource Graph)
      Terraform 構(gòu)建的所有資源的圖表,它能夠并行地創(chuàng)建和修改任何沒(méi)有相互依賴的資源。因此,Terraform 可以高效地構(gòu)建基礎(chǔ)設(shè)施,操作人員也可以通過(guò)圖表深入地解其基礎(chǔ)設(shè)施中的依賴關(guān)系。

      自動(dòng)化變更(Change Automation)
      把復(fù)雜的變更集應(yīng)用到基礎(chǔ)設(shè)施中,而無(wú)需人工交互。通過(guò)前面提到的執(zhí)行計(jì)劃和資源圖,我們可以確切地知道 Terraform 將會(huì)改變什么,以什么順序改變,從而避免許多可能的人為錯(cuò)誤。

      安裝 Terraform

      Terraform 的安裝非常簡(jiǎn)單,直接把官方提供的二進(jìn)制可執(zhí)行文件保存到本地就可以了。比如筆者習(xí)慣性的把它保存到 /usr/local/bin/ 目錄下,當(dāng)然這個(gè)目錄會(huì)被添加到 PATH 環(huán)境變量中。完成后檢查一下版本號(hào):

      Terraform安裝及簡(jiǎn)單介紹

      通過(guò) -h 選項(xiàng)我們可以看到 terraform 支持的所有命令:

      Terraform安裝及簡(jiǎn)單介紹

      在 Azure 上創(chuàng)建一個(gè) Resource Group

      要讓 Terraform 訪問(wèn) Azure 訂閱中的資源,需要先創(chuàng)建 Azure service principal,Azure service principa 允許你的 Terraform 腳本在 Azure 訂閱中配置資源。請(qǐng)參考這里創(chuàng)建 Azure service principal。

      配置 Terraform 環(huán)境變量
      若要配置 Terraform 使用 Azure service principal,需要設(shè)置以下環(huán)境變量:

      • ARM_SUBSCRIPTION_ID
      • ARM_CLIENT_ID
      • ARM_CLIENT_SECRET
      • ARM_TENANT_ID
      • ARM_ENVIRONMENT

      這些環(huán)境變量的值都可以從前面創(chuàng)建 Azure service principal 的過(guò)程中獲得。方便起見(jiàn),我們把設(shè)置這些環(huán)境變量的步驟可以寫到腳本文件 azureEnv.sh 中:

      #!/bin/sh echo "Setting environment variables for Terraform"  export ARM_SUBSCRIPTION_ID=your_subscription_id  export ARM_CLIENT_ID=your_appId  export ARM_CLIENT_SECRET=your_password  export ARM_TENANT_ID=your_tenant_id  # Not needed for public, required for usgovernment, german, china  export ARM_ENVIRONMENT=public

      這樣在執(zhí)行 Terraform 命令前通過(guò) source 命令執(zhí)行該腳本就可以了!

      創(chuàng)建 Terraform 配置文件
      為了在 Azure 上創(chuàng)建一個(gè) Resource Group,我們創(chuàng)建名稱為 createrg.tf 的配置文件,并編輯內(nèi)容如下:

      provider "azurerm" {  }  resource "azurerm_resource_group" "rg" {          name = "NickResourceGroup"          location = "eastasia"  }

      用 init 命令用來(lái)初始化工作目錄
      把當(dāng)前目錄切換到 createrg.tf 文件所在的目錄,然后執(zhí)行 init 命令:

      $ terraform init 

      Terraform安裝及簡(jiǎn)單介紹

      其實(shí)就是把 createrg.tf 文件中指定的驅(qū)動(dòng)程序安裝到當(dāng)前目錄下的 .terraform 目錄中:

      Terraform安裝及簡(jiǎn)單介紹

      通過(guò) plan 命令檢查配置文件
      plan 命令會(huì)檢查配置文件并生成執(zhí)行計(jì)劃,如果發(fā)現(xiàn)配置文件中有錯(cuò)誤會(huì)直接報(bào)錯(cuò):

      $ . azureEnv.sh  $ terraform plan

      Terraform安裝及簡(jiǎn)單介紹

      通過(guò) plan 命令的輸出,我們可以清楚的看到即將在目標(biāo)環(huán)境中執(zhí)行的任務(wù)。

      使用 graph 命令生成可視化的圖表
      其實(shí) graph 命令只能生成相關(guān)圖表的數(shù)據(jù)(dot 格式的數(shù)據(jù)),我們通過(guò) dot 命令來(lái)生成可視化的圖表,先通過(guò)下面???命令安裝 dot 程序:

      $ sudo apt install graphviz

      然后生成一個(gè)圖表:

      $ terraform graph | dot -Tsvg > graph.svg

      Terraform安裝及簡(jiǎn)單介紹

      上圖描述了我們通過(guò) azurerm 驅(qū)動(dòng)創(chuàng)建了一個(gè) Resource Group。

      使用 apply 命令完成部署操作
      在使用 apply 命令執(zhí)行實(shí)際的部署時(shí),默認(rèn)會(huì)先執(zhí)行 plan 命令并進(jìn)入交互模式等待用戶確認(rèn)操作,我們已經(jīng)執(zhí)行過(guò) plan 命令了,所以可以使用 -auto-approve 選項(xiàng)跳過(guò)這些步驟直接執(zhí)行部署操作:

      $ terraform apply -auto-approve

      Terraform安裝及簡(jiǎn)單介紹

      到 Azure 站點(diǎn)上檢查一下,發(fā)現(xiàn)名稱為 NickResourceGroup 的 Resource Group 已經(jīng)創(chuàng)建成功了。

      總結(jié)

      Terraform 支持的平臺(tái)非常多,像 AWS,Azure 等大廠自然是不用說(shuō)了,一些小的廠商也可以通過(guò)提供 provider 支持 Terraform,從而讓整個(gè)生態(tài)變得非?;钴S。如果大家想在 DevOps 實(shí)踐中引入基礎(chǔ)設(shè)施即代碼,無(wú)論是面對(duì)的是公有云還是私有云,相信 Terraform 都不會(huì)讓你失望。

      參考:
      Introduction to Terraform
      Terraform github
      安裝和配置 Terraform

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)