وتلتزم جوجل لدفع الأسهم العنصري للمجتمعات الأسود. أنظر كيف.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

الاستخدام سعيد

استخدام -h العلم مع أي happy-* الأوامر لعرض المساعدة وقائمة من الخيارات لهذا الأمر.

ملفات الدولة

مخازن سعيدة وبعناية تحتفظ الدولة طوبولوجيا في ملف JSON مع سجل واحد. استخدام هذا الملف دولة، يمكن تشغيل سعيد الأوامر المناسبة لإنشاء أو إزالة الهيكل.

يقع الملف في الحالة الافتراضية ~/.happy_state.json . اسم الدولة الافتراضي هو happy ، كما رأينا في happy-state الإخراج:

 happy-state

State Name:  happy 

الدول موازية

الدعم سعيدة متعددة الدول تتعايش متواز. تمليه الحالة الراهنة التي HAPPY_STATE_ID متغير البيئة. إذا HAPPY_STATE_ID غير موجود في البيئة، وقيمة الحالة الافتراضية من happy ويستخدم.

HAPPY_STATE_ID لم يتم إنشاء أثناء التثبيت سعيد. إنشاء واحد مع قيمة أخرى غير state على التحول فورا إلى الدولة السعيدة آخر.

 export HAPPY_STATE_ID="sunny"

الآن فحص happy-state النتائج في حالة مختلفة:

 happy-state

State Name:  sunny 

ويقوم كل دولة في الخاص ~/.${HAPPY_STATE_ID}_state.json الملف. للتبديل بين الدول، تشغيل export HAPPY_STATE_ID=" <state-name> " الأمر مرة أخرى.

إلغاء التثبيت مع الدول موازية

إذا كنت تستخدم الدول سعيد الموازية وتريد إلغاء سعيد، تأكد من تشغيل happy-state-delete مع كل حالة نشطة. وهذا يضمن جميع النطاقات الشبكة التي أنشأتها سعيد يتم إزالتها من النظام الخاص بك دون التأثير على تكوين الشبكة المضيفة لينكس.

على سبيل المثال، مع اثنين من دول happy و sunny :

 export HAPPY_STATE_ID="sunny"
happy-state-delete
export HAPPY_STATE_ID="happy"
happy-state-delete 

يدويا إزالة كل ملف دولة موازية حسب الحاجة:

 rm -f ~/.sunny_state.json
rm -f ~/.sunny_state.json.lock
rm -f ~/.happy_state.json
rm -f ~/.happy_state.json.lock 

السجلات

سعيد يرسل السجلات إلى syslog بشكل افتراضي. يتم إرسال نسخة احتياطية سجل الثاني ل /tmp/${HAPPY_STATE_ID}_debug_log.txt .

لعرض سجلات السعيدة، تشغيل happy-state -l في إطار المحطة الطرفية منفصل. عند إدخال الأوامر سعيد، تظهر سجلات قذيفة أوامر القضايا سعيد في الخلفية. هذا هو وسيلة جيدة لفهم كيفية عمل سعيد، إذا كنت ترغب في النطاقات شبكة لينكس.

على سبيل المثال، happy-node-add node00 يخلق عقدة سعيد. إخراج سجل لهذا الأمر:

DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist
DEBUG [Driver:writeState():365] Happy: writing Happy state to file
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

كل Driver:CallCmd() خطوط الأوامر قذيفة يدعو سعيد. النظر في كل سطر في السجل:

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 does not exist

# Write the link between node00 and happy000 in ~/.happy_state.json
DEBUG [Driver:writeState():365] Happy: writing Happy state to file

# Create the network namespace for the node
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns add happy000

# Check to see if the target namespace (happy000) exists
DEBUG [HappyHost:_namespaceExists():56] Happy: namespace happy000 exists

# Bring up the loopback interface within the happy000 namespace
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ifconfig lo up

طبولوجيا عينة

وشملت عينة طبولوجيا في كل من مستودعات سعيد وOpenWeave للاختبار. أيضا استخدامها لمعرفة الأوامر لبناء طبولوجيا معقدة.

طبولوجيات في شكل JSON وسيناريو شل.

JSON

