Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Présentation de Guest Shell

Dépannage

Configuration

Cycle de vie Guestshell

Validation

Redimensionnement des ressources

Scénarios courants

Configuration DHCP

Échec de la mise à jour de Packet Manager DNF

Accès Guestshell perdu après la mise à niveau

Restreindre l'adressage IPv6

Erreurs D'Espace Disque Lors De L'Exécution De Scripts Python

Journalisation Syslog

Tracelog

Informations connexes

Introduction

Ce document décrit comment dépanner les problèmes avec le shell invité sur les commutateurs Cat9K.

Conditions préalables

Exigences

- Compréhension de base du logiciel Cisco IOS® XE

- Systèmes de fichiers Linux

- Commandes Linux

Composants utilisés

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS XE 17.9.1 et versions ultérieures

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

Présentation de Guest Shell

- L'interpréteur de commandes invité offre un environnement d'exécution isolé fonctionnant dans un conteneur Linux (LXC).

- Accès réseau : Les administrateurs peuvent se connecter au réseau via des interfaces réseau Linux, ce qui permet une connectivité et une gestion robustes.

- Accès Bootflash : Un accès direct au stockage bootflash est disponible, ce qui facilite la gestion efficace des fichiers et le fonctionnement du système.

- Accès CLI Cisco IOS : Les administrateurs peuvent interagir directement avec l’interface de ligne de commande Cisco IOS, ce qui permet une intégration et un contrôle transparents.

- Exécution du script : L'environnement prend en charge l'installation et l'exécution de scripts Python, permettant l'automatisation et la personnalisation.

- Support des applications : Les applications Linux 32 bits et 64 bits peuvent être installées et exécutées, offrant ainsi une grande flexibilité et un large éventail de possibilités fonctionnelles.

Dépannage

.

Configuration

1. Activez IOX.

Switch#conf terminal

Switch(config)#iox

Switch(config)#

Patientez 1 à 5 minutes avant l'initialisation d'IOX. Assurez-vous que la solution IOX est opérationnelle. Vous pouvez vérifier les messages affichés pendant la session CLI ou en consultant le résultat de la commande show.

*Mar 10 15:35:40.206: %UICFGEXP-6-SERVER_NOTIFIED_START: Switch 1 R0/0: psd: Server iox has been notified to start

*Mar 10 15:35:51.186: %IOX-3-PD_PARTITION_CREATE: Switch 1 R0/0: run_ioxn_caf: IOX may take upto 5 mins to be ready. Wait for iox to be ready before installing the apps

*Mar 10 15:37:56.643: %IOX-3-IOX_RESTARTABITLITY: Switch 1 R0/0: run_ioxn_caf: Stack is in N+1 mode, disabling sync for IOx restartability

*Mar 10 15:38:05.835: %IM-6-IOX_ENABLEMENT: Switch 1 R0/0: ioxman: IOX is ready.

Switch#show iox-service

IOx Infrastructure Summary:

---------------------------

IOx service (CAF)              : Running

IOx service (HA)               : Running

IOx service (IOxman)           : Running

IOx service (Sec storage)      : Running

Libvirtd 5.5.0                 : Running

Dockerd v19.03.13-ce           : Running

Sync Status                    : Disabled

2. Configuration du réseau.

Cet exemple utilise l'interface AppGigabitEthernet pour fournir un accès réseau.

!

interface AppGigabitEthernet1/0/1

switchport trunk allowed vlan 50

switchport mode trunk

!

app-hosting appid guestshell

app-vnic AppGigabitEthernet trunk

vlan 50 guest-interface 0

guest-ipaddress 192.168.10.10 netmask 255.255.255.0

name-server0 192.168.10.254

end

!

Remarque : GuestShell utilise une adresse IP statique car elle n'inclut pas le service client DHCP par défaut. Vous pouvez installer le service client DHCP pour obtenir une adresse IP de manière dynamique.

Cet exemple utilise l'interface de gestion (Gi0/0) pour fournir un accès réseau. En mode de gestion, guestshell utilise le port de gestion pour la mise en réseau. L'adresse IP du port de gestion configuré par Cisco IOS agit comme passerelle.

!

app-hosting appid guestshell

app-vnic management guest-interface 0

name-server0 8.8.8.8

!

Remarque : Lorsque vous utilisez l'interface Management, la configuration par défaut pour l'interface eth0 de Guestshell est codée en dur à l'adresse IP 192.168.30.2.

Vous pouvez configurer l'interface du groupe de ports virtuels :

- Configuration du groupe de ports virtuels : Créez un groupe de ports virtuels avec une adresse IP statique.

- Connectivité Internet : Assurez-vous que l'interface du port avant est connectée à Internet pour permettre l'accès externe.

- Configuration NAT : Configurez la fonction NAT entre le groupe de ports virtuels et le port avant pour faciliter la traduction des adresses réseau.

- Attribution IP GuestShell : Attribuez une adresse IP à GuestShell dans le même sous-réseau que l'interface du groupe de ports virtuels.

!

interface VirtualPortGroup0

ip address 192.168.35.1 255.255.255.0

ip nat inside

!

interface GigabitEthernet1/0/3

no switchport

ip address 192.168.100.10 255.255.255.0

ip nat outside

!

ip route 0.0.0.0 0.0.0.0 192.168.100.254

ip route vrf Mgmt-vrf 0.0.0.0 0.0.0.0 192.168.10.254

ip nat inside source static tcp 192.168.35.2 7023 192.168.100.10 7023 extendable

!

!

ip access-list standard NAT_ACL

10 permit 192.168.0.0 0.0.255.255

!

app-hosting appid guestshell

app-vnic gateway1 virtualportgroup 0 guest-interface 0

guest-ipaddress 192.168.35.2 netmask 255.255.255.0

app-default-gateway 192.168.35.1 guest-interface 0

name-server0 8.8.8.8

end

3. Activez Guestshell.

Switch#guestshell enable

Interface will be selected if configured in app-hosting

Please wait for completion

guestshell installed successfully

Current state is: DEPLOYED

guestshell activated successfully

Current state is: ACTIVATED

guestshell started successfully

Current state is: RUNNING

Guestshell enabled successfully

Remarque : La commande guestshell enable est la seule façon d'installer guestshell. L'activation/la connexion/la désactivation de l'interface de ligne de commande d'hébergement d'applications peut être utilisée pour contrôler Guestshell. Il est recommandé d'utiliser l'interface de ligne de commande guestshell exec à la place.

Cycle de vie Guestshell

Désactivation de Guestshell : Désactiver Guestshell supprime l'accès à Guestshell et tue les sessions en cours. Les fichiers/données sont conservés, vous pouvez utiliser guestshell enable pour restaurer l'accès.

Switch#guestshell disable

Guestshell disabled successfully

Guestshell destroy : Cette opération supprime le système de fichiers du shell invité de manière irréversible. Tous les fichiers/données/scripts/settinguestshell/ packages et modules installés.

Switch#guestshell destroy

Guestshell destroyed successfully

Remarque : lorsque vous exécutez cette commande, toutes les données sont irréversiblement perdues.

Exécution de Guestshell : Guestshell exécute la commande guestshell run bash pour créer un shell dans Guest Shell, ce qui vous permet d'utiliser n'importe quel binaire Linux sous /bin et /sbin.

Switch#guestshell run bash

[guestshell@guestshell ~]$ ping 192.168.10.1

PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.

64 bytes from 192.168.10.1: icmp_seq=2 ttl=254 time=0.517 ms

64 bytes from 192.168.10.1: icmp_seq=3 ttl=254 time=0.552 ms

64 bytes from 192.168.10.1: icmp_seq=4 ttl=254 time=0.447 ms

64 bytes from 192.168.10.1: icmp_seq=5 ttl=254 time=0.549 ms

Guestshell run python : Utilisez cette commande pour démarrer l'interpréteur python interactif.

Switch#guestshell run python3

Python 3.6.8 (default, Dec 22 2020, 19:04:08)

