Google jest zaangażowana w pogłębianie równości rasowej dla czarnych społecznościach. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Wykorzystanie szczęśliwy

Użyj -h flagę z każdym happy-* polecenia w celu wyświetlenia pomocy i listę opcji dla tego polecenia.

pliki państwowe

Szczęśliwi sklepów i ostrożnie utrzymuje swój stan topologii w pliku JSON z jednego rekordu. Używanie tego pliku państwowej, Szczęśliwy można uruchomić odpowiednie polecenia do tworzenia lub usuwania topologii.

Domyślny plik państwo znajduje się w ~/.happy_state.json . Domyślna nazwa państwa jest happy , jak widać na happy-state wyjścia:

 happy-state

State Name:  happy 

stany równoległe

Szczęśliwi obsługuje wiele stany współistniejące równolegle. Obecny stan jest podyktowane HAPPY_STATE_ID zmiennej środowiskowej. Jeśli HAPPY_STATE_ID nie istnieje w środowisku, domyślna wartość stanu happy jest używany.

HAPPY_STATE_ID nie jest tworzony podczas instalacji szczęśliwy. Stworzyć jedną z wartości innych niż state , aby natychmiast przejść do kolejnego szczęśliwego stanu.

 export HAPPY_STATE_ID="sunny"

Teraz sprawdzanie happy-state wyników w innym państwie:

 happy-state

State Name:  sunny 

Każdy stan jest utrzymywany w swoim ~/.${HAPPY_STATE_ID}_state.json pliku. Aby przełączać się między państwami, uruchom export HAPPY_STATE_ID=" <state-name> " polecenie ponownie.

Odinstaluj z państw równoległych

Jeśli używasz równoległe Szczęśliwi stany i chcesz odinstalować szczęśliwy, upewnij się, aby uruchomić happy-state-delete z każdym stanie aktywnym. Zapewnia to wszystkie przestrzenie nazw sieciowych stworzonych przez Happy są usuwane z systemu bez wpływu na konfigurację sieci hosta Linux.

Na przykład, z dwoma stanami happy i sunny :

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

Ręcznie usunąć każdy plik równoległego państwa, ile potrzeba:

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

dzienniki

Szczęśliwy wysyła dzienniki do syslog domyślnie. Druga kopia zapasowa dziennika jest wysyłany do /tmp/${HAPPY_STATE_ID}_debug_log.txt .

Aby zobaczyć Szczęśliwi dzienniki, uruchom happy-state -l w osobnym oknie terminala. Po wpisaniu Szczęśliwi poleceń, dzienniki pokazują, że powłoka poleceń Szczęśliwi problemy w tle. Jest to dobry sposób, aby zrozumieć, jak działa szczęśliwy, jeśli jesteś zainteresowany w przestrzeni nazw sieciowych Linux.

Na przykład, happy-node-add node00 tworzy węzeł szczęśliwy. Wyjście dziennika dla tego polecenia jest następująca:

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

Wszyscy Driver:CallCmd() linie są polecenia powłoki, które nazywa szczęśliwy. Rozważmy każdy wiersz w dzienniku:

# 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

Przykładowe topologie

Przykładowe topologie są zawarte w obu szczęśliwy i OpenWeave repozytoriów do testowania. Również używać ich do nauki komend do konstruowania złożonych topologii.

Topologie są w formacie JSON i Shell Script.

JSON

Pliki topologii JSON są ładowane za pomocą happy-state-load lub weave-state-load poleceń. Jeśli topologia zawiera splot, należy użyć weave-state-load do załadowania topologię, w przeciwnym razie Weave specyficzne polecenia są pomijane.

Na przykład, topologia bez Weave:

happy-state-load thread_wifi_ap_internet.json

Topologia z Weave:

weave-state-load three_nodes_on_thread_weave.json

Aby zapisać bieżącą topologię jako oddzielny plik JSON do późniejszego wykorzystania (na przykład przypadek skrypt testowy ), użyj happy-shell -s :

happy-shell -s my_topology.json

Spowoduje to zapisanie pliku stanu topologii w $HOME katalogu.

skrypty powłoki

Shell plików topologii skrypt zawiera zestaw szczęśliwych i poleceń Weave do tworzenia topologii w odpowiednich plików JSON. Te skrypty domyślnie nie mają uprawnień wykonywalnych. Mogą być prowadzone na dwa sposoby:

Za pomocą bash polecenie:

bash thread_wifi_ap_internet.sh

Dzięki zastosowaniu uprawnienia wykonywalne:

chmod +x thread_wifi_ap_internet.sh
./thread_wifi_ap_internet.sh

Konfiguracja

Szczęśliwy trzy pliki konfiguracyjne:

Plik konfiguracyjny Opis
~/.happy_conf.json Zmienne konfiguracyjne dla użytku osobistego lub plug-in. Ustawić te wartości za pomocą happy-configuration polecenia.
<path-to-happy> /happy/conf/main_config.json Podstawowe Szczęśliwe zmienne konfiguracyjne.
<path-to-happy> /happy/conf/log_config.json Konfiguracja dziennika.

Dodaj zmienne konfiguracyjne

Zalecamy korzystanie z happy-configuration komendy do ustawiania zmiennych osobistych lub wtykowych poza domyślnych że wdrożenie specyficznych szczęśliwych potrzebuje.

Na przykład, aby pozwolić okazji wiedzieć, gdzie znaleźć splot test-apps katalogu skryptów testowych, ustaw weave_path zmienną:

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

Szczęśliwi sklepy zmiennych konfiguracyjnych w ~/.happy_conf.json .

Procesy w węzłach

Szczęśliwy udostępnia polecenia do uruchamiania i zatrzymywania procesów wewnątrz symulowanych węzłów.

Aby rozpocząć proces:

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

Na przykład, aby uruchomić ciągły ping w węźle o nazwie ThreadNode:

happy-process-start ThreadNode ContinuousPing ping 8.8.8.8

W powyższym przykładzie, ContinuousPing jest nazwa zdefiniowana przez użytkownika dla procesu, który korzysta z okazji, aby zarządzać procesem. Użyj happy-process-wait zawiesić wykonanie procesu i happy-process-stop zabić proces.

Wyjście proces jest /tmp . Na przykład, po rozpoczęciu procesu ContinuousPing sprawdzić /tmp katalogu:

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

Ten .out plik zawiera wyjście dla procesu ContinuousPing.

Korzystanie z sudo

Szczęśliwy zmienia konfigurację sieciową, która jest kontrolowana przez jądro Linux. Ponieważ tylko root może zmienić konfigurację jądra, Szczęśliwego monit, aby wprowadzić sudo hasło podczas pracy.

Szczęśliwy używa $SUDO systemowej zmiennej środowiskowej zadzwonić sudo . Jeśli $SUDO nie jest zdefiniowana, szczęśliwy sprawia normalne sudo połączenia.

skryptowym Python

Po instalacji paczki Szczęśliwy Python mogą być importowane do środowiska Python stosując następujący import oświadczenie:

import happy

Poszczególne moduły dowodzenia znajdujące się w /happy importowane są w następujący sposób:

import happy.HappyNodeAdd

Aby pobrać moduł opcji, wywołać option() funkcji. Na przykład, aby odzyskać HappyNodeAdd opcje modułu:

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