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 公式アプリ&WebサイトのCDについて
yumnumm
0
13
FlutterKaigi 2025 システム裏側
yumnumm
0
1.1k
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
57
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
yumnumm
0
80
Apple Walletでパスを作るお話
yumnumm
0
190
私がやってきたアウトプット集
yumnumm
0
160
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
90
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
120
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
260
Other Decks in Technology
See All in Technology
個人から巡るAI疲れと組織としてできること - AI疲れをふっとばせ。エンジニアのAI疲れ治療法 ショートセッション -
kikuchikakeru
4
1.7k
DDD x Microservice Architecture : Findy Architecture Conf 2025
syobochim
9
2.8k
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
110
大規模プロダクトで実践するAI活用の仕組みづくり
k1tikurisu
4
1.7k
【M3】攻めのセキュリティの実践!プロアクティブなセキュリティ対策の実践事例
axelmizu
0
170
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
60
21k
はじめての OSS コントリビューション 〜小さな PR が世界を変える〜
chiroito
4
350
OSだってコンテナしたい❗Image Modeが切り拓くLinux OS運用の新時代
tsukaman
0
110
Post-AIコーディング時代のエンジニア生存戦略
shinoyu
0
300
re:Invent2025 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
190
雲勉LT_Amazon Bedrock AgentCoreを知りAIエージェントに入門しよう!
ymae
1
150
都市スケールAR制作で気をつけること
segur
0
160
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
Being A Developer After 40
akosma
91
590k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
It's Worth the Effort
3n
187
28k
How STYLIGHT went responsive
nonsquared
100
5.9k
Raft: Consensus for Rubyists
vanstee
140
7.2k
The Invisible Side of Design
smashingmag
302
51k
GitHub's CSS Performance
jonrohan
1032
470k
Why Our Code Smells
bkeepers
PRO
340
57k
The Language of Interfaces
destraynor
162
25k
Speed Design
sergeychernyshev
32
1.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
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ʹ͠·͢