[排错] 解决虚拟机使用命令 nmcli connection up enp1s0 时报错 Error: Connection activation failed: No suitable device found for this connection (device eth0 not available because profile is not compatible with device (mismatching interface name)). (给网卡配置的静态 IP 地址无法生效)

报错代码:

# nmcli connection up enp1s0 
Error: Connection activation failed: No suitable device found for this connection (device eth0 not available because profile is not compatible with device (mismatching interface name)).

解决方法:

步骤一:在虚拟机管理器上刷新虚拟机网卡的 MAC 地址或者删除原网卡添加一个新网卡

(步骤略)

步骤二:删除 NetworkManager 上所有的网卡配置

2.1 显示目前 NetworkManager 所有的网卡配置

# nmcli connection show

2.2 删除 NetworkManager 上所有的网卡配置

# nmcli connection delete enp1s0
# nmcli connection delete Wired\ connection\ 1 

(补充:这里以删除网卡配置 enp1s0 和 Wired\ connection\ 1 为例)

2.3 确保目前 NetworkManager 没有网卡配置

# nmcli connection show

(注意:确保这条命令输入后没有输出结果)

步骤三:添加新的 NetworkManager 网卡配置

3.1 显示目前的网卡硬件

# nmcli device show

(注意:这里需要记住网卡硬件的名称,因为下个步骤需要使用)

3.2 添加新的 NetworkManager 网卡配置

# nmcli connection add con-name eth0 ifname eth0 type ethernet

(补充:这里以给 eth0 网卡添加个名为 eth0 的 NetworkManager 网卡配置为例)

(注意:这里的 ifname 后面的名称,必须和上个步骤输出命令后显示的网卡硬件名称一致)

3.3 让刚刚添加的 NetworkManager 网卡配置生效

# nmcli device connect eth0

(补充:这里以启动 eth0 网卡为例)

(注意:这里的 eth0 是在上个步骤中使用 con-name 参数配置的网卡配置名)

步骤四:给 NetworkManager 网卡配置设置 IP 地址

4.1 给 NetworkManager 网卡配置设置 IP 地址

# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.100.8/24 ipv4.gateway 192.168.100.1 autoconnect yes ipv4.dns 1.1.1.1

(补充:这里以给 eth0 网卡添加静态 IP 地址 192.168.100.8/24,网关 IP 地址 192.168.100.1,DNS 1.1.1.1 并开机自启为例)

(注意:这里的 eth0 是在前面的步骤中使用 con-name 参数配置的网卡配置名)

4.2 让刚刚配置的 IP 地址生效

# nmcli connection up eth0 

(补充:这里以让 eth0 网卡上配置的 IP 地址生效为例)

(注意:这里的 eth0 是在前面的步骤中使用 con-name 参数配置的网卡配置名)

[步骤] Rocky Linux & RHEL 自定义 YUM 源的制作

步骤一:制作自定义 YUM 源

1.1 安装从软件源下载安装包和依赖包到本地的工具

# yum install yum-utils -y

(注意:这里假设的情况是本系统可以正常使用 YUM 安装软件)

1.2 获取某软件的安装包和此软件的依赖包

# yumdownloader --resolve --destdir /tmp/ansible ansible

(补充:这里以将 ansible 安装包和 ansible 的依赖包下载到本地的 /tmp/ansible 目录为例)


注意:
1) 这里建议直接下载软件名称比如这里的 ansible,而不是下载指定了具体版本的软件,如果下载制定了具体版本的软件,其对应的依赖包可能不会下载下来
2) 这里假设的情况是本系统可以正常使用 YUM 安装软件

1.3 获取生成 YUM 源的工具软件包

# yumdownloader --resolve --destdir /tmp/ansible createrepo

(补充:这里以将 createrepo 安装包和 createrepo 的依赖包下载到本地的 /tmp/ansible 目录为例)

(注意:这里假设的情况是本系统可以正常使用 YUM 安装软件)

1.4 制作 YUM 源

1.4.1 进入到软件的安装包、依赖包和生成 YUM 源的工具软件包所在的目录
# cd /tmp/ansible

(补充:这里以进入到目录 /tmp/ansible 为例)

1.4.2 安装生成 YUM 源的工具
# rpm -ivh createrepo_c & rpm -ivh createrepo_c-libs & rpm -ivh drpm


补充:这里安装的软件包有
1) createrepo_c
2) createrepo_c-libs
3) drpm

1.4.3 进入到上一级目录
# cd ../
1.4.4 创建 ansible 的 YUM 源
# createrepo ansible

(补充:这里以用 ansible 目录里的软件包创建 YUM 源为例)

步骤二:使用自定义 YUM 源

2.1 创建新的 repo 文件

# vim /etc/yum.repos.d/ansible.repo

创建以下内容:

[ansible]
name=ansible
baseurl=file:///tmp/ansible
gpgcheck=0
enabled=1


补充:这里以
1) 文件名为 ansible
2) 文件标题为 ansible
3) YUM 源的软件包位置在 /tmp/ansible
4) 不进行 gpgcheck 检测
5) 启用此 YUM 源
为例

2.2 使用自定义 YUM 源安装软件

# yum install ansible -y

(补充:这里以安装 ansible 软件为例)