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
110
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
53
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
yumnumm
0
65
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
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
860
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
410
エラーとアクセシビリティ
schktjm
1
1.2k
Grafana MCPサーバーによるAIエージェント経由でのGrafanaダッシュボード動的生成
hamadakoji
1
1.5k
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
270
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
190
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
0
250
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
290
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
9
2.8k
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
1
220
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
Thoughts on Productivity
jonyablonski
70
4.8k
Bash Introduction
62gerente
615
210k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Agile that works and the tools we love
rasmusluckow
330
21k
For a Future-Friendly Web
brad_frost
180
9.9k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
A Tale of Four Properties
chriscoyier
160
23k
Facilitating Awesome Meetings
lara
55
6.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
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ʹ͠·͢