cloud-init 和 netplan網路或是其它網路控制誰控制權高?? [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



cloud-init 和 netplan網路或是其它網路控制誰控制權高??
會員一級
註冊日期:
2022/7/27 14:06
所屬群組:
已註冊使用者
等級: 2
HP : 0 / 31
MP : 4 / 106
EXP: 25
離線
Ubuntu Server 22.04

最近看很多設定都是這些網路跳來跳去的, 有哪個大大清楚知道這些之間的關係? 有時候看到有的就說不要用 netplan, 改用 networkd, 或是 network manager

個人想法是啟動過程應該還是有主控權的概念, 不知道這樣對不對; 不然就像是沒有 主控制的硬體設計, 常會有 偶發的 bug

會這樣問是因為看到 netplan下有一段話提到 subiquity, 然後在 cloud-init的 .cfg.d下 又看到 subiquity.disable.xxxxx.cfg 的檔案, 所以想把這些對應關係的邏輯性/系統性 先弄清楚

如果有大大清楚, 再麻煩解說, 感謝喔

2022/7/29 12:26
應用擴展 工具箱
回覆: cloud-init 和 netplan網路或是其它網路控制誰控制權高??
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30217
EXP: 23
離線
提供下面兩篇參考文章,也許能協助您初步理解「netplan」的功用


* https://newtoypia.blogspot.com/2020/09/netplan.html
* https://ithelp.ithome.com.tw/m/articles/10267179


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

對於「cloud-init」這部份,我沒有「涉略」,

而我在上面提到的「第二個網址」,

有看到裡面有提到「cloud-init」相關的內容,對照您提到的內容,我猜您應該也有參考。

不過我安裝的是「Ubuntu 22.04 Desktop 版」,

可能需要我有安裝「Ubuntu 22.04 Server 版」,才有辦法討論,不過我暫時沒有心力去做這件事情。

然而我個人覺得,觀念需要一個一個釐清,

所以建議您先理解「netplan」的功用,

因此以下稍微紀錄,我對「netplan」探索到的,供您參考,

再對照上面提到的網址提到,也許能讓您有個探索的起點。

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

我理解到的「netplan」只是「輔助網路設定的工具」,

它只是透過「文字設定檔」,加上「netplan」提供的「指令」,來產生「實際運作後端的網路設定檔」。

它只是在原本有的機制上,再架一層,統一設定檔的格式,實際的運作並不是在「netplan」這端。

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

而「文字設定檔」是放在「/etc/netplan」這個資料夾,副檔名是「.yaml」,也就是採取「YAML」的格式。


以我的環境為例,我的環境是「Ubuntu 22.04 Desktop 版」

執行


ls /etc/netplan/



顯示


01-network-manager-all.yaml



執行


cat /etc/netplan/01-network-manager-all.yaml



顯示


# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager





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

註: 關於「/etc/netplan/01-network-manager-all.yaml」這個檔案,系統安裝好就已經存在了,所以我也沒特別去設定它。

而且它也不是來自於哪個「Package」。

執行


dpkg -S /etc/netplan/01-network-manager-all.yaml



顯示


dpkg-query: no path found matching pattern /etc/netplan/01-network-manager-all.yaml




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

而「netplan」提供的「指令」。

執行


dpkg -L netplan.io | grep 'bin/'



顯示


/usr/sbin/netplan




也就是說,在系統裡有「netplan」這個「指令」可以下


執行


netplan --help



顯示


usage: /usr/sbin/netplan  [-h] [--debug]  ...

Network configuration in YAML

options:
  -h, --help  show this help message and exit
  --debug     Enable debug messages

Available commands:
  
    help      Show this help message
    apply     Apply current netplan config to running system
    generate  Generate backend specific configuration files from
              /etc/netplan/*.yaml
    get       Get a setting by specifying a nested key like
              "ethernets.eth0.addresses", or "all"
    info      Show available features
    ip        Retrieve IP information from the system
    set       Add new setting by specifying a dotted key=value pair like
              ethernets.eth0.dhcp4=true
    rebind    Rebind SR-IOV virtual functions of given physical functions to
              their driver
    try       Try to apply a new netplan config to running system, with
              automatic rollback



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

* man netplan-get

執行


netplan get



顯示


network:
version: 2
renderer: NetworkManager




加上「--debug」這個參數,執行下面指令


netplan --debug get



顯示


** (process:2331): DEBUG: 08:35:31.897: starting new processing pass
network:
version: 2
renderer: NetworkManager



執行


netplan get network.renderer



顯示


NetworkManager



執行


netplan get network.version



顯示


2




* https://github.com/canonical/netplan/blob/main/netplan/cli/commands/get.py
* https://github.com/canonical/netplan/blob/main/netplan/cli/utils.py
* https://github.com/canonical/netplan/blob/main/netplan/libnetplan.py
* https://github.com/canonical/netplan/blob/main/src/netplan.c


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

執行


dpkg -L netplan.io | grep '/man/man.*/'



顯示


/usr/share/man/man5/netplan.5.gz
/usr/share/man/man8/netplan-apply.8.gz
/usr/share/man/man8/netplan-dbus.8.gz
/usr/share/man/man8/netplan-generate.8.gz
/usr/share/man/man8/netplan-get.8.gz
/usr/share/man/man8/netplan-set.8.gz
/usr/share/man/man8/netplan-try.8.gz



* man netplan
* man netplan-apply
* man netplan-dbus
* man netplan-generate
* man netplan-get
* man netplan-set
* man netplan-try


* https://github.com/canonical/netplan/tree/main/netplan/cli/commands

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

執行


file /usr/sbin/netplan



顯示


/usr/sbin/netplan: symbolic link to ../share/netplan/netplan.script



執行


file /usr/sbin/../share/netplan/netplan.script



或是執行


file /usr/share/netplan/netplan.script



顯示


/usr/share/netplan/netplan.script: Python script, ASCII text executable



也就是「/usr/share/netplan/netplan.script」是用「Python」寫成的

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

執行


tree /usr/share/netplan



顯示


/usr/share/netplan
├── netplan
│   ├── cli
│   │   ├── commands
│   │   │   ├── apply.py
│   │   │   ├── generate.py
│   │   │   ├── get.py
│   │   │   ├── info.py
│   │   │   ├── __init__.py
│   │   │   ├── ip.py
│   │   │   ├── migrate.py
│   │   │   ├── set.py
│   │   │   ├── sriov_rebind.py
│   │   │   └── try_command.py
│   │   ├── core.py
│   │   ├── __init__.py
│   │   ├── ovs.py
│   │   ├── sriov.py
│   │   └── utils.py
│   ├── configmanager.py
│   ├── _features.py
│   ├── __init__.py
│   ├── libnetplan.py
│   └── terminal.py
└── netplan.script

3 directories, 21 file




* https://github.com/canonical/netplan/tree/main/netplan

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

註: 我系統安裝好後,一直都是使用「NetworkManager」的「圖形介面程式」來設定網路,

所以我也沒有特別透過「netplan」來設定「網路」,

所以就請參考我一開頭紀錄的參考網址,來作「netplan」的設定。

這部份可能就需要您自己去測試了。

或是參考官網提供的「範例

或是執行下面指令,也可以找到範例。


dpkg -L netplan.io | grep 'examples/' | sort -u



顯示


/usr/share/doc/netplan/examples/bonding_router.yaml
/usr/share/doc/netplan/examples/bonding.yaml
/usr/share/doc/netplan/examples/bridge_vlan.yaml
/usr/share/doc/netplan/examples/bridge.yaml
/usr/share/doc/netplan/examples/dhcp_wired8021x.yaml
/usr/share/doc/netplan/examples/dhcp.yaml
/usr/share/doc/netplan/examples/direct_connect_gateway_ipv6.yaml
/usr/share/doc/netplan/examples/direct_connect_gateway.yaml
/usr/share/doc/netplan/examples/ipv6_tunnel.yaml
/usr/share/doc/netplan/examples/loopback_interface.yaml
/usr/share/doc/netplan/examples/modem.yaml
/usr/share/doc/netplan/examples/network_manager.yaml
/usr/share/doc/netplan/examples/offload.yaml
/usr/share/doc/netplan/examples/openvswitch.yaml
/usr/share/doc/netplan/examples/route_metric.yaml
/usr/share/doc/netplan/examples/source_routing.yaml
/usr/share/doc/netplan/examples/sriov_vlan.yaml
/usr/share/doc/netplan/examples/sriov.yaml
/usr/share/doc/netplan/examples/static_multiaddress.yaml
/usr/share/doc/netplan/examples/static_singlenic_multiip_multigateway.yaml
/usr/share/doc/netplan/examples/static.yaml
/usr/share/doc/netplan/examples/vlan.yaml
/usr/share/doc/netplan/examples/windows_dhcp_server.yaml
/usr/share/doc/netplan/examples/wireguard.yaml
/usr/share/doc/netplan/examples/wireless.yaml
/usr/share/doc/netplan/examples/wpa_enterprise.yaml




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

執行


dpkg -L netplan.io | grep systemd



顯示


/lib/systemd
/lib/systemd/system-generators
/lib/systemd/system-generators/netplan



執行


file /lib/systemd/system-generators/netplan



顯示


/lib/systemd/system-generators/netplan: symbolic link to ../../netplan/generate




執行


file /lib/systemd/system-generators/../../netplan/generate



或是執行


file /lib/netplan/generate



顯示


/lib/netplan/generate: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=3b6186fea6f2b3bd364080656f963e7cbbfac3dc, for GNU/Linux 3.2.0, stripped




* https://github.com/canonical/netplan/blob/main/src/generate.c
* man systemd.generator

關於「/lib/systemd/system-generators/netplan」目前只有探索到這,先紀錄。

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

以上提供參考,報告完畢



2022/7/30 9:13
應用擴展 工具箱
回覆: cloud-init 和 netplan網路或是其它網路控制誰控制權高??
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30217
EXP: 23
離線
以下提供一些簡易的探索技巧


執行


apt-cache search netplan



顯示


libnetplan-dev - Development files for netplan's libnetplan runtime library
libnetplan0 - YAML network configuration abstraction runtime library
netplan.io - YAML network configuration abstraction for various backends




執行


dpkg -l '*netplan*'



顯示


Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=================-==============-============-===========================================================
ii libnetplan0:amd64 0.104-0ubuntu2 amd64 YAML network configuration abstraction runtime library
un netplan <none> <none> (no description available)
ii netplan.io 0.104-0ubuntu2 amd64 YAML network configuration abstraction for various backends




* Package: netplan.io
* Package: libnetplan0


執行


apt-cache show netplan.io



執行


apt-cache show libnetplan0





* Source Package: netplan.io

執行


apt-cache showsrc netplan.io


2022/7/30 9:16
應用擴展 工具箱
回覆: cloud-init 和 netplan網路或是其它網路控制誰控制權高??
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30217
EXP: 23
離線
Package: libnetplan0 / filelist


執行


dpkg -L libnetplan0



顯示


/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libnetplan.so.0.0
/usr/share
/usr/share/doc
/usr/share/doc/libnetplan0
/usr/share/doc/libnetplan0/changelog.Debian.gz
/usr/share/doc/libnetplan0/copyright


2022/7/30 9:17
應用擴展 工具箱
回覆: cloud-init 和 netplan網路或是其它網路控制誰控制權高??
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 37
HP : 0 / 905
MP : 679 / 30217
EXP: 23
離線
Package: netplan.io / filelist


執行


dpkg -L netplan.io | sort



顯示


/.
/etc
/etc/netplan
/lib
/lib/netplan
/lib/netplan/generate
/lib/netplan/netplan-dbus
/lib/systemd
/lib/systemd/system-generators
/lib/systemd/system-generators/netplan
/usr
/usr/sbin
/usr/sbin/netplan
/usr/share
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/netplan
/usr/share/dbus-1
/usr/share/dbus-1/system.d
/usr/share/dbus-1/system.d/io.netplan.Netplan.conf
/usr/share/dbus-1/system-services
/usr/share/dbus-1/system-services/io.netplan.Netplan.service
/usr/share/doc
/usr/share/doc/netplan
/usr/share/doc/netplan/examples
/usr/share/doc/netplan/examples/bonding_router.yaml
/usr/share/doc/netplan/examples/bonding.yaml
/usr/share/doc/netplan/examples/bridge_vlan.yaml
/usr/share/doc/netplan/examples/bridge.yaml
/usr/share/doc/netplan/examples/dhcp_wired8021x.yaml
/usr/share/doc/netplan/examples/dhcp.yaml
/usr/share/doc/netplan/examples/direct_connect_gateway_ipv6.yaml
/usr/share/doc/netplan/examples/direct_connect_gateway.yaml
/usr/share/doc/netplan/examples/ipv6_tunnel.yaml
/usr/share/doc/netplan/examples/loopback_interface.yaml
/usr/share/doc/netplan/examples/modem.yaml
/usr/share/doc/netplan/examples/network_manager.yaml
/usr/share/doc/netplan/examples/offload.yaml
/usr/share/doc/netplan/examples/openvswitch.yaml
/usr/share/doc/netplan/examples/route_metric.yaml
/usr/share/doc/netplan/examples/source_routing.yaml
/usr/share/doc/netplan/examples/sriov_vlan.yaml
/usr/share/doc/netplan/examples/sriov.yaml
/usr/share/doc/netplan/examples/static_multiaddress.yaml
/usr/share/doc/netplan/examples/static_singlenic_multiip_multigateway.yaml
/usr/share/doc/netplan/examples/static.yaml
/usr/share/doc/netplan/examples/vlan.yaml
/usr/share/doc/netplan/examples/windows_dhcp_server.yaml
/usr/share/doc/netplan/examples/wireguard.yaml
/usr/share/doc/netplan/examples/wireless.yaml
/usr/share/doc/netplan/examples/wpa_enterprise.yaml
/usr/share/doc/netplan.io
/usr/share/doc/netplan.io/changelog.Debian.gz
/usr/share/doc/netplan.io/copyright
/usr/share/doc/netplan/netplan.html
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/netplan.io
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/netplan.5.gz
/usr/share/man/man8
/usr/share/man/man8/netplan-apply.8.gz
/usr/share/man/man8/netplan-dbus.8.gz
/usr/share/man/man8/netplan-generate.8.gz
/usr/share/man/man8/netplan-get.8.gz
/usr/share/man/man8/netplan-set.8.gz
/usr/share/man/man8/netplan-try.8.gz
/usr/share/netplan
/usr/share/netplan/netplan
/usr/share/netplan/netplan/cli
/usr/share/netplan/netplan/cli/commands
/usr/share/netplan/netplan/cli/commands/apply.py
/usr/share/netplan/netplan/cli/commands/generate.py
/usr/share/netplan/netplan/cli/commands/get.py
/usr/share/netplan/netplan/cli/commands/info.py
/usr/share/netplan/netplan/cli/commands/__init__.py
/usr/share/netplan/netplan/cli/commands/ip.py
/usr/share/netplan/netplan/cli/commands/migrate.py
/usr/share/netplan/netplan/cli/commands/set.py
/usr/share/netplan/netplan/cli/commands/sriov_rebind.py
/usr/share/netplan/netplan/cli/commands/try_command.py
/usr/share/netplan/netplan/cli/core.py
/usr/share/netplan/netplan/cli/__init__.py
/usr/share/netplan/netplan/cli/ovs.py
/usr/share/netplan/netplan/cli/sriov.py
/usr/share/netplan/netplan/cli/utils.py
/usr/share/netplan/netplan/configmanager.py
/usr/share/netplan/netplan/_features.py
/usr/share/netplan/netplan/__init__.py
/usr/share/netplan/netplan/libnetplan.py
/usr/share/netplan/netplan.script
/usr/share/netplan/netplan/terminal.py


2022/7/30 9:19
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.