ãã®è¨äºã¯ Terraform Advent Calendar 2024 ã® 25æ¥ç®ã®è¨äºã§ãã
Terraform Agent ã¨ã¯
Terraform Agent ã¯ãHCP Terraform ã§æä¾ããããµã¼ãã¹ã®ä¸ã¤ã§ãã
HCP Terraform ããTerraform Enterprise ã«ããã¦ãTerraform ã®å®è¡ããªã³ãã¬ç°å¢ã§è¡ãããã®ãã¼ã«ã§ãã
HCP Terraform ã® æ©è½ã§ããããªã¢ã¼ããã¨ããæ©è½ã§ã¯ãåå¥ã®ä½¿ãæ¨ã¦ä»®æ³ãã·ã³ã§ Terraform ãå®è¡ãããã¨ãã§ãã¾ãã
ãã ãããã®ä½¿ãæ¨ã¦ä»®æ³ãã·ã³ã¯IPã¢ãã¬ã¹ãå
¬éããã¦ããªããããéä¿¡å
IPã¢ãã¬ã¹ãå¶éããã¦ããç°å¢ã§ã¯ HCP Terraform ã使ç¨ããã®ãé£ãããªãã¾ãã
(VCSãªã©ãåå¾ããIPã¢ãã¬ã¹ã¯å
¬éããã¦ãããå°ç¨ã®APIãç¨æããã¦ãã¾ãã)
ã¾ãããã® Terraform Agent ãæ§ç¯ãããã¨ã§ãHCP Terraform ããå®è¡ãããã®ã Agent çµç±ã§ Terraform ãå®è¡ããã¾ãã éä¿¡å IPã¢ãã¬ã¹ãå¶éãããç°å¢ä¸ã§ããæ§ç¯ãã Agent ã®IPã¢ãã¬ã¹ãæå®ãããã¨ã§ããªã½ã¼ã¹æä½ãå¯è½ã¨ãªãã¾ãã
ãã®ããããªã³ãã¬ç°å¢ã§ã®Terraform å®è¡ãããã¼ã«ã§ãããã¾ãããå¶éãããç°å¢ã«ããã¦ãTerraformãå®è¡ãããã¼ã«ã§ãããã大å¤ä¾¿å©ãªæ©è½ã§ãã
å¿ è¦ãªè¦ä»¶
Terraform Agent ãå©ç¨ããããã«ã¯ã以ä¸ã®è¦ä»¶ãå¿
è¦ã§ãã
HCP Terraform Agents Requirements - HashiCorp Developer
- ãã¼ãã¦ã§ã¢
- OS: Linux ã®ã¿å¯¾å¿
- Disk: 4GB 以ä¸
- Memory: 2GB 以ä¸
- ã½ããã¦ã§ã¢
- ãããã¯ã¼ã¯
Hostname | Port/Protocol | Directionally |
---|---|---|
app.terraform.io | tcp/443, HTTPS | Outbound |
registry.terraform.io | tcp/443, HTTPS | Outbound |
releases.hashicorp.com | tcp/443, HTTPS | Outbound |
archivist.terraform.io | tcp/443, HTTPS | Outbound |
agents.terraform.io | tcp/7146 | Outbound |
æé
HCP Terraform ã§ã®æé
Terraform Agent Pool ã®ä½æ
HCP Terraform ã®ã³ã³ã½ã¼ã«ã«ãã°ã¤ã³ããTerraform Agent Pool ãä½æãã¾ãã
Organization -> Settings -> Agents ã«ç§»åããCreate Agent Pool
ãã¯ãªãã¯ãã¾ãã
Agent Pool ã®ååãå
¥åããContinue
ãã¯ãªãã¯ãã¾ãã
ããã¨ãToken management ã®ç»é¢ã«é·ç§»ãã¦ãAgent ã®ãã¼ã¯ã³ãçºè¡ã§ããããã«ãªãã¾ãã
Description ãå
¥åããCreate Token
ãã¯ãªãã¯ãã¾ãã
Token ãçºè¡ãããã®ã§ãã³ãã¼ãã¦ããã¾ãã
ããã§ãAgent Pool ã®ä½æã¯å®äºããHCP Terraform ã§ã®è¨å®ã¯å®äºã§ãã
AWS ã§ã®æé
EC2ã¤ã³ã¹ã¿ã³ã¹ãä½æ
ã¾ããTerraform Agent ãã¤ã³ã¹ãã¼ã«ãã EC2 ã¤ã³ã¹ã¿ã³ã¹ãä½æãã¾ãã
ä»åã¯ãä¸è¨è¦ä»¶ãã t2.small
ã§ä½æãã¾ãã
ä½æãã§ããããã¤ã³ã¹ã¿ã³ã¹ã« SSH ã§ãã°ã¤ã³ãã¾ãã
Terraform Agent ã®ã¤ã³ã¹ãã¼ã«
次ã«ãTerraform Agent ãã¤ã³ã¹ãã¼ã«ãã¾ãã
以ä¸ã®Hashicorp社ã®ãµã¤ããããã¦ã³ãã¼ããã§ãã¾ãã
TFC-Agent Versions | HashiCorp Releases
ä»åã¯ææ°çã® 1.17.5
ãã¤ã³ã¹ãã¼ã«ãã¾ãã
tfc-agent_1.17.5_linux_amd64.zip
ãå³ã¯ãªãã¯ãã¦ããªã³ã¯ã¢ãã¬ã¹ãã³ãã¼ãã¾ãã
以ä¸ã®ã³ãã³ããå®è¡ãã¦ããã¦ã³ãã¼ããããã¡ã¤ã«ã解åãã¾ãã
$ wget https://releases.hashicorp.com/tfc-agent/1.17.5/tfc-agent_1.17.5_linux_amd64.zip $ unzip tfc-agent_1.17.5_linux_amd64.zip
解åãå®äºããããå ã»ã©ã³ãã¼ãã Token ã使ã£ã¦ãå¤æ°ãè¨å®ãã¾ãã
$ export TFC_AGENT_TOKEN=<TOKEN> $ export TFC_AGENT_NAME=agent
è¨å®ãå®äºãããã以ä¸ã®ã³ãã³ããå®è¡ãã¦ãTerraform Agent ãèµ·åãã¾ãã
$ ./tfc-agent
èµ·åãå®äºããã¨ã以ä¸ã®ãããªã¡ãã»ã¼ã¸ã表示ããã¾ãã
[INFO] core: Waiting for next job
ã¨è¡¨ç¤ºããã¦ããã°ãTerraform Agent ã®èµ·åã¯å®äºã§ãã
ããã§ãTerraform Agent ã®è¨å®ã¯å®äºã§ãã
å®è¡ãã¦ã¿ã
Terraform Agent ã使ã£ã¦ãå®éã« Terraform ã®å®è¡ããã¦ã¿ã¾ãã
é©å½ã« Workspace ãä½æãã¾ãã
ä»åã¯ãäºåã«Terraformã³ã¼ããå
¥ã£ã¦ãããªãã¸ããªã使ãããããVersion Control Workflowããé¸æãã¾ãã
Workspace ã®ä½æãã§ããããå³ãã¤ã³ã® Execution mode: Remote
ãã¯ãªãã¯ãã¾ãã
ããã¨ãExecution mode ãé¸æã§ããç»é¢ã表示ãããã®ã§ãAgent
ãé¸æããå
ã»ã©ä½æãã Agent Pool ãé¸æãã¾ãã
æå¾ã«ãä¸çªä¸ã®ãSave Settingsããã¯ãªãã¯ãã¦ãã ããã
ããã§ãTerraform Agent ã使ã£ã¦ã®å®è¡ãå¯è½ã«ãªãã¾ãã
ã§ã¯ãå®éã« Terraform ã®å®è¡ããã¦ã¿ã¾ãã
Workspace ã®ç»é¢ã«æ»ããå³ä¸ã®New Run
ãã¯ãªãã¯ãã¾ãã
Run Type 㯠Plan and Apply(standard) ãé¸æããStart
ãã¯ãªãã¯ãã¾ãã
HCP Terraform ã®ç»é¢ãé·ç§»ããPlan ã¾ã§å®äºãã¾ããã
æ®æ®µã®ç»é¢ã¨ç¹æ®µãå¤åã¯ãªãã§ãã
ããã§ãAgent ã確èªããã¨ã以ä¸ã®ãããªãã°ã表示ããã¦ããã Agent ãå®è¡ããã¦ãããã¨ã確èªã§ãã¾ãã
ããã§ãTerraform Agent ã使ã£ã¦ã®å®è¡ãå®äºãã¾ããã
ã¾ã¨ã
ä»åãHCP Terraform ã® Terraform Agent ã使ã£ã¦ãTerraform ã®å®è¡ãè¡ãã¾ããã
Terraform Agent ã使ããã¨ã§ããªã³ãã¬ç°å¢ãéä¿¡å
IPã¢ãã¬ã¹ãå¶éãããç°å¢ä¸ã§ãå®è¡ãå¯è½ã«ãªãã¾ãã
ãã²ãTerraform Agent ã使ã£ã¦ãTerraform ã®å®è¡ãè¡ã£ã¦ã¿ã¦ãã ããã