Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
Search
Ryotaro Onoue
June 20, 2025
Technology
2
97
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
自動化をゆるく学ぶ会
Ryotaro Onoue
June 20, 2025
Tweet
Share
More Decks by Ryotaro Onoue
See All by Ryotaro Onoue
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
52
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
yumnumm
0
62
Apple Walletでパスを作るお話
yumnumm
0
180
私がやってきたアウトプット集
yumnumm
0
150
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
81
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
100
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
250
Flutter × Jetpack Composeの相互運用 @ GDG Tokyo 2023
yumnumm
0
1.2k
DartによるBFF構築・運用 〜 Dart Frog × Melos 〜
yumnumm
2
3.3k
Other Decks in Technology
See All in Technology
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
150
[OCI Technical Deep Dive] OCIで生成AIを活用するためのソリューション解説(2025年8月5日開催)
oracle4engineer
PRO
0
120
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
120
AIと描く、未来のBacklog 〜プロジェクト管理の次の10年を想像し、創造するセッション〜
hrm_o25
0
110
結局QUICで通信は速くなるの?
kota_yata
8
7.5k
[kickflow]20250319_少人数チームでのAutify活用
otouhujej
0
170
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
1
420
Agent Development Kitで始める生成 AI エージェント実践開発
danishi
0
160
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
3
1.1k
JAWS AI/ML #30 AI コーディング IDE "Kiro" を触ってみよう
inariku
3
400
いま、あらためて考えてみるアカウント管理 with IaC / Account management with IaC
kohbis
2
420
AIに頼りすぎない新人育成術
cuebic9bic
3
330
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Gamification - CAS2011
davidbonilla
81
5.4k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.8k
Into the Great Unknown - MozCon
thekraken
40
2k
Being A Developer After 40
akosma
90
590k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Making Projects Easy
brettharned
117
6.3k
How GitHub (no longer) Works
holman
314
140k
Visualization
eitanlees
146
16k
Six Lessons from altMBA
skipperchong
28
4k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Transcript
2025.06.20 Terraform + cloud-initͰ ࣗαʔόͷLXDΛIaC͢Δ͓ Ryotaro Onoue (͙͙) ΏΔࣗ͘ಈԽΛֶͿձ
WingArc1st͞Μ + ΏΊΈ
0. whoami - ඌ্ ྒྷଠ࿕ (͓ͷ͏͑ Γΐ͏ͨΖ͏) - Twitter:
@YumNumm (͙͙) - 2004.09.17ੜ·Ε - ਆಸݝࡏॅ ܦྺ - ԣαΠΤϯεϑϩϯςΟΞߴߍ(୯Ґ੍ཧՊ)ग़ - גࣜձࣾ ΏΊΈ 20234݄ ৽ଔೖࣾ - Flutter Ϧʔυ(ϚΠελʔΤϯδχΞ) ͖ Dart(Flutter), TypeScript, Cloudflare, ࡂ ใ, ৽͍͠ͷ
0. whoami - EQMonitor ͱ͍͏ؔ࿈ͷΞϓϦέʔ γϣϯΛݸਓ։ൃ͍ͯ͠·͢ - Flutter -
Φʔϓϯιʔε - DBSupabase CloudΛ༻த - API(BFF)ͱͯ͠Cloudflare WorkersΛڬΜͰ͍·͢ - ௨৴ج൫, σʔλॲཧج൫ͱͯ͠ OCIΛར༻த - (࠷ۙߋ৽ΛαϘ͍ͬͯΔ) - https://github.com/YumNumm/ EQMonitor
ࠓͷ͓͠ͳ͕͖ 1. ࣗαʔό, Πϯϑϥͷ͝հ 1.ࣗαʔόͰԿ͍ͯ͠Δͷ? 2. ࣗαʔόͷཪଆͱIaCͷ͖͔͚ͬ 1.LXDͱ? 2.IaCͱ?
3.Terraformͱ? 4.cloud-initͱ? 3. ࣮ફ 4. ·ͱΊ
1. ࣗαʔό, Πϯϑϥͷ͝հ
1. ࣗαʔό, Πϯϑϥͷ͝հ
Ubiquiti 1. ࣗαʔό, Πϯϑϥͷ͝հ - ϝΠϯͷωοτϫʔΫपΓ - Ubiquiti Aggregation
(্): 10G SFP×8 εΠον - Ubiquiti U7 Pro(ӈ): ΞΫηεϙΠϯτ - Ubiquiti Dream Machine Special Edition(Լ): ϝΠϯϧʔλʔ - 10G SFPx2, GbE RJ45x8, 2.5GbE RJ45
Ubiquiti 1. ࣗαʔό, Πϯϑϥͷ͝հ - ϝΠϯͷωοτϫʔΫपΓ - Ubiquiti Dream
Machine Special Edition: ϝΠϯϧʔλ - ࢹΧϝϥͷը - ͓͏ͪDNSΩϟογϡαʔόͱͯ͠Քಇ
WIC 1. ࣗαʔό, Πϯϑϥͷ͝հ - ೲށ - FUJITSU RX2530
M4 (Լ͔Β1ஈ ࠨ) - Ubuntu 24.04 LTS - CPU:Intel Xeon Gold 6138 x2 (40C 80T) - ϝϞϦ: 128GB - UPS (1ஈ ӈ) - 1,000ԁ ϠϑΦΫߪೖ - L2 Switch (2ஈࠨ, 10G SFP -> 10G RJ45x8) - M1 Mac mini (3ஈࠨ) - Asahi LinuxͰUbuntuΛಈ͔͍ͯ͠·͢ - ThinkPad X1 Carbon (4ஈӈ) - ࢹσΟεϓϨΠ༻
- ࢹ - EQMonitorͰӡ༻͍ͯ͠Δαʔό(Oracle Cloud, Cloudflare)ͷϩά, ϝτϦΫεऩू - ࣗͷՄࢹԽ -
DockerίϯςφϨδετϦ - Harborͱ͍͏OSSΛಈ͔͍ͯ͠Δ - ϝσΟΞετϨʔδ, ϑΝΠϧετϨʔδ - ࡱͬͨࣸਅಈըΛอ/macOSͷTimeMachine DLNA, SMBͰΞΫηε - ࣗ༻ͷGitHub Actions Self Hosted Runner - ࣗ༻ͷWiki, λΠϜτϥοΩϯά ͳͲͳͲ… 1-1. ࣗαʔόͰԿ͍ͯ͠Δͷ?
Ubiquiti 1. ࣗαʔό, Πϯϑϥͷ͝հ - EQMonitorͷAPIͷϩά - ֎ʹ࿐ग़͍ͯ͠ΔOpenTelemetryΤϯυϙΠϯτΛ௨ͯ͡ɺLoki(Cloudflare R2
backend)ʹϩά͕֨ೲ - GrafanaLoki͔ΒϩάΛऔಘ
Ubiquiti 1. ࣗαʔό, Πϯϑϥͷ͝հ - EQMonitorͷAPIͷϩά - ֎ʹ࿐ग़͍ͯ͠ΔOpenTelemetryΤϯυϙΠϯτΛ௨ͯ͡ɺLoki(Cloudflare R2
backend)ʹϩά͕֨ೲ - GrafanaLoki͔ΒϩάΛऔಘ - EQMonitorͷAPIͷϩά - ֎ʹ࿐ग़͍ͯ͠ΔOpenTelemetryΛ௨ͯ͡ɺLoki(Cloudflare R2 backend)ʹϩά͕֨ೲ - GrafanaLoki͔ΒϩάΛऔಘ - ෆ۩߹ͷௐࠪΤϥʔࢹͳͲʹར༻
Ubiquiti \ - ͓͏ͪͷ֤छใ - ϥοΫαʔόͷϝτϦΫε, ࣨԹ, ిྗ༷ঢ়گͳͲΛϞχλϦϯά
Ubiquiti \ - ͓͏ͪͷ֤छใ - ϥοΫαʔόͷϝτϦΫε, ࣨԹ, ిྗ༷ঢ়گͳͲΛϞχλϦϯά -
͓͏ͪͷ֤छใ - ϥοΫαʔόͷϝτϦΫε, ࣨԹ, ిྗ༷ঢ় گͳͲΛϞχλϦϯά - ࣌ʑ͖ʹߦ͘ͱ݁ߏ͓͠Ζ͍
2. ࣗαʔόͷཪଆͱIaCͷ͖͔͚ͬ
! Infrastructure as Code ࢲΠϯϑϥͷઐՈͰͳ͍ͷͰɺ͔ͨ͠͠Βӕ͕ฆΕࠐΜͰ͍Δ͔͠Ε·ͤΜ! ࠙ձʹͯϚαΧϦΛ͓͓ͪͯ͠Γ·͢!
ͯ͢ͷαʔϏείϯςφͷ্ʹ͔͍ͬͬͯ·͢ 2-1. LXD - ʮίϯςφʯ - ͦΕͧΕͷϓϩηεΛִۭͨؒ͠Ͱ࣮ߦ͢Δٕज़ - Linux
Kernelͷnamespace, cgroupͳͲͰ࣮ݱ - ԾϚγϯΑΓΦʔόʔϔου͕গͳ͍ - ʮγεςϜίϯςφʯ - ΧʔωϧҎ֎ͷLinuxγεςϜ͕ಈ͍͍ͯΔίϯςφͷ͜ͱ -> initϓϩηεؚΊͯ·Δ·Δ্ཱ͕ͪΔ - systemd - Dockerͱಉ͡? - DockerԾϚγϯͱҧ͍ɺ୯ҰͷϓϩηεΛಈ͔͢ͷ͕جຊ - தߋ৽͠ͳ͍Ͱ͍ࣺͯΔͷ͕جຊ - -> DockerͰɺΰχϣΰχϣࢼߦࡨޡ͢Δͷʹ͍͍ͯͳ͍ - ԾϚγϯͷΑ͏ʹϑϧͷOS͕ಈ͘ ͨͩ͠ɺԾϚγϯ΄ͲͷΦʔόʔϔου͕ͳ͍ Docs: https://lxd-ja.readthedocs.io/
Lightweight open source virtualization framework 2-1. LXD - LXDͱ?
- Lex-deeͱൃԻ͢ΔΒ͍͠ - ʮ࣍ੈͷγεςϜίϯςφͱԾϚγϯϚωʔδϟʯ - Ubuntu(LinuxσΟετϦϏϡʔγϣϯ)ͷ։ൃࢧԉΛ͍ͯ͠ΔCanonicalࣾʹΑͬͯ࡞ΒΕ͍ͯΔ - γεςϜίϯςφ͚ͩͰͳ͘ɺԾϚγϯཧͰ͖Δ - ෦తʹɺQEMUΛ࣮ߦ͍ͯ͠Δ - windowsಈ͔ͤΔ - LXDΛෳཱͯͯɺՄ༻ੑ্, ෛՙࢄՄೳ - CephΛͬͯετϨʔδΛࢄͤ͞Δ͜ͱՄೳ - LXDΠϯελϯεͷதͰDockerΛ্ཱͪ͛Δ͜ͱՄೳ - UbuntuʹϓϦΠϯετʔϧࡁΈ - lxd-uiͱ͍͏WebUI༻ҙ͞Ε͍ͯΔ - ͪͳΈʹɺproxmoxͷ෦ͰLXD͔kvm͕ΘΕΔ Docs: https://lxd-ja.readthedocs.io/
Lightweight open source virtualization framework 2-1. LXD - LXDͱ?
- Lex-deeͱൃԻ͢ΔΒ͍͠ - ʮ࣍ੈͷγεςϜίϯςφͱԾϚγϯϚωʔδϟʯ - Ubuntu(LinuxσΟετϦϏϡʔγϣϯ)ͷ։ൃࢧԉΛ͍ͯ͠ΔCanonicalࣾʹΑͬͯ࡞ΒΕ͍ͯΔ - γεςϜίϯςφ͚ͩͰͳ͘ɺԾϚγϯཧͰ͖Δ - ෦తʹɺQEMUΛ࣮ߦ͍ͯ͠Δ - windowsಈ͔ͤΔ - LXDΛෳཱͯͯɺՄ༻ੑ্, ෛՙࢄՄೳ - CephΛͬͯετϨʔδΛࢄͤ͞Δ͜ͱՄೳ - LXDΠϯελϯεͷதͰDockerΛ্ཱͪ͛Δ͜ͱՄೳ - UbuntuʹϓϦΠϯετʔϧࡁΈ - lxd-uiͱ͍͏WebUI༻ҙ͞Ε͍ͯΔ - ͪͳΈʹɺproxmoxͷ෦ͰLXD͔kvm͕ΘΕΔ Docs: https://lxd-ja.readthedocs.io/ ίϯςφ্ཱͪ͛ ࣮ԋ
Lightweight open source virtualisation framework 2-2. LXD - LXDͱ?
- ʮ࣍ੈͷγεςϜίϯςφͱԾϚγϯϚωʔδϟʯ - Canonicalࣾ - Ubuntu(LinuxσΟετϦϏϡʔγϣϯ)ͷ։ൃࢧԉΛ͍ͯ͠ΔCanonicalࣾʹΑͬͯ࡞ΒΕ͍ͯΔ - γεςϜίϯςφ͚ͩͰͳ͘ɺԾϚγϯཧͰ͖Δ - ෦తʹɺQEMUΛ࣮ߦ͍ͯ͠Δ - UbuntuʹϓϦΠϯετʔϧࡁΈ Docs: https://lxd-ja.readthedocs.io/
Lightweight open source virtualization framework 2-1. LXD - ؆୯ʹΠϯελϯεΛ࡞ΕΔ͜ͱ͔ͬͨ👍
- Ͳ͜ͰԿ͕ͲΜͳߏͰಈ͍͍ͯΔ͔͔Βͳ͘ͳ͖ͬͯͨ - ͍͔ͭΧΦεͳ͓Ոʹͳͬͯ͠·͏͜ͱ༰қʹ૾Ͱ͖Δ - ॳظઃఆ͕໘… - Ϣʔβ࡞, SSH伴ొ, apt upgrade... શ෦खಈ!? ໘!!! - IaC͍ͨ͠... Docs: https://lxd-ja.readthedocs.io/
ͦΜͳ͋Δͷ͜ͱ...
- αʔόʹೖΕ͍ͯͨSSD͕read-onlyʹͳͬͨ - 1-2. ͋Δͷ͜ͱ BTRFS error ٸʹrootFSͷSSDͷσʔλ͕ಡΈࠐΊͳ͘ͳ͍ͬͯͨ 😱
- ͚ʹϑΝϯ͕͏Δ༷ͯ͘͞ࢠΛݟͨΒɺSSD͕ಡΈऔΕͳ͘ͳ͍ͬͯͨ - εϩοτͷ͓আͯ͠࠶ىಈͨ͠Β࣏ͬͪΌͬͨ - ݪҼ͕Կͩͬͨͷ͔Α͔͍ͬͯ͘ͳ͍͕ɺ͋Ε͔Βिؒ࠶ൃ͍ͯ͠ͳ͍ - ΞϥʔτΈ్தͰඈΜͰ͜ͳ͔ͬͨ -
͍σʔλ͕ඈͿ͜ͱͳ͔ͬͨ - αʔόͷσʔλ͕͍ͭඈͿ͔͔Βͳ͍ - RAIDߏΜͰ͍ͨͱͯ͠ɺಉ࣌ʹࢮ͵Մೳੑશવ͋Δ - ͳʹ͔ͷϛεͰ rm -rf /* ͱ͔ͪ͠Ό͏͔͠Εͳ͍ -> IaC͢Δͱ͍͏ڧ͍ҙࢥ ͦΜͳ͋Δͷ͜ͱ...
Infrastructure as Code 2-2. IaCͱ? IaC: ΠϯϑϥϦιʔεΛίʔυͰཧ͢Δ Ex. Ansible,
Terraform, AWS CloudFormation - IaCͷ͏Ε͍͠ͱ͜Ζ - ڥΛෳ͍͢͠ - ผregionʹಉ͡ڥΛ࡞Γ͍ͨ .etc - ώϡʔϚϯΤϥʔͷݮ - ίʔυϨϏϡʔΛ௨ͯ͡ɺมߋͷਖ਼͠͞ΛϨϏϡʔͰ͖Δ - ίʔυ͔ΒίετΛਪఆ͠ɺΠϯϑϥΛ࠷దԽ - cf. infracost: https://www.infracost.io/ -> ࠓճɺTerraformͱcloud-initͰࣗͷLXDΠϯελϯεΛཧ͠·͢
by HashiCorp 2-3. Terraform - HashiCorpࣾͷIaCπʔϧ - ΠϯϑϥϦιʔεΛߏங,ཧͰ͖Δ -
Ex. AWS EC2Λىಈ, S3ͷόέοτ࡞.etc - FYI: IBM͕HashiCorpࣾΛങऩ (2025/3) - HCL(Hashicorp Configuration Language)Ͱهड़ - ϚϧνϓϩόΠμʔରԠ - AWS, Azure, GCPͳͲͷओཁαʔϏεϓϩόΠμʔͩ ͚Ͱͳ͘ɺKubernetes, Docker, LXD ͳͲα ϙʔτ - .tfϑΝΠϧΛ࡞ͬͯ... planΛ֬ೝͯ͠... apply!
Industry standard multi-distribution method for cloud instance initialization 2-4.
cloud-init - LXDΛར༻ͯ͠؆୯ʹίϯςφΛݐͯΒΕͨ - ॳظઃఆ? Ϣʔβ࡞? ssh伴ొ? खಈ!? Ϛδ!? - cloud-initͱ? - YAMLͰఆٛͨ͠ϢʔβσʔλΛड͚औΓɺΠϯελϯεͷηοτΞοϓΛߦ͑Δ - ϓϩόΠμʔ͔Βఏڙ͞ΕΔϝλσʔλΛݩʹॲཧΛߦ͏͜ͱՄೳ - ͪ͜ΒCanonical - ͍ΖΜͳLinuxσΟετϦϏϡʔγϣϯͰ͑Δ - cloudbase-initΛ͏ͱwindowsରԠͰ͖Δ Docs: https://cloudinit.readthedocs.io/
Industry standard multi-distribution method for cloud instance initialization 2-4.
cloud-init - LXDΛར༻ͯ͠؆୯ʹίϯςφΛݐͯΒΕͨ - ॳظઃఆ? Ϣʔβ࡞? ssh伴ొ? खಈ!? Ϛδ!? - cloud-initͱ? - YAMLͰఆٛͨ͠ϢʔβσʔλΛड͚औΓɺΠϯελϯεͷηοτΞοϓΛߦ͑Δ - ϓϩόΠμʔ͔Βఏڙ͞ΕΔϝλσʔλΛݩʹॲཧΛߦ͏͜ͱՄೳ - ͪ͜ΒCanonical - ͍ΖΜͳLinuxσΟετϦϏϡʔγϣϯͰ͑Δ - cloudbase-initΛ͏ͱwindowsରԠͰ͖Δ Docs: https://cloudinit.readthedocs.io/ ύοέʔδͷࣗಈΞοϓσʔτ ύοέʔδͷΠϯετʔϧ 5; MPDBMFͷઃఆ Ϣʔβͷ࡞ ίϚϯυ࣮ߦ https://cloudinit.readthedocs.io/en/latest/reference/modules.html • ModuleΛॱʹॻ͍͍ͯ͘
3. ࣮ફ LXD IaC
- ࣄલ४උ - TerraformΛ࣮ߦ͢ΔϚγϯ͔ΒαʔόΛૢ࡞Ͱ͖ΔΑ͏ʹ͍ͨ͠ - LxdͷΫϥΠΞϯτϥΠϒϥϦ(lxc)ΛΠϯετʔϧ - `brew install lxc`ͰOK
- LXD DaemonͱLXCHTTPS্ͷREST APIͰ௨৴͢ΔͨΊɺηοτΞοϓ͕ඞཁ LXDͷϦϞʔτAPIೝূ 3. ࣮ફ - LXDͱLXC
- ࣄલ४උ - LxdͷΫϥΠΞϯτϥΠϒϥϦ(lxc)ΛΠϯετʔϧ - `brew install lxc`ͰOK - LXD
DaemonͱLXCHTTPS্ͷJSONͰ௨৴͢ΔͨΊɺ伴ϖΞΛൃߦ͢Δඞཁ͕͋Δ - `lxc remote add [IP|FQDN|URL|token]` - https://lxd-ja.readthedocs.io/ja/latest/authentication/ LXDͷϦϞʔτAPIೝূ 3. ࣮ફ - LXDͱLXC MacBook αʔό (LXD Daemon) 1. [PC] ϦϞʔταʔόՃ 2. [Server] τʔΫϯൃߦ 3. [PC] σϑΥϧτϦϞʔτ มߋ 4. [PC] ϦϞʔτͱૄ௨ͯ͠ ͍Δ͜ͱΛ֬ೝ
- `terraform-lxd/lxd` ProviderΛར༻͢Δ طଘͷΠϯελϯεใΛTerraformʹॻ͖ग़͢ 3. ࣮ફ - Terraform
- `terraform-lxd/lxd` ProviderΛར༻͢Δ - TerraformΛ࣮ߦ͢ΔϚγϯ͔ΒݟͨLXDͷ AddressΛઃఆ طଘͷΠϯελϯεใΛTerraformʹॻ͖ग़͢ 3. ࣮ફ
- Terraform
- `terraform-lxd/lxd` ProviderΛར༻͢Δ - TerraformΛ࣮ߦ͢ΔϚγϯ͔ΒݟͨLXDͷAddressΛઃఆ - طଘͷLXDίϯςφΛTerraformʹॻ͖ى͍ͨ͜͠ - खಈͰॻ͖ى͜͢ͷ໘ -
TerraformʹࣗಈͰॻ͖ىͤ͜͞Δ͜ͱ͕Ͱ͖Δ [EXPERIMENTAL] - cf. Import existing resources overview: https://developer.hashicorp.com/ terraform/cli/import ※ terraformੜ͞ΕΔϑΝΠϧɺ࠶ݱੑ͕ແ͍͜ͱʹҙ͢Δඞཁ͕͋Δ ɾimport࿙Ε͕ൃੜͨ͠Γɺ҉తͳґଘؔʹؾͮ͘͜ͱ͕Ͱ͖ͳ͍ 3. ࣮ફ - Terraform طଘͷΠϯελϯεใΛTerraformʹॻ͖ग़͢
- طଘͷLXDίϯςφΛTerraformʹॻ͖ى͍ͨ͜͠ - खಈͰॻ͖ى͜͢ͷ໘ - `terraform import`ίϚϯυ͕͑Δ - cf. Import
existing resources overview: https://developer.hashicorp.com/ terraform/cli/import ※ terraform importίϚϯυͰੜ͞ΕΔϑΝΠϧɺ࠶ݱੑ͕ແ͍͜ͱʹҙ͢Δඞཁ͕͋Δ ɾimport࿙Ε͕ൃੜͨ͠Γɺ҉తͳґଘؔʹؾͮ͘͜ͱ͕Ͱ͖ͳ͍ 3. ࣮ફ - Terraform طଘͷΠϯελϯεใΛTerraformʹॻ͖ग़͢ 1. ImportϒϩοΫΛॻ͍ͯ͋͛Δ 2. `terraform plan -generate- config-out=generated.tf`Λ࣮ ߦ 3. ੜ͞ΕͨtfϑΝΠϧΛ֬ೝ 4. terraform plan͢Δ ^ `Plan: [x] to import`ͱग़ͯ ϑΝΠϧ͕ੜ͞ΕΔ ੜ͞ΕͨϑΝΠϧ
using GitHub Actions Self Hosted Runner 9 [SKIP] GitHubͷPRىͰσϦόϦ
- tfcmt - https://github.com/suzuki-shunsuke/tfcmt - TerraformʹมߋΛؚΉPRΛ࡞ͨ࣌͠ʹɺPlanͷϩ άΛܗͯ͠ίϝϯτͯ͘͠ΕΔ - Ϛʔδͨ͠Βapply͠ɺίϝϯτ -
GitHub Actionsͷplanͷ݁ՌΛݟʹߦ͔ͳͯ͘OK tfcmtྑ͍ͧ 9 [SKIP] Terraform Tips
- nginxͰWebϖʔδΛల։͢ΔΠϯελϯεΛ࡞͢Δ - ج൫͍ͬͯΔͷͰɺclaude codeʹTerraformͱ cloud-initΛ࡞ΒͤΔ - https://github.com/YumNumm/rx2530-infra/ issues/9 -
https://github.com/YumNumm/rx2530-infra/ pull/10 Infrastructure as Code using claude code 3. ࣮ફ
- nginxͰWebϖʔδΛల։͢ΔΠϯελϯεΛ࡞͢Δ - claude codeʹTerraformͱcloud-initΛ࡞ΒͤΔ - https://github.com/YumNumm/rx2530-infra/ issues/9 - https://github.com/YumNumm/rx2530-infra/
pull/10 Infrastructure as Code using claude code 3. ࣮ફ 👍
Terraform + cloud-initͰࣗαʔόͷLXDΛIaC͢Δ͓ ·ͱΊ - ҰՈʹҰɺࣗαʔόΛ... - ʮࣗαʔό͕͋Δͱɺͪΐͬͱݏͳ͜ͱ͕͋ͬͯʰ·͋ՈʹؼΕαʔό͋Δ͠ͳʱͬͯͳΔ͠ɺʰࢲ ࣗͰαʔόͱΑΖ͍ͬͯ͘͠ΔͩͧʱͬͯͳΕΔɻʯ
- ৗ࣌ಈ͔͓͖͍ͯͨ͠ιϑτΣΞΛ͍ͭͰՃྉۚͳ͠Ͱಈ͔ͤΔ - Linuxͷ͕͍ࣝͭͯΦτΫ - IaCࢥ͍ͬͯͨΑΓָ͔ͬͨ͠ - ͬͱେมͩͱࢥ͍͕ͬͯͨɺ͢ΜͳΓ࣮Ͱ͖ͨ - ͲΜͳߏ͔ͩͬͨࢥ͍ग़ͤͳͯ͘ɺίʔυΛݟΕOK - AIʹίʔυΛॻ͔ͤͯɺPRϚʔδͰ৽͍͠αʔϏεΛಈ͔ͤΔ - ࠓޙͷల - GitHub Actions Self Hosted RunnerΛ(ϦΫΤετ͕͋ͬͨ࣌ʹ)LXD্ͰҰ࣌ΠϯελϯεΛ࡞ - Cloudflare Tunnel, DNSIaC͍ͯ͋͛ͨ͠ - ͦ͏͢ΕɺWebαΠτ,APIެ։·ͰҰൃ!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠! - ࠙ձͰTerraformͷTipsͱ͔͋ͬͨΒͥͻڭ͍͑ͯͩ͘͞! - ࢀߟࢿྉ - ੜϋϜݪ: https://x.com/flowertoman/status/1148183345387335680 -
cloud-init: https://cloudinit.readthedocs.io/ - lxd: https://lxd.readthedocs.io/ - terraform: https://developer.hashicorp.com/terraform - terraform-provider—lxd: https://registry.terraform.io/providers/terraform- lxd/lxd - ίʔυ - https://github.com/YumNumm/rx2530-infra: ͦͷ͏ͪPrivateʹ͠·͢