Skip to main content
  • »
  • NETWORKING »
  • Jak poprawnie usunąć wszystkie zasoby projektu za pomocą klientów wiersza poleceń OpenStack na NSIS

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.

../_images/login_nsis_pl1.png

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:

../_images/switch_to_project_nsis_pl.png

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:

../_images/kra_list_all.png

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:

../_images/delete_volume.png

Następnie można usunąć serwer.

openstack server delete <server_id>
../_images/list_of_servers_deleted.png

Usunięcie Floating IP

Następnie usuń Floating IP.

openstack floating ip delete <floating_ip_id>
../_images/delete_floating_ip.png

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”:

../_images/cannot_delete_port.png

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
../_images/project_list.png

Aby wyświetlić listę dla konkretnego projektu, polecenie jest następujące:

openstack project show cloud_00341_2

Wynik wygląda tak:

../_images/show_one_project.png

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ąć:

../_images/cannot_delete_project.png