みなさんは、インフラ周りの勉強をコストを低くできたらな、お試しアプリのデプロイを安全にやりたいな、Kubeのアプリや設定が正しいかローカル以外の環境で確認したいなと思ったことはありますでしょうか?
VMやDockerはローカルだとローカル特有の設定もあり、それと区別するのは難しい部分があります。
そんな時自宅鯖であれば物理的に別なマシンのため様々なことを実験することができます!!
必要なもの:中古のPC
近くの中古PC販売店や楽天などで購入できます。
https://search.rakuten.co.jp/search/mall/optiplex+3020/
今時、メインPCに使うには8GBのメモリーでは心許ないですが、EC2のスペック表から換算すると
約9000円
これが電気代(と管理者の時間)にランニングコストが下がります。管理者の時間を抜きに考えれば1ヶ月ちょっとで元を取ることができます!お得!!
今回使ったPCのスペックは以下のような形になっております。
total used free shared buff/cache available
Mem: 7.7Gi 199Mi 7.2Gi 1.0Mi 340Mi 7.3Gi
Swap: 4.0Gi 0B 4.0Gi
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
CPU family: 6
Model: 60
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Stepping: 3
CPU max MHz: 3400.0000
CPU min MHz: 800.0000
BogoMIPS: 6784.54
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 64 KiB (2 instances)
L1i: 64 KiB (2 instances)
L2: 512 KiB (2 instances)
L3: 3 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-3
Vulnerabilities:
Itlb multihit: KVM: Mitigation: VMX disabled
L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
Mds: Mitigation; Clear CPU buffers; SMT vulnerable
Meltdown: Mitigation; PTI
Mmio stale data: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP conditional, RSB
filling
Srbds: Mitigation; Microcode
Tsx async abort: Not affected
Wifiを繋げる手段について
Wifiを繋げる手段としては以下の方法が挙げられます(有線LANに繋げられない場合)
- 有線LANを繋げることができる中継機を購入し、そこから有線で繋ぐ
- USB無線LANアダプター等を書いドライバーを設定する。
後者は2000円強でできますが、安定性などを考慮すると前者の方法を使うことをお勧めします。
ネットワーク関連の設定等の一部にはインターネットが必要な場合もあり、場合によってはUSBアダプターではできない可能性があることを頭に入れておいてください。
メモ:USB Wifi子機の接続設定について
大まかな流れとしては、
- ドライブのIDを探す
- ネットワークカードのデバイスIDに1.で見つけたIDを書き加える
-
/etc/netplan/
に接続情報を記載する
ドライブIDの探し方
ネットワーク機器を挿入した状態でlsusb
コマンドを入力するとこのように接続されているデバイスの一覧が表示される。
私の場合はElecom製のWifiモジュールを使っていたため056E 4009
を書き加えることになる。
$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 056e:4009 Elecom Co., Ltd WDC-300SU2S
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ネットワークカードのデバイスIDに書き加える。
参考記事によると、
$ sudo modprobe rtl8192cu
$ echo "056E 4009" | sudo tee /sys/bus/usb/drivers/rtl8192cu/new_id
認識されると以下の様になる(wlx0...が追記部分。この時点ではRX xxxは全て0になってるはず)
$ ifconfig -a
enp2s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether f8:bc:12:56:af:c6 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 980 bytes 78012 (78.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 980 bytes 78012 (78.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlx04ab189bad94: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.60 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 2400:2411:4860:6f00:6ab:18ff:fe9b:ad94 prefixlen 64 scopeid 0x0<global>
inet6 fe80::6ab:18ff:fe9b:ad94 prefixlen 64 scopeid 0x20<link>
ether 04:ab:18:9b:ad:94 txqueuelen 1000 (Ethernet)
RX packets 46966 bytes 49356651 (49.3 MB)
RX errors 0 dropped 1219 overruns 0 frame 0
TX packets 21341 bytes 2582894 (2.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlx04ab189bad94
についてのネットワーク設定をYamlファイルに追記していく。
追記内容は以下。
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlx04ab189bad94:
optional: true
access-points:
"<ネットワークのアクセスポイント名>":
password: "<パスワード>"
dhcp4: true
sudo netplan generate
sudo netplan apply