作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

Fedora CoreOSのインストール練習 4 〜ネットワーク設定〜

前回までに引き続きFedora CoreOSで、ネットワークの設定をしてみる。

今回は、2個のネットワークインタフェースを持ち、1個目がDHCPでアドレスを取ってきてホスト名をcoreosに設定し、2個目は静的にIPアドレスを設定する構成にする。

Fedora CoreOSでインストール時にネットワークを設定するには、NetworkManagerのkeyfileを手動で配置してやる必要があるので、そのようなIgnition configを作成する。
まずはButaneファイルを書く。
Network Manager keyfileの書式はGnome公式ドキュメントを参照。
なお今回はコンソールでログインするようにpassword_hashを設定した。

variant: fcos
version: 1.3.0
passwd:
  users:
    - name: core
      password_hash: (mkpasswdで出力したハッシュ)
storage:
  files:
    - path: /etc/NetworkManager/system-connections/enp1s0.nmconnection
      mode: 0600
      contents:
        inline: |
          [connection]
          id=enp1s0
          type=ethernet
          interface-name=enp1s0
          [ipv4]
          method=auto
          dhcp-hostname=coreos
    - path: /etc/NetworkManager/system-connections/enp2s0.nmconnection
      mode: 0600
      contents:
        inline: |
          [connection]
          id=enp2s0
          type=ethernet
          interface-name=enp2s0
          [ipv4]
          address1=192.168.152.2/24
          method=manual

次に、Butane configをIgnition configに変換する。

$ docker run -i --rm quay.io/coreos/butane:release < netconfig.bu > netconfig.ign

そして、ネットワークインタフェースを2個指定してVMを作成してインストールする。

$ virt-install --connect qemu:///system --name coreos --vcpus 1 --memory 2048 --os-variant fedora31 --import --graphics=none --disk path=coreos.img,size=10,backing_store=$PWD/fedora-coreos-34.20210518.3.0-qemu.x86_64.qcow2 --network network=default --network network=private --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=$PWD/netconfig.ign"

インストールが終わったら、ログインして設定を確認する。

[core@coreos ~]$ nmcli con show
NAME    UUID                                  TYPE      DEVICE 
enp1s0  360d1330-11cf-3a91-ae05-590058fc3e82  ethernet  enp1s0 
enp2s0  08862f9c-09fb-396b-ba92-ff582dfe1839  ethernet  enp2s0 
[core@coreos ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:44:6a:cb brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.159/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
       valid_lft 3224sec preferred_lft 3224sec
    inet6 fe80::1ce2:98a4:a6fa:2965/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:40:bd:8e brd ff:ff:ff:ff:ff:ff
    inet 192.168.152.2/24 brd 192.168.152.255 scope global noprefixroute enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::767:ae67:5c75:d25a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

enp2s0に指定したIPアドレスが設定されており、コマンドプロンプトからホスト名がcoreosに設定されていることがわかる。

Ignitionを使ってFedora CoreOSのネットワークが設定できた!