การพิสูจน์แนวคิดสำหรับการแชร์การกำหนดค่า snap ข้าม snaps โดยใช้ confdbs การกำหนดค่าของ snapd
สำหรับการสาธิตที่ตรงไปตรงมา โปรดดูพื้นที่เก็บข้อมูลนี้แทน
คำเตือน
ก่อนหน้านี้ Confdbs ถูกเรียกว่ารีจิสทรีและประเด็นต่างๆ ก่อนหน้านั้น Snapd, Snapcraft และ Store ยังไม่เข้าใจการเปลี่ยนชื่อนี้ ในตอนนี้ ให้แทนที่ทุกการกล่าวถึง "confdb" ด้วย "registry" และ "confdbs" ด้วย "registries"
บันทึก
โปรดทราบว่าชื่อเดิมของ การลงทะเบียน คือ ประเด็นต่างๆ นั่นคือสาเหตุที่สแน็ปอินมีคำนำหน้า ประเด็นต่างๆ
หากต้องการติดตั้ง PoC นี้ เพียงเรียกใช้สคริปต์การติดตั้ง:
$ /bin/bash -c " $( curl -fsSL https://raw.githubusercontent.com/canonical/registries-poc/main/install.sh ) "
Acknowledging account/f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN assertion...
Acknowledging account-key/xkd_Y2ay5N2Uo14v_wsCtfVJYLAVbJgxbiKM8Ne4mZBflaROriZgk2nb5i9Oebum assertion...
Acknowledging network-confdb.assert assertion...
Installing aspects-poc-server...
aspects-poc-server (edge) 0.2 from Stephen Mwangi (st3v3nmw) installed
Installing aspects-poc-control...
aspects-poc-control (edge) 0.2 from Stephen Mwangi (st3v3nmw) installed
Installing aspects-poc-vpn...
aspects-poc-vpn (edge) 0.2 from Stephen Mwangi (st3v3nmw) installed
Installing aspects-poc-reporting...
aspects-poc-reporting (edge) 0.2 from Stephen Mwangi (st3v3nmw) installed
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง PoC โดยใช้สคริปต์การติดตั้งด้านบน สคริปต์ควรติดตั้ง server
สแนป control
สแนป vpn
และสแนป reporting
ทุกอย่างควรทำงานโดยอัตโนมัติและสแน็ป control
ควรติดต่อกับเซิร์ฟเวอร์เพื่อลงทะเบียน เมื่อลงทะเบียนแล้ว มุมมอง confdb observe-device
ควรมีลักษณะดังนี้:
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/observe-device -d
{
"registered": 1719407517,
"uuid": "ca155b32-2472-4650-afb0-c6f967328afe"
}
สแน็ control
จะตั้งค่าการกำหนดค่าเริ่มต้นของอุปกรณ์ระหว่างการติดตั้งครั้งแรก:
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/control-interfaces config -d
{
"config": {
"eth0": {
"interface-type": "ethernet",
"ip-address": "172.16.0.3"
},
"wlan0": {
"interface-type": "wifi",
"ip-address": "192.168.0.104"
}
}
}
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/control-tunnel -d
{
"interface": "eth0",
"peers": [
"192.168.21.3",
"192.168.151.225",
"192.168.21.7"
]
}
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/control-telemetry -d
{
"monitor-packets-received": false,
"monitor-packets-sent": true,
"monitor-peers": true,
"sample-rate": 2
}
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/control-device -d
{
"server-url": "http://127.0.0.1:8000"
}
จากนั้นเป็นต้นไป สแน็ป control
จะทำงานทุกนาทีและจำลองการไหลของแพ็กเก็ตในแต่ละอินเทอร์เฟซ ( config.{interface}.stats
) คุณสามารถยืนยันสิ่งนี้ได้โดยตรวจสอบ daemon ของ snap:
$ snap logs aspects-poc-control
systemd[1]: Starting snap.aspects-poc-control.daemon.service - Service for snap application aspects-poc-control.daemon...
aspects-poc-control.daemon[409009]: eth0: 9 packets ↑, 1 packets ↓
aspects-poc-control.daemon[409009]: wlan0: 5 packets ↑, 4 packets ↓
systemd[1]: snap.aspects-poc-control.daemon.service: Deactivated successfully.
systemd[1]: Finished snap.aspects-poc-control.daemon.service - Service for snap application aspects-poc-control.daemon.
systemd[1]: Starting snap.aspects-poc-control.daemon.service - Service for snap application aspects-poc-control.daemon...
aspects-poc-control.daemon[410059]: eth0: 7 packets ↑, 4 packets ↓
aspects-poc-control.daemon[410059]: wlan0: 2 packets ↑, 4 packets ↓
systemd[1]: snap.aspects-poc-control.daemon.service: Deactivated successfully.
systemd[1]: Finished snap.aspects-poc-control.daemon.service - Service for snap application aspects-poc-control.daemon.
คุณสามารถยืนยันการอัปเดตเหล่านี้ได้โดยการเรียกใช้:
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/observe-interfaces packets-received
Key Value
packets-received.eth0 127
packets-received.wlan0 148
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/observe-interfaces packets-sent
Key Value
packets-sent.eth0 130
packets-sent.wlan0 131
vpn
Snap มีบริการที่ทำงานทุกนาทีเพื่อจำลองการเปลี่ยนแปลงในอุโมงค์ VPN ขณะนี้จำกัดอยู่เพียงการทิ้งและเพิ่มโหนดเพียร์ที่ปลายด้านตรงข้ามของอุโมงค์ แต่ละการกระทำเหล่านี้มีโอกาส 10% ที่จะเกิดขึ้น
คุณสามารถยืนยันสิ่งนี้ได้โดยตรวจสอบ daemon ของ snap:
$ snap logs aspects-poc-vpn
systemd[1]: snap.aspects-poc-vpn.daemon.service: Deactivated successfully.
systemd[1]: Finished snap.aspects-poc-vpn.daemon.service - Service for snap application aspects-poc-vpn.daemon.
systemd[1]: Starting snap.aspects-poc-vpn.daemon.service - Service for snap application aspects-poc-vpn.daemon...
aspects-poc-vpn.daemon[412358]: No changes to tunnel.
systemd[1]: snap.aspects-poc-vpn.daemon.service: Deactivated successfully.
systemd[1]: Finished snap.aspects-poc-vpn.daemon.service - Service for snap application aspects-poc-vpn.daemon.
systemd[1]: Starting snap.aspects-poc-vpn.daemon.service - Service for snap application aspects-poc-vpn.daemon...
aspects-poc-vpn.daemon[413769]: No changes to tunnel.
systemd[1]: snap.aspects-poc-vpn.daemon.service: Deactivated successfully.
systemd[1]: Finished snap.aspects-poc-vpn.daemon.service - Service for snap application aspects-poc-vpn.daemon.
คุณยังสามารถตรวจสอบมุมมอง confdb ของ observe-tunnel
เพื่อดูเพียร์ปัจจุบัน:
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/observe-tunnel peers
[
"192.168.21.3",
"192.168.151.225",
"192.168.21.7"
]
สแนป reporting
มีบริการที่ทำงานทุกนาทีเพื่อรวบรวมตัวชี้วัดในสถานะปัจจุบันของเครือข่าย เมทริกที่รวบรวมจะถูกควบคุมโดยมุมมอง confdb control-metrics
:
$ snap get f22PSauKuNkwQTM9Wz67ZCjNACuSjjhN/network/control-telemetry -d
{
"monitor-packets-received": false,
"monitor-packets-sent": true,
"monitor-peers": true,
"sample-rate": 2
}
คุณสามารถตรวจสอบสถานะของเครือข่ายได้โดยการเรียกใช้:
$ snap logs aspects-poc-reporting -n 25
aspects-poc-reporting.daemon[389998]: INFO:root:The network stats are:
aspects-poc-reporting.daemon[389998]: INFO:root: {'device-id': 'ca155b32-2472-4650-afb0-c6f967328afe',
aspects-poc-reporting.daemon[389998]: 'packets-sent': {'eth0': 137, 'wlan0': 141},
aspects-poc-reporting.daemon[389998]: 'tunnel-peers': ['192.168.21.3', '192.168.151.225', '192.168.21.7']}
aspects-poc-reporting.daemon[389998]: INFO:root:Next run in 30.00 seconds
aspects-poc-reporting.daemon[389998]: INFO:root:The network stats are:
aspects-poc-reporting.daemon[389998]: INFO:root: {'device-id': 'ca155b32-2472-4650-afb0-c6f967328afe',
aspects-poc-reporting.daemon[389998]: 'packets-sent': {'eth0': 137, 'wlan0': 141},
aspects-poc-reporting.daemon[389998]: 'tunnel-peers': ['192.168.21.3', '192.168.151.225', '192.168.21.7']}
aspects-poc-reporting.daemon[389998]: INFO:root:Next run in 30.00 seconds
aspects-poc-reporting.daemon[389998]: INFO:root:The network stats are:
aspects-poc-reporting.daemon[389998]: INFO:root: {'device-id': 'ca155b32-2472-4650-afb0-c6f967328afe',
aspects-poc-reporting.daemon[389998]: 'packets-sent': {'eth0': 138, 'wlan0': 150},
aspects-poc-reporting.daemon[389998]: 'tunnel-peers': ['192.168.21.3', '192.168.151.225', '192.168.21.7']}
aspects-poc-reporting.daemon[389998]: INFO:root:Next run in 30.00 seconds
aspects-poc-reporting.daemon[389998]: INFO:root:The network stats are:
aspects-poc-reporting.daemon[389998]: INFO:root: {'device-id': 'ca155b32-2472-4650-afb0-c6f967328afe',
aspects-poc-reporting.daemon[389998]: 'packets-sent': {'eth0': 138, 'wlan0': 150},
aspects-poc-reporting.daemon[389998]: 'tunnel-peers': ['192.168.21.3', '192.168.151.225', '192.168.21.7']}
aspects-poc-reporting.daemon[389998]: INFO:root:Next run in 30.00 seconds
aspects-poc-reporting.daemon[389998]: INFO:root:The network stats are:
aspects-poc-reporting.daemon[389998]: INFO:root: {'device-id': 'ca155b32-2472-4650-afb0-c6f967328afe',
aspects-poc-reporting.daemon[389998]: 'packets-sent': {'eth0': 145, 'wlan0': 154},
aspects-poc-reporting.daemon[389998]: 'tunnel-peers': ['192.168.21.3', '192.168.151.225', '192.168.21.7']}
aspects-poc-reporting.daemon[389998]: INFO:root:Next run in 30.00 seconds
ขณะที่เซิร์ฟเวอร์กำลังทำงาน (ติดตั้งสแน็ปที่สอดคล้องกันแล้ว) มีเอกสารประกอบอยู่ที่ http://127.0.0.1:8000/docs
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง PoC โดยใช้สคริปต์การติดตั้งด้านบน เพื่อให้แน่ใจว่าการยืนยันทั้งหมดได้รับการยอมรับและเปิดใช้งานฟีเจอร์ทดลอง เช่น confdbs แล้ว
เรียกใช้ make
หรือ make all
เพื่อสร้าง snaps ทั้งหมดพร้อมกัน หรือรันคำสั่งต่อไปนี้เพื่อสร้างทีละรายการ:
$ make control
Building control snap...
Generated snap metadata
Created snap package aspects-poc-control_0.2_amd64.snap
$ make reporting
Building reporting snap...
Generated snap metadata
Created snap package aspects-poc-reporting_0.2_amd64.snap
$ make server
Building server snap...
Generated snap metadata
Created snap package aspects-poc-server_0.2_amd64.snap
$ make vpn
Building vpn snap...
Generated snap metadata
Created snap package aspects-poc-vpn_0.2_amd64.snap
หากต้องการใช้เป้าหมาย make ด้านล่าง ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง yq แล้ว คุณสามารถติดตั้งได้โดยใช้ Homebrew หรือทำได้ง่ายๆ:
$ brew install yq
$ snap install yq
เรียกใช้ make install-all
เพื่อติดตั้ง snaps ทั้งหมดในครั้งเดียวหรือรันคำสั่งต่อไปนี้เพื่อติดตั้งแยกกัน:
$ make install-server
Installing server snap...
aspects-poc-server 0.2 installed
$ make install-control
Installing control snap...
aspects-poc-control 0.2 installed
$ make install-vpn
Installing vpn snap...
aspects-poc-vpn 0.2 installed
$ make install-reporting
Installing reporting snap...
aspects-poc-reporting 0.2 installed