Jak poprawnie usunąć wszystkie zasoby projektu za pomocą klientów wiersza poleceń OpenStack na NSIS
System rozliczeniowy hostingu NSIS będzie naliczał opłaty za wszystkie zasoby obecne w systemie, niezależnie od tego, czy z nich korzystasz, czy nie. Warto usunąć zasoby, których nie zamierzasz już używać. Usunięcie projektu przed usunięciem jego zasobów powoduje ich osierocenie. Nie będziesz mógł samodzielnie usunąć osieroconych zasobów, ale nadal będziesz za nie płacić.
Ostrzeżenie
Aby poprawnie usunąć zasoby i projekt, najpierw usuń zasoby, a dopiero potem sam projekt.
W tym artykule opisano sposób usuwania zasobów za pośrednictwem klientów wiersza poleceń. Jeśli chcesz je usunąć za pomocą poleceń Horizon, zobacz artykuł Jak poprawnie usunąć wszystkie zasoby projektu za pomocą Horizon Dashboard w NSIS?.
Najpierw wybierz odpowiedni projekt
Aby rozpocząć, wejdź do środowiska chmury jak zwykle, korzystając z linku https://horizon.cloudferro.com.
Zwróć uwagę na nazwę projektu w lewym górnym rogu i w razie potrzeby przełącz się na właściwy projekt. Może to wyglądać w następujący sposób:
W razie potrzeby przygotuj środowisko wiersza poleceń
Być może masz już uruchomiony wiersz poleceń, ale jeśli nie, przygotuj go zgodnie z jednym z poniższych artykułów:
Windows
Linux
Uzyskaj dostęp do chmury
Aby uzyskać dostęp do chmury, zobacz artykuł
Lista wszystkich zasobów w projekcie
Projekt będzie najczęściej zawierał:
serwery
volume
adresy Floating IP
routery.
Wyświetl te zasoby w projekcie, wprowadzając poniższe polecenia:
echo Servers: && openstack server list && echo Volumes: && openstack volume list && echo Volume Snapshots: && openstack volume snapshot list && echo Floating ip: && openstack floating ip list && echo Routers:: && openstack router list
Wynik jest następujący:
Widzimy, że istnieją dwa serwery, sen4cap_access i pipenv-test. Pierwszy z nich ma dołączony volume Sen4CAP Volume, więc pierwszym krokiem jest usunięcie tego (i wszystkich innych) volume.
Odłączanie volume od serwerów
Najpierw odłącz volume od serwerów. Ogólnym poleceniem będzie:
openstack server remove volume <server_id> <volume_id>
a w naszym przypadku:
openstack server remove volume 5a14e266-fcf2-46ac-a177-ed13a6c0fc2b e16ae728-14db-43ba-83d1-aca90c28ce6f
Upewnij się, że volume nie ma żadnych snapshot volume - wyświetl je za pomocą polecenia:
openstack volume snapshot list
W przeciwnym razie wpisz polecenie i usuń również snaphsot:
openstack volume delete snapshot <volume_snapshot_id>
Usunięcie volume
Teraz można usunąć volume.
openstack volume delete <volume_id>
Pusty wiersz po wykonaniu polecenia list oznacza, że nie ma już żadnych volume:
Następnie można usunąć serwer.
openstack server delete <server_id>
Usunięcie Floating IP
Następnie usuń Floating IP.
openstack floating ip delete <floating_ip_id>
Usunięcie routera
Na koniec można usunąć router. Najpierw należy wyświetlić podstawowe informacje za pomocą polecenia:
openstack router show 6f1fbe79-342e-46d8-ae44-45205892b2b2 -f json
Ze względu na parametr -f json, dane wyjściowe będą w formacie JSON dla łatwiejszej orientacji:
{
"admin_state_up": true,
"availability_zone_hints": null,
"availability_zones": null,
"created_at": "2022-04-27T07:05:57Z",
"description": "",
"enable_ndp_proxy": null,
"external_gateway_info": {
"network_id": "31d7e67a-b30a-43f4-8b06-1667c70ba90d",
"enable_snat": true,
"external_fixed_ips": [
{
"subnet_id": "bfb8ab78-0208-4e0c-8b66-9421b70ee798",
"ip_address": "185.52.195.234"
}
]
},
"flavor_id": null,
"id": "6f1fbe79-342e-46d8-ae44-45205892b2b2",
"interfaces_info": [
{
"port_id": "3dcc0a47-2192-4f22-8b1a-3f567d989a5b",
"ip_address": "10.0.0.1",
"subnet_id": "5395e250-c0ae-45a4-8b0f-870bd6e53bec"
}
],
"name": "cloud_00341_2",
"project_id": "ff558ffe8f1341a5946a9a23032a6e59",
"revision_number": 3,
"routes": [],
"status": "ACTIVE",
"tags": [],
"tenant_id": "ff558ffe8f1341a5946a9a23032a6e59",
"updated_at": "2022-04-27T07:06:07Z"
}
Teraz usuń port, podsieć i wreszcie sam router:
openstack router remove port <router_id> <port_id>
openstack router remove subnet <router_id> <subnet_id>
openstack router delete <router_id>
Często nie będzie możliwe usunięcie zasobów, jeśli są współdzielone przez kilka sieci lub podsieci. W szczególności port może należeć do kilku sieci jednocześnie, uniemożliwiając usunięcie wszystkich zasobów w projekcie. W tym przykładzie router nie może zostać usunięty, ponieważ „jest wymagany przez jeden lub więcej adresów Floating IP”:
Obejście tego problemu będzie wymagało trochę pracy detektywistycznej; dopiero po zerwaniu wszystkich połączeń OpenStack pozwoli usunąć zasób. Jednak, jak wspomniano na początku tego artykułu, polecenie usunięcia projektu będzie działać niezależnie i może pozostawić system z zasobami bez elementów nadrzędnych i nie będzie można ich usunąć samodzielnie.
Jak usunąć osierocone zasoby
Jeśli potrzebujesz pomocy w usunięciu osieroconych zasobów:
użyj poleceń Project –> API Access –> User Credentials Details oraz
skopiuj nazwę i identyfikator użytkownika, nazwę projektu oraz identyfikator projektu, a następnie
wyślij zgłoszenie do działu pomocy technicznej: Helpdesk i wsparcie.
Wyświetlanie list i usuwanie projektów
Polecenie wyświetlające listę projektów to:
openstack project list
Aby wyświetlić listę dla konkretnego projektu, polecenie jest następujące:
openstack project show cloud_00341_2
Wynik wygląda tak:
Po usunięciu wszystkich zasobów można spróbować usunąć projekt za pomocą polecenia
openstack project delete cloud_00341_2
Jeśli to się nie powiedzie, albo nie masz odpowiednich uprawnień, albo nadal istnieje kilka części projektu, które nie zostały jeszcze usunięte. Jeśli w domenie znajduje się tylko jeden projekt, również nie będzie można go usunąć: