web-dev-qa-db-fra.com

Erreur de configuration Netplan: "YAML non valide ... n'a pas trouvé la clé attendue."

J'essaie de me connecter à Internet à l'aide d'une adresse IP statique, mais lorsque j'entre Sudo netplan apply, la console renvoie l'erreur suivante:

Invalid YAML at //etc/netplan/01-netcfg.yaml line 8 column 5: did not find expected key.

Comment régler ceci? Le contenu de mon 01-netcfg.yaml ressemble à:

network:
version: 2
renderer: networkd
ethernets:
enp0s3:
            dhcp4: no
            dhcp6: no
            addresses: [10.0.2.15/64]
            gateway4: 10.0.2.0
            nameservers:
            addresses: [8.8.8.8,8.8.4.4]
1
user9507446

Donc, en ce qui concerne l'erreur spécifique que vous obtenez, vous avez échoué la syntaxe et l'indentation YAML de base, ce qui est l'une des raisons pour lesquelles netplan se plaint. YAML est extrêmement orienté sur l'indentation pour la façon dont il interprète les commandes, les arguments de configuration, etc. Vous devez avoir une indentation appropriée pour que les configurations YAML soient analysées. Surprise, vous ne faites pas ça du tout, et vous brisez la syntaxe YAML. C'est pourquoi netplan se plaint parce que vous ne fournissez pas le bon YAML.

Mais même plus important que la syntaxe YAML qui fera fonctionner Netplan, vous avez quelques échecs critiques avec la configuration de votre réseau , et vous devez vraiment les corriger malgré tout. Ces échecs sont notamment:

  • 10.0.2.15/64 n'est pas une plage CIDR IPv4 valide. Les plages CIDR acceptables sont comprises entre /0 (pour tous les IPv4) et /32 (pour une seule adresse) pour IPv4. La plupart des réseaux sont /24 pour la plage CIDR (avec cette plage IP, cela comprendrait 10.0.2.1 - 10.0.2.255 comme espace d'adressage utilisable, même si je suppose que .1 est la passerelle et le .255 est la diffusion, mais cela peut différer dans votre réseau, vérifiez donc toutes les valeurs!). La plage CIDR appropriée est nécessaire pour que le système sache quel est son masque de réseau et son espace IP accessible.
  • 10.0.2.0 n'est pas une adresse de passerelle correcte. Le .0 L'adresse n'est pas une adresse utilisable dans le sous-réseau IP, car elle est généralement détenue par le seul préfixe réseau. Et puisque votre configuration netowrk tente de faire un /24 mais échoue horriblement, cette passerelle devrait probablement être 10.0.2.1 - mais encore une fois, vérifiez d'abord ces valeurs avec votre administrateur réseau.

Donc, corriger votre indentation et réparer le réseau pour supposer que c'est un /24 en fonction de l'adresse IP et de la passerelle que vous avez spécifiées, votre YAML devrait ressembler à ce qui suit, avec les indentations appropriées. Et par rapport à votre existant, vous avez vraiment besoin d'apprendre comment fonctionne l'indentation.

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.2.15/24]
      gateway4: 10.0.2.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
3
Thomas Ward

Celui-ci a fonctionné pour moi:

 réseau: 
 ethernets: 
 enp2s0: 
 adresses: 
 - 192.168.0.2/24
 dhcp4: false 
 gateway4: 192.168.0.1 
 serveurs de noms: 
 adresses: 
 - 192.168.0.1 
 - 8.8.8.8 
 recherche: 
 - version du groupe de travail 
: 2 

puis a suivi ces commandes:

Sudo netplan generate

Sudo netplan apply

J'espère que ça le fera aussi pour vous.

1
Mithra

J'ai essayé de configurer netplan, en utilisant des guides comme celui ci-dessus et les suivants:

0
IT Gremlin