小编Ano*_*ing的帖子

如何在 Linux 中启用 KVM 设备直通?

我有一个 MSI-GD65 游戏主板和一个 Intel i7 4790。在 bios 的 CPU 功能部分中启用了 VT-D。

我正在运行 Ubuntu 14.04.1 LTS,当我尝试分离设备时,我收到以下消息:

# virsh nodedev-分离 pci_0000_00_1f_2

错误:无法分离设备 pci_0000_00_1f_2 错误:不支持操作:此系统当前不支持 VFIO 和 KVM 设备分配

Dmesg 包含一些有关 IOMMU 的信息,但我不知道这是否意味着启用了 VT-D

$ dmesg | grep -i iommu

[0.027450] DMAR:IOMMU 0:reg_base_addr fed90000版本1:0帽c0000020660462 ECAP f0101a
[0.027455] DMAR:IOMMU 1:reg_base_addr fed91000版本1:0帽d2008020660462 ECAP f010da
[0.027521] IOAPIC ID 8下DRHD基0xfed91000 IOMMU 1

谁能建议我需要做什么才能在此系统上启用 VT-D 并将 PCI 设备传递给 KVM 来宾?

passthrough kvm-virtualization

16
推荐指数
2
解决办法
5万
查看次数

如何使用 ansible 查找第二个网卡的名称?

我正在使用 Ansible 将某些内容部署到 Linux 主机,并且我需要它仅侦听主机上的第二个 NIC。

查看可用的事实,我可以看到 ansible_interfaces 列出了我的所有网卡,例如

 "ansible_interfaces": [
        "lo", 
        "ens9f0", 
        "ens9f1"
 ]
Run Code Online (Sandbox Code Playgroud)

我知道这不是lo,所以我可以打折扣。通过查看 ansible_default_ipv4.alias,我可以看到我的主节点是 ens9f0。

在剧本/剧本中,我如何才能确定 ens9f1 是次要的?

这样做的用例是我想在模板中执行类似以下操作:

Listen {{ ansible_second_nic.ipv4.address }}
Run Code Online (Sandbox Code Playgroud)

我工作的每台机器可能有不同的 NIC 名称,因此我无法在我的角色中对它们进行硬编码。从历史上看,我只会假设 eth1,但这不再安全。

networking automation linux ansible

4
推荐指数
1
解决办法
3786
查看次数

应用程序在本地运行,但在云运行中失败并显示 502 -“上游连接错误或在标头之前断开/重置。重置原因:协议错误”

我有一个构建为 Docker 映像的应用程序,可以在本地正常工作,但在 Google Cloud Run 中失败,并显示“上游连接错误或在标头之前断开连接/重置。重置原因:协议错误”

该应用程序正在侦听 0.0.0.0:8080,并且不需要身份验证。我在本地 Docker 中运行它

docker run --rm --name myapp -p 8080:8080 myapp:1.0
Run Code Online (Sandbox Code Playgroud)

通过本地curl,我在 / 上得到了成功的响应

$ curl -v localhost:8080
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Vary: Origin
< Date: Sat, 24 Jul 2021 13:54:11 GMT
< Content-Length: 2
<
* Connection #0 to …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform

4
推荐指数
1
解决办法
1万
查看次数