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
130
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
自動化をゆるく学ぶ会
Ryotaro Onoue
June 20, 2025
Tweet
Share
More Decks by Ryotaro Onoue
See All by Ryotaro Onoue
FlutterKaigi 2025 システム裏側
yumnumm
0
1k
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
57
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
yumnumm
0
80
Apple Walletでパスを作るお話
yumnumm
0
190
私がやってきたアウトプット集
yumnumm
0
150
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
90
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
120
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
260
Flutter × Jetpack Composeの相互運用 @ GDG Tokyo 2023
yumnumm
0
1.2k
Other Decks in Technology
See All in Technology
データとAIで未来を創るDatabricks - 君の可能性を加速させるプラットフォーム
taka_aki
0
110
"おまじない"はもう卒業! デバッガで探るSpring Bootの裏側と「学び方」の学び方
takeuchi_132917
0
150
Claude Code 10連ガチャ
uhyo
3
680
ある編集者のこれまでとこれから —— 開発者コミュニティと歩んだ四半世紀
inao
4
3.1k
【M3】攻めのセキュリティの実践!プロアクティブなセキュリティ対策の実践事例
axelmizu
0
150
re:Invent完全攻略ガイド
junjikoide
1
340
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
6
450
JJUG CCC 2025 Fall バッチ性能!!劇的ビフォーアフター
hayashiyuu1
1
320
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
1
370
[CV勉強会@関東 ICCV2025 読み会] World4Drive: End-to-End Autonomous Driving via Intention-aware Physical Latent World Model (Zheng+, ICCV 2025)
abemii
0
210
AIと共に開発する時代の組織、プロセス設計 freeeでの実践から見えてきたこと
freee
3
700
米軍Platform One / Black Pearlに学ぶ極限環境DevSecOps
jyoshise
1
310
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
KATA
mclloyd
PRO
32
15k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
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ʹ͠·͢