يتم تحميل ملفات طوبولوجيا JSON باستخدام happy-state-load أو weave-state-load الأوامر. إذا تضمن طوبولوجيا الحياكة، يجب عليك استخدام weave-state-load تحميل طوبولوجيا، وإلا فإن الأوامر نسج محددة يتم تخطي.

على سبيل المثال، طوبولوجيا دون نسج:

happy-state-load thread_wifi_ap_internet.json

طوبولوجيا مع نسج:

weave-state-load three_nodes_on_thread_weave.json

لحفظ طوبولوجيا الحالي كملف منفصل JSON لاستخدامها لاحقا (على سبيل المثال، اختبار حالة النصي )، واستخدام happy-shell -s :

happy-shell -s my_topology.json

هذا يحفظ الملف دولة طوبولوجيا في $HOME الدليل.

مخطوطات قذيفة

قذيفة ملفات طوبولوجيا النصي تحتوي على مجموعة من سعيد والأوامر نسج لإنشاء طبولوجيا في ملفات JSON المقابلة. هذه البرامج النصية افتراضيا لا تملك أذونات للتنفيذ. ويمكن تشغيل بطريقتين:

باستخدام bash الأوامر:

bash thread_wifi_ap_internet.sh

من خلال تطبيق الأذونات القابلة للتنفيذ:

chmod +x thread_wifi_ap_internet.sh
./thread_wifi_ap_internet.sh

ترتيب

سعيد ثلاثة ملفات التكوين:

ملف الضبط وصف
~/.happy_conf.json المتغيرات التكوين لأغراض شخصية أو المكونات في الاستخدام. تعيين هذه القيم باستخدام happy-configuration الأوامر.
<path-to-happy> /happy/conf/main_config.json المتغيرات التكوين سعيد الابتدائية.
<path-to-happy> /happy/conf/log_config.json تكوين السجل.

إضافة متغيرات التكوين

ننصحك باستخدام happy-configuration الأوامر لتعيين أي متغيرات الشخصية أو المكونات في ما وراء التخلف الذي نشر الخاص بك محددة من سعيد الاحتياجات.

على سبيل المثال، للسماح سعيد معرفة مكان العثور على نسج test-apps الدليل للمخطوطات الاختبار، تعيين weave_path متغير:

happy-configuration weave_path <path-to-openweave-core> /build/x86_64-unknown-linux-gnu/src/test-apps

مخازن سعيدة التكوين المتغيرات في ~/.happy_conf.json .

العمليات في العقد

تقدم سعيد الأوامر لبدء وتوقف العمليات في العقد المحاكاة.

لبدء عملية:

happy-process-start <node-name> <custom-process-name> <command>

على سبيل المثال، لتشغيل بشكل مستمر بينغ في عقدة اسمه ThreadNode:

happy-process-start ThreadNode ContinuousPing ping 8.8.8.8

في المثال أعلاه، ContinuousPing هو اسم المعرفة من قبل المستخدم للعملية التي سعيد يستخدم لإدارة العملية. استخدام happy-process-wait إلى تعليق تنفيذ العملية و happy-process-stop لقتل العملية.

عملية الإخراج في /tmp . على سبيل المثال، بعد بدء عملية ContinuousPing، والتحقق من /tmp الدليل:

ls /tmp/happy*
/tmp/happy_018691_1524087014.192197_ContinuousPing.out

هذا .out يحتوي الملف الناتج عن عملية ContinuousPing.

استخدام sudo

سعيد يغير تكوين الشبكة التي يتم التحكم من قبل نواة لينكس. منذ الوحيد root يمكن تغيير تكوين النواة، سعيد يطالبك لدخول sudo كلمة المرور أثناء العملية.

سعيد يستخدم $SUDO متغير بيئة نظام لدعوة sudo . إذا $SUDO لم يتم تعريف، سعيد يجعل العادية sudo المكالمة.

بيثون البرمجة

بعد التثبيت، وحزم سعيد بيثون يمكن استيرادها إلى بيئة بيثون باستخدام التالية import البيان:

import happy

وحدات القيادة الفردية وجدت في /happy يتم استيرادها على النحو التالي:

import happy.HappyNodeAdd

لاسترداد خيارات الوحدة، استدعاء option() وظيفة. على سبيل المثال، لاسترداد HappyNodeAdd خيارات حدة:

module options
import happy.HappyNodeAdd
options = happy.HappyNodeAdd.option()