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
1
38
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
37
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
yumnumm
0
51
Apple Walletでパスを作るお話
yumnumm
0
170
私がやってきたアウトプット集
yumnumm
0
150
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
74
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
92
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
250
Flutter × Jetpack Composeの相互運用 @ GDG Tokyo 2023
yumnumm
0
1.2k
DartによるBFF構築・運用 〜 Dart Frog × Melos 〜
yumnumm
2
3.2k
Other Decks in Technology
See All in Technology
Securing your Lambda 101
chillzprezi
0
260
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
380
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
190
API の仕様から紐解く「MCP 入門」 ~MCP の「コンテキスト」って何だ?~
cdataj
0
150
技術職じゃない私がVibe Codingで感じた、AGIが身近になる未来
blueb
0
120
kotlin-lsp を Emacs で使えるようにしてみた / use kotlin-lsp in Emacs
nabeo
0
150
Snowflake Intelligenceで実現できるノーコードAI活用
takumimukaiyama
1
210
“プロダクトを好きになれるか“も QAエンジニア転職の大事な判断基準だと思ったの
tomodakengo
0
130
IAMのマニアックな話 2025を執筆して、 見えてきたAWSアカウント管理の現在
nrinetcom
PRO
4
540
白金鉱業Meetup_Vol.19_PoCはデモで語れ!顧客の本音とインサイトを引き出すソリューション構築
brainpadpr
2
310
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
生成AIをテストプロセスに活用し"よう"としている話 #jasstnano
makky_tyuyan
0
150
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Gamification - CAS2011
davidbonilla
81
5.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
690
Scaling GitHub
holman
459
140k
GraphQLとの向き合い方2022年版
quramy
46
14k
Embracing the Ebb and Flow
colly
86
4.7k
Producing Creativity
orderedlist
PRO
346
40k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
GitHub's CSS Performance
jonrohan
1031
460k
Faster Mobile Websites
deanohume
307
31k
A designer walks into a library…
pauljervisheath
206
24k
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ʹ͠·͢