[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

Validation

Vous pouvez utiliser ces commandes pour valider Guestshell :

Switch#show app-hosting detail appid guestshell

App id                 : guestshell

Owner                  : iox

State                  : RUNNING

Application

Type                 : lxc

Name                 : GuestShell

Version              : 3.3.0

Description          : Cisco Systems Guest Shell XE for x86_64

Author               : Cisco Systems

Path                 : /guestshell/:guestshell.tar

URL Path             :

Multicast            : yes

Activated profile name : custom

Resource reservation

Memory               : 256 MB

Disk                 : 1 MB

CPU                  : 800 units

CPU-percent          : 11 %

VCPU                 : 1

Platform resource profiles

Profile Name                  CPU(unit)  Memory(MB)  Disk(MB)

--------------------------------------------------------------

Attached devices

Type              Name               Alias

---------------------------------------------

serial/shell     iox_console_shell   serial0

serial/aux       iox_console_aux     serial1

serial/syslog    iox_syslog          serial2

serial/trace     iox_trace           serial3

Network interfaces

---------------------------------------

eth0:

MAC address         : 52:54:dd:5b:c4:b8

IPv4 address        : 192.168.30.2

IPv6 address        : ::

Network name        : mgmt-bridge200

Port forwarding

Table-entry  Service  Source-port  Destination-port

---------------------------------------------------

Switch#show app-hosting list

App id                                   State

---------------------------------------------------------

guestshell                               RUNNING

Switch#guestshell run sudo ifconfig

eth0: flaguestshell=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255

inet6 fe80::5054:ddff:fece:a7c9  prefixlen 64  scopeid 0x20

ether 52:54:dd:ce:a7:c9  txqueuelen 1000  (Ethernet)

RX packets 3  bytes 266 (266.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 9  bytes 726 (726.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flaguestshell=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10

loop  txqueuelen 1000  (Local Loopback)

RX packets 338  bytes 74910 (73.1 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 338  bytes 74910 (73.1 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Redimensionnement des ressources

!

app-hosting appid guestshell

app-vnic management guest-interface 0

app-resource profile custom

cpu 1000

memory 512

persist-disk 200

!

Vous devez désactiver puis activer le shell invité pour que les modifications prennent effet.

Switch#guestshell disable

Guestshell disabled successfully

Switch#guestshell enable

*Mar 11 01:17:46.841: %SYS-5-CONFIG_I: Configured from console by coguestshell enable

Interface will be selected if configured in app-hosting

Please wait for completion

guestshell activated successfully

Current state is: ACTIVATED

guestshell started successfully

Current state is: RUNNING

Guestshell enabled successfully

Switch#show app-hosting detail appid guestshell | sec Resource reservation

Resource reservation

Memory               : 512 MB

Disk                 : 200 MB

CPU                  : 1110 units

CPU-percent          : 15 %

VCPU                 : 1

Remarque : Sur les commutateurs, le redimensionnement des ressources est autorisé jusqu'à la limite maximale par la plate-forme. Reportez-vous à Ressources matérielles de la plate-forme Cisco Catalyst 9000 pour les applications.

Scénarios courants

Configuration DHCP

Problème : Le fichier binaire du client DHCP (DHCLIENT) n'est pas présent.

Solution

Vous pouvez installer le client DHCP en utilisant l'utilitaire Yum avec la commande sudo yum install dhcp-client. Cependant, veuillez noter que les référentiels pour CentOS Stream 8 ne sont plus disponibles.

1. Vous devez éviter de définir l'adresse IP dans l'hébergement d'applications pour permettre le fonctionnement de DHCP.

!

interface AppGigabitEthernet1/0/1

switchport trunk allowed vlan 50

switchport mode trunk

!

app-hosting appid guestshell

app-vnic AppGigabitEthernet trunk

vlan 50 guest-interface 0

name-server0 8.8.8.8

!

2. Remplacez mirrorlist par baseurl vault dans yum repo.

Switch#guestshell run bash

[guestshell@guestshell ~]$ sudo find /etc/yum.repos.d/ -type f -exec sed -i 's/mirrorlist=/#mirrorlist=/g' {} +

[guestshell@guestshell ~]$ sudo find /etc/yum.repos.d/ -type f -exec sed -i 's/#baseurl=/baseurl=/g' {} +

[guestshell@guestshell ~]$ sudo find /etc/yum.repos.d/ -type f -exec sed -i 's/mirror.centos.org/

/g' {} +

[guestshell@guestshell ~]$ cat /etc/yum.repos.d/CentOS-Stream-RealTime.reporepo

# CentOS-Stream-RealTime.repo

# The mirrorlist system uses the connecting IP address of the client and the

# update status of each mirror to pick current mirrors that are geographically

# close to the client.  You should use this for CentOS updates unless you are

# manually picking other mirrors.

#

# If the mirrorlist does not work for you, you can try the commented out

# baseurl line instead.

[rt]

name=CentOS Stream $releasever - RealTime

#mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=RT&infra=$infra

baseurl=http://

/$contentdir/$stream/RT/$basearch/os/

gpgcheck=1

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

3. Installez les packages.

guestshell@guestshell ~]$ sudo yum install dhcp-client

ast metadata expiration check: 0:50:34 ago on Wed Mar 12 17:44:46 2025.

Dependencies resolved.

================================================================================

Package                Architecture Version                 Repository    Size

================================================================================

Installing:

dhcp-client            x86_64       12:4.3.6-50.el8         baseos       319 k

Installing dependencies:

bind-export-libs       x86_64       32:9.11.36-13.el8       baseos       1.1 M

dhcp-common            noarch       12:4.3.6-50.el8         baseos       208 k

dhcp-libs              x86_64       12:4.3.6-50.el8         baseos       148 k

Transaction Summary

================================================================================

Install  4 Packages

Total download size: 1.8 M

Installed size: 3.9 M

Is this ok [y/N]: y

Downloading Packages:

(1/4): dhcp-client-4.3.6-50.el8.x86_64.rpm      284 kB/s | 319 kB     00:01

(2/4): dhcp-common-4.3.6-50.el8.noarch.rpm      171 kB/s | 208 kB     00:01

(3/4): dhcp-libs-4.3.6-50.el8.x86_64.rpm        572 kB/s | 148 kB     00:00

(4/4): bind-export-libs-9.11.36-13.el8.x86_64.r 577 kB/s | 1.1 MB     00:02

--------------------------------------------------------------------------------

Total                                           908 kB/s | 1.8 MB     00:02

CentOS Stream 8 - BaseOS                        1.6 MB/s | 1.6 kB     00:00

Importing GPG key 0x8483C65D:

Userid     : "CentOS (CentOS Official Signing Key) <CentOS Official Signing Key>"

Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D

From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

Is this ok [y/N]: y

Key imported successfully

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

Preparing        :                                                        1/1

Installing       : dhcp-libs-12:4.3.6-50.el8.x86_64                       1/4

Installing       : dhcp-common-12:4.3.6-50.el8.noarch                     2/4

Installing       : bind-export-libs-32:9.11.36-13.el8.x86_64              3/4

Running scriptlet: bind-export-libs-32:9.11.36-13.el8.x86_64              3/4

Installing       : dhcp-client-12:4.3.6-50.el8.x86_64                     4/4

Running scriptlet: dhcp-client-12:4.3.6-50.el8.x86_64                     4/4

Verifying        : bind-export-libs-32:9.11.36-13.el8.x86_64              1/4

Verifying        : dhcp-client-12:4.3.6-50.el8.x86_64                     2/4

Verifying        : dhcp-common-12:4.3.6-50.el8.noarch                     3/4

Verifying        : dhcp-libs-12:4.3.6-50.el8.x86_64                       4/4

Installed:

bind-export-libs-32:9.11.36-13.el8.x86_64  dhcp-client-12:4.3.6-50.el8.x86_64

dhcp-common-12:4.3.6-50.el8.noarch         dhcp-libs-12:4.3.6-50.el8.x86_64

Complete!

Remarque : (FOR CALO) Il est possible de configurer un proxy pour Yum. Cela permet à Yum de se connecter via un serveur proxy pour les téléchargements de packages :

[guestshell@guestshell ~]$ echo "proxy=http://<IP_address:port>/" | sudo tee -a /etc/yum.conf > /dev/null

4. .Demandez une adresse IP DHCP pour eth0.

[guestshell@guestshell ~]$ sudo dhclient eth0

5. Vérifiez si le client DHCP fonctionne en vérifiant l’attribution de l’adresse IP.

Switch#guestshell run ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.10.2  netmask 255.255.255.0  broadcast 192.168.10.255

inet6 fe80::5054:ddff:fea0:4aef  prefixlen 64  scopeid 0x20

ether 52:54:dd:a0:4a:ef  txqueuelen 1000  (Ethernet)

RX packets 1516  bytes 2009470 (1.9 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 687  bytes 54603 (53.3 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10

loop  txqueuelen 1000  (Local Loopback)

RX packets 773  bytes 90658 (88.5 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 773  bytes 90658 (88.5 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Échec de la mise à jour de Packet Manager DNF

Problème : Impossible de terminer la mise à jour sudo dnf -y sur Guestshell en raison d'une erreur :

[guestshell@guestshell ~]$ sudo dnf upgrade --refresh

Warning: failed loading '/etc/yum.repos.d/CentOS-Base.repo', skipping.

Solution

1. Réinstallez et mettez à niveau les packages RPM.

! Clean packages

[guestshell@guestshell ~]$ sudo dnf clean all

! Reinstall and update the tpm2-tss package:

[guestshell@guestshell ~]$ sudo dnf install tpm2-tss-2.3.2-3.el8

[guestshell@guestshell ~]$ sudo dnf upgrade rpm

2. Installez le paquet git séparément.

[guestshell@guestshell ~]$ sudo dnf install git -y

Accès Guestshell perdu après la mise à niveau

Problème : Après la mise à niveau vers la version 17.08.01 ou ultérieure, le shell invité devient inaccessible, ce qui entraîne l'incapacité d'exécuter des scripts.

Switch#guestshell run bash

Switch#

Solution

Le problème est lié à l'ID de bogue Cisco CSCwi63075 , qui est déclenché lors d'une mise à niveau lorsque FIPS est activé sur le commutateur.

1. Désactivez FIPS.

Switch#configure terminal

Switch(config)#no fips authorization-key

FIPS: Authorization-key erased ONLY from the  Flash.

But the authorization-key is still operational. Use "reload" command for complete removal of key and to enter into non fips-mode.

Make sure to remove fips key from all the members of the stack individually

2. Vous pouvez effectuer une mise à niveau vers l'une des versions qui incluent le correctif, la version 17.12.04 ou toute version ultérieure.

Restreindre l'adressage IPv6

Problème : Le problème concerne les adresses IPv6 non souhaitées qui apparaissent sur les interfaces dans l'environnement Cisco Guestshell. Bien que, pas configuré intentionnellement.

La configuration observée sur le commutateur avec IPV4 est la suivante :

!

app-hosting appid guestshell

app-vnic AppGigabitEthernet trunk

vlan 50 guest-interface 0

guest-ipaddress 192.168.20.10 netmask 255.255.255.0  <-- IPv4 address configured

app-default-gateway 192.168.20.1 guest-interface 0

app-resource profile custom

name-server1 192.168.20.1

!

Lors de l'exécution de la commande ifconfig dans l'environnement Guestshell, les adresses IPv4 et IPv6 deviennent visibles.

lat1-2-ssw01.gts#guestshell run bash

[guestshell@guestshell ~]$ sudo ifconfig

eth0: flags=4163  mtu 1500

inet 192.168.20.10  netmask 255.255.255.0 broadcast 192.168.20.255

inet6 2620:119:5022:515:5054:ddff:fe41:c643  prefixlen 64  scopeid 0x0

inet6 fe80::5054:ddff:fe41:c643  prefixlen 64  scopeid 0x20

ether 52:54:dd:41:c6:43  txqueuelen 1000  (Ethernet)

RX packets 7829  bytes 1750981 (1.6 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 5551  bytes 744320 (726.8 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10

loop  txqueuelen 1000  (Local Loopback)

RX packets 292  bytes 63812 (62.3 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 292  bytes 63812 (62.3 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Solution

Étape 1 : Désactivez le routage et l'adressage IPv6 dans Guestshell.

lat1-2-ssw01.gts#guestshell run bash

[guestshell@guestshell ~]$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1

[guestshell@guestshell ~]$ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

[guestshell@guestshell ~]$ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

Étape 2 : Vérifiez qu'IPv6 est désactivé.

[guestshell@guestshell ~]$ /sbin/ifconfig

eth0: flags=4163  mtu 1500

inet 192.168.20.10  netmask 255.255.255.0 broadcast 192.168.20.255

ether 52:54:dd:41:c6:43  txqueuelen 1000  (Ethernet)

RX packets 7829  bytes 1750981 (1.6 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 5551  bytes 744320 (726.8 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

loop  txqueuelen 1000  (Local Loopback)

RX packets 292  bytes 63812 (62.3 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 292  bytes 63812 (62.3 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Erreurs D'Espace Disque Lors De L'Exécution De Scripts Python

Problème : Le problème concerne un script Python s'exécutant sur un gestionnaire d'événements intégré (EEM) dans Guestshell. Le script échoue en raison d'un manque d'espace disque avec l'erreur :

guestshell run python3 /flash/guest-share/monitoring.py -rt True -bgp True

---- pushing bgp status ----

OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/flash/guest-share/monitoring_periodic_tasks.py", line 18, in

print(bgp_status())

File "/bootflash/guest-share/monitoring_bgp_status.py", line 15, in bgp_status

vrf = cli.cli('show vrf')

File "/usr/lib/python3.6/site-packages/cli/__init__.py", line 311, in cli

_log_to_file("CLI execution invoked for '" + command + "'")

File "/usr/lib/python3.6/site-packages/cli/__init__.py", line 87, in _log_to_file

logfile.close()

OSError: [Errno 28] No space left on device

! This error indicates that the disk space allocated for logging command executions within the Guestshell environment has been exhausted.

Solution

Pour résoudre le problème de manque d'espace disque, vous devez augmenter la taille de disque persistant pour l'environnement Guestshell :

1. Modifiez le profil de ressources d'application pour augmenter la taille du disque persist.

Switch(config-app-hosting)# app-resource profile custom

Switch(config-app-hosting-profile)# persist-disk 100

Switch(config-app-hosting-profile)# cpu 800

Switch(config-app-hosting-profile)# memory 256

Switch(config-app-hosting-profile)# end

2. Enregistrez la configuration et activez/désactivez Guestshell.

Switch# write memory

Switch#guestshell disable

Guestshell disabled successfully

Switch#guestshell enable

Interface will be selected if configured in app-hosting

Please wait for completion

guestshell installed successfully

Current state is: DEPLOYED

guestshell activated successfully

Current state is: ACTIVATED

guestshell started successfully

Current state is: RUNNING

Guestshell enabled successfully

Journalisation Syslog

Vous pouvez exécuter ces commandes dans guestshell pour afficher les messages syslog :

[guestshell@guestshell ~]$ sudo logger -p 1 "Priority 1"

[guestshell@guestshell ~]$ sudo cat /var/log/messages

Mar 11 02:05:24 localhost systemd[248]: user@0.service: Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted

Mar 11 02:05:24 localhost systemd[1]: user@0.service: Failed with result 'protocol'.

Mar 11 02:05:24 localhost systemd[1]: Failed to start User Manager for UID 0.

Mar 11 02:05:24 localhost systemd[1]: Stopping /run/user/0 mount wrapper...

Mar 11 02:05:24 localhost systemd[1]: run-user-0.mount: Succeeded.

Mar 11 02:05:24 localhost systemd[1]: user-runtime-dir@0.service: Succeeded.

Mar 11 02:05:24 localhost systemd[1]: Stopped /run/user/0 mount wrapper.

Mar 11 02:05:24 localhost root[250]: Priority 1

[guestshell@guestshell ~]$ sudo cat /var/log/secure

Mar 11 02:05:24 localhost systemd[248]: pam_unix(systemd-user:account): expired password for user root (root enforced)

Mar 11 02:05:24 localhost sudo[246]: pam_systemd(sudo:session): Failed to create session: Start job for unit user@0.service failed with 'failed'

Mar 11 02:05:24 localhost sudo[246]: pam_unix(sudo:session): session opened for user root by (uid=0)

Tracelog

Vous pouvez utiliser app-hosting move appid guestshell log pour démarrer flash:nom_dossier pour faire pivoter le fichier. Cette option peut être utilisée pour effectuer une rotation vers un répertoire cible, mais également vers le répertoire traceloguestshell.

Switch#app-hosting move appid guestshell log to bootflash:

Successfully moved tracelog to flash:/ioxapploguestshell/iox_R0-0_R0-0.14195_0.20250311023831.bin.gz

Remarque : IOX guestshell.log est toujours le fichier tracelog actif sous /tmp/rp/trace · Lorsque ce fichier atteint 1 Mo, il est automatiquement tourné vers bootflash:traceloguestshell/ avec un horodatage, et un nouveau fichier est démarré.

Informations connexes

- Livre blanc sur l'hébergement d'applications sur les commutateurs Cisco Catalyst 9000

- Guide d'installation matérielle des commutateurs Cisco Catalyst 9300

- Guide de configuration de la programmabilité, Cisco IOS XE 17.9.x

- Livre blanc Catalyst 9300 Stackwise System Architecture

- ID de bogue Cisco CSCwi63075 - Guestshell n'est pas accessible via l'interface de ligne de commande après une mise à niveau vers 17.08.01 ou version ultérieure si le mode FIPS est activé

- Assistance et documentation techniques - Cisco Systems