web-dev-qa-db-ja.com

CentOS 7の静的IPネットワーク用のnmcliコマンド

CentOS 7で静的IPネットワークを効果的に構成するために使用できるnmcliコマンドの具体的なシーケンスは何ですか?

以下に示す4つのステップのプロセスは、静的IPネットワークを効果的に構成します。

ただし、以下のプロセスは構成ファイルに依存しているため、後で自動化されたスクリプトアプローチに簡単に対応できない場合があります。以下に示す構成ファイルのアプローチを続けると、非常に複雑なスクリプトがたくさんあると思います。たとえば、UUID行には、構成ファイルにコピーしてマシンを再起動するだけのスクリプトで特別な処理が必要になります。

代わりに、ターミナルに手動で入力できる一連の特定のnmcliコマンドが必要です。これにより、後でbashスクリプトを簡単に設計できます。

動作する現在の手動プロセスは次のとおりです。

1.)デバイスeno1は、自動インストールプロセス中に作成されました。

2.)所定のネットマスクを持つIPアドレスをeno1に割り当てます。

ip addr 12.34.567.8xx/29 dev eno1 

3.)構成ファイルを編集します。

$ vi /etc/sysconfig/network-scripts/ifcfg-eno1

        TYPE="Ethernet"
        BOOTPROTO="static"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        NAME="eno1"
        UUID="some-very-long-complex-string"
        DEVICE="eno1"
        ONBOOT="yes"
        DNS1=aa.aa.aa.aa
        DNS2=aa.aa.bb.bb
        IPADDR=12.34.567.8xx
        NETMASK=255.255.255.248
        PREFIX=29
        GATEWAY=12.34.567.8yy
        PEERDNS=yes
        PEERROUTES=yes
        IPV6_PEERDNS=yes
        IPV6_PEERROUTES=yes
        NM_CONTROLLED="no"

4.)次にファイルを保存し、コンピュータを再起動します。

12.34.567.8xx12.34.567.8yyはパブリックIPアドレスであり、12.34.567.8__はIPとゲートウェイの最初の8文字が同一であることを示していることに注意してください。

また、BOOTPROTO=staticNM_CONTROLLED=noは、nmcliコマンドからの結果が何であるかを知る必要があることに注意してください。

上記の4ステップのプロセスを効果的に置き換えることができるnmcliコマンドの特定のシーケンスは?

3
CodeMed

以下を試してください:

nmcli con mod eno1 ipv4.addresses 12.345.67.8xx/29
nmcli con mod eno1 ipv4.gateway 12.34.567.8yy
nmcli con mod eno1 ipv4.dns "aa.aa.aa.aa bb.bb.bb.bb"
nmcli con mod eno1 ipv4.method manual
nmcli con mod eno1 connection.autoconnect yes

再起動すると動作するはずです。

ネットワーク接続の名前がわからない場合は、次のコマンドを実行できます。

CON="$(nmcli -f NAME -m multiline show con | awk '{ print $2; }')"

使用 "$CON" の代わりに eno1上記のコマンドで。例えば:

nmcli con mod "$CON" ipv4.addresses 12.345.67.8xx/29

これは、単一の接続がある場合にのみ機能します。 VMに複数のネットワーク接続がある場合は、上記にロジックを追加して、どれを使用するかを決定する必要があります。

4
garethTheRed