web-dev-qa-db-ja.com

ネットプランのウサギの穴から抜け出す方法は?

0.はじめに

以前はWindows 2008R2をホストしていた旧式のDell Poweredge 510にUbuntu 18.04.4 LTS(サーバー)をインストールしました。

インストーラーがネットワークアダプターの問題を「言及」しました。このシステムには、Windowsサーバーで結合された2つの(eno1、eno2)アダプターがあります。ただし、インストーラーの不満にもかかわらず、システムは正常にインストールされました-機能的なネットワークを含みます。

私は最初の業務として、ネットワークに関するインストーラーの不満を整理することにしました。私は2つのアダプターを結合することをお勧めします。それがどのように行われたかを示すドキュメントを熟読しました。残念ながら、「Netplan rabbit-hole」に陥った可能性があるので、この質問はどうやって抜け出すかです!これが私がしたことです:

1.ファイルを編集します/etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

以下は、私が見つけたこのファイルの内容です(編集前)。

network:  
  ethernets:  
eno1:  
  addresses:  
  - 192.168.1.74/24  
  gateway4: 192.168.1.1  
  nameservers:  
    addresses:  
    - 192.168.1.1  
    - 8.8.8.8  
    search:  
    - mylan.local  
  version: 2  

上記のファイルの代替を作成しました。これだよ:

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: no
    eno2:
      dhcp4: no
      optional: true
  bonds:
    bond0:
      interfaces: [eno1, eno2]
      addresses: [192.168.1.74/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8]
        search: mylan.local
      parameters:
        mode: active-backup
        primary: eno1
        mii-monitor-interval: 100

2.コマンドを実行して構成を確認します。

$ Sudo cloud-init clean
$ Sudo cloud-init init
# errors, incl the following: 
...

2020-03-31 04:58:22,849 - util.py[WARNING]: failed stage init  

...

cloudinit.util.ProcessExecutionError: Unexpected error while running command.
Command: ['netplan', 'generate']
Exit code: 1
Reason: -
Stdout: 
Stderr: /etc/netplan/50-cloud-init.yaml:13:15: Error in network definition: bond0: interface 'eno1' is not defined
                    - eno1
                      ^

Stderrによって参照されるファイルは/etc/netplan/50-cloud-init.yamlであることに注意してください。しかし、このファイルは編集しませんでした

OK-yamlファイルは、私が編集したファイルによって生成されたようですこのアドバイスに従ってagainstを決定しました ファイル内の情報に反してyamlファイルを編集することを勧めました!代わりに、私は急いで後退することを選びました!しかし、それもうまくいっていないようです:

3.リトリート!元の.cfgファイルを復元します。

幸い、元のファイルのコピーを保存しました:/etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

編集したファイルに元のファイルをコピーするだけで、このファイルを元の内容に復元しました。

$ Sudo cp /etc/cloud/cloud.cfg.d/50-curtin-networking_ORIGINAL.cfg /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg

これで問題は解決すると思いましたが、コマンドを再度実行するとエラーが発生し続けます。実際、上記の.cfgファイルを編集した場合と同じエラーが発生します!?

$ Sudo cloud-init clean
$ Sudo cloud-init init
# errors, incl the following: (same errors as above)

4.質問

この時点で、流砂に足を踏み入れたばかりの人のように感じます。動くほど、深く沈みます。だから、私はじっとしていて、助けを求めています。 Netplanはある程度のレベルで機能する必要があると思いますが、そこには相反する情報がたくさんあります。

ネットワークを元のインストール時の構成に復元するには何が必要ですか?

Netplanでのネットワーク構成の明確なガイダンスはどこにありますか?

1
Seamus

置換yamlにエラーがあり、検索:キーは単一の値ではなくリストを取ります。例:

search: [mylan.local]

これを修正すると、ネットプランの生成は成功します。

クラウド構成ファイルとネットプランyamlファイルを編集するかどうかについては、これについて議論するために https://bugs.launchpad.net/cloud-init/+bug/1869967 を開きました。その目的は、ユーザーがサーバーのインストール時にcloud-initを再実行する必要がないことであり、/ etc/netplanの下の構成ファイルは、編集する権限のある場所として扱う必要があります。

2
slangasek

これは 答え ではありません。これは答え自体ではありませんが、Netplan Rabbit Hole彼らは2つのイーサネットを結合しようとしていたので、これはあなたがエスケープしたことを確認する方法です

$ Sudo lshw -class network -short
H/W path            Device      Class      Description
======================================================
/0/100/1/0          eno1        network    NetXtreme II BCM5716 Gigabit Ethernet
/0/100/1/0.1        eno2        network    NetXtreme II BCM5716 Gigabit Ethernet
/1                  bond0       network    Ethernet interface

cloud-init initを実行したときに生成されるエラーメッセージにも注意を向けます(上記の質問の項目2を参照)。どうやら、これらのエラーメッセージは実際のエラーとはまったく関係ありません。私たちは皆、暗号化されたエラーメッセージに慣れていますが、これは特に red herring@ slangasek への称賛。

0
Seamus