دليل على مفهوم مشاركة التكوين السريع عبر اللقطات باستخدام confdbs التكوين الخاص بـ snapd.
للحصول على عرض توضيحي مباشر، يرجى الاطلاع على هذا المستودع بدلاً من ذلك.
تحذير
كانت Confdbs تسمى سابقًا السجلات والجوانب قبل ذلك. لم يتعرف Snapd وSnapcraft والمتجر على عملية إعادة التسمية هذه بعد. في الوقت الحالي، استبدل كل ذكر لـ "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
). يمكنك تأكيد ذلك عن طريق التحقق من البرنامج الخفي للصورة:
$ 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٪ لحدوثها.
يمكنك تأكيد ذلك عن طريق التحقق من البرنامج الخفي للصورة:
$ 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
لإنشاء جميع اللقطات مرة واحدة أو قم بتشغيل الأوامر التالية لإنشاءها بشكل فردي:
$ 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
لتثبيت جميع اللقطات مرة واحدة أو قم بتشغيل الأوامر التالية لتثبيتها بشكل فردي:
$ 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