【问题标题】:Set static IP on Centos7在 Centos7 上设置静态 IP
【发布时间】:2020-06-09 13:15:49
【问题描述】:

我有一个 CentOS7 机器,需要将其从 DHCP 更改为静态 IP。我正在使用下面的 ansible 代码,并且不断收到消息。我已经安装了所需的软件包以使其正常工作,所以我认为这不是问题。

"FAILED! => {"changed": false, "msg": "Error: Failed to modify connection 'System ens192': No such method 'Update2'\n", "name": "System ens192", "rc": 1}"

我知道 ifname 是“ens192”,但不确定 conn_name。我做了一个“nmcli connection show”和一个“nmcli device show”,但它们似乎都不起作用。

我尝试了 conn_name "ens192, System ens192, my-en192",但我得到了相同的错误消息,只是 conn_name 不同。

我最终希望通过收集事实程序设置这些值,但不确定如何执行此操作?

  - name: Add an Ethernet connection with static IP configuration
    nmcli:
    conn_name: ens192
    ifname: ens192
    type: ethernet
    ip4: 192.0.2.100/24
    gw4: 192.0.2.1
    state: present

【问题讨论】:

  • 可能只是你的剪切和粘贴,但选项需要缩进。
  • 能否尝试重启 NetworkManager 然后重试?

标签: ansible centos7


【解决方案1】:

“nmcli connection show”和“nmcli device show”,但它们似乎都不起作用

它应该可以工作。

您是否为此模块安装了依赖项? 如果没有,您可以通过这种方式使用 ansible 安装它们:

  - name: install needed network manager libs
    package:
      name:
        - NetworkManager-glib
        - nm-connection-editor
        - libsemanage-python
        - policycoreutils-python
      state: present

或者只是 yum 安装它们。

【讨论】:

  • 是的,所有的依赖都安装好了。当我运行 nmcli 时,我确实得到了一个输出,并且我尝试将名称放在我的 ansible 脚本上,但我一直收到相同的错误消息。
  • 对不起,我知道命令本身不起作用!你能提供命令的输出吗?
【解决方案2】:

当我运行 nmcli 命令时,这是我得到的输出。我尝试在 conn_name: ens192 和 System ens192 上使用,它们都给了我相同的错误消息。

nmcli device show
GENERAL.DEVICE:                         ens192
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:87:FB:F1
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     System ens192
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.21.10.100/24
IP4.GATEWAY:                            10.21.10.254
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             4.2.2.2
IP6.ADDRESS[1]:                         
IP6.GATEWAY:                            --

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
[root@kamailio01 ~]# nmcli connection show
NAME           UUID                                  TYPE      DEVICE 
System ens192  2df1f002-52f2-4d9c-b7dd-7af061eceb34  ethernet  ens192 

【讨论】:

  • 你应该把它移到问题本身。
【解决方案3】:

在我的工作中,我刚刚有一个 Jinja2 模板并使用 template 模块覆盖了 /etc/sysconfig/network-scripts/ifcfg-whatever 文件。

【讨论】: