mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-04-25 05:57:49 +02:00
fix hardware passthrough for pci devices
This commit is contained in:
@@ -49,7 +49,8 @@ Options:
|
||||
--search4 DNS search domain for IPv4.
|
||||
-c, --cpu Number of virtual CPUs to assign.
|
||||
-m, --memory Amount of memory to assign in MiB.
|
||||
-P, --pci PCI hardware ID(s) to passthrough to the VM (e.g., 0000:00:1f.2). Can be specified multiple times.
|
||||
-P, --pci PCI hardware ID(s) to passthrough to the VM (e.g., 0000:c7:00.0). Can be specified multiple times.
|
||||
Format: domain:bus:device.function
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -57,7 +58,7 @@ Examples:
|
||||
|
||||
Command:
|
||||
so-salt-cloud -p sool9-hyper1 vm1_sensor --static4 --ip4 192.168.1.10/24 --gw4 192.168.1.1 \
|
||||
--dns4 192.168.1.1,192.168.1.2 --search4 example.local -c 4 -m 8192 -P 0000:00:1f.2 -P 0000:00:1f.3
|
||||
--dns4 192.168.1.1,192.168.1.2 --search4 example.local -c 4 -m 8192 -P 0000:c7:00.0 -P 0000:c4:00.0
|
||||
|
||||
This command provisions a VM named vm1_sensor using the sool9-hyper1 profile with the following settings:
|
||||
|
||||
@@ -69,7 +70,7 @@ Examples:
|
||||
- Hardware Configuration:
|
||||
- CPUs: 4
|
||||
- Memory: 8192 MiB
|
||||
- PCI Device Passthrough: 0000:00:1f.2, 0000:00:1f.3
|
||||
- PCI Device Passthrough: 0000:c7:00.0, 0000:c4:00.0
|
||||
|
||||
2. DHCP Configuration with Default Hardware Settings:
|
||||
|
||||
@@ -88,13 +89,13 @@ Examples:
|
||||
4. DHCP Configuration with Custom Hardware Specifications and Multiple PCI Devices:
|
||||
|
||||
Command:
|
||||
so-salt-cloud -p sool9-hyper1 vm4_node --dhcp4 -c 8 -m 16384 -P 0000:00:1f.4 -P 0000:00:1f.5
|
||||
so-salt-cloud -p sool9-hyper1 vm4_node --dhcp4 -c 8 -m 16384 -P 0000:c7:00.0 -P 0000:c4:00.0 -P 0000:c4:00.1
|
||||
|
||||
This command provisions a VM named vm4_node using DHCP for network configuration and custom hardware settings:
|
||||
|
||||
- CPUs: 8
|
||||
- Memory: 16384 MiB
|
||||
- PCI Device Passthrough: 0000:00:1f.4, 0000:00:1f.5
|
||||
- PCI Device Passthrough: 0000:c7:00.0, 0000:c4:00.0, 0000:c4:00.1
|
||||
|
||||
5. Static IP Configuration with DNS and Search Domain:
|
||||
|
||||
@@ -116,6 +117,7 @@ Notes:
|
||||
- Hardware parameters (-c, -m, -P) are optional. If not provided, default values from the profile will be used.
|
||||
- The -P or --pci option can be specified multiple times to pass through multiple PCI devices to the VM.
|
||||
- The vm_name should include the role of the VM after an underscore (e.g., hostname_role), as the script uses this to determine the VM's role for firewall configuration.
|
||||
- PCI hardware IDs must be in the format domain:bus:device.function (e.g., 0000:c7:00.0).
|
||||
|
||||
Description:
|
||||
|
||||
@@ -283,9 +285,8 @@ def run_qcow2_modify_hardware_config(profile, vm_name, cpu=None, memory=None, pc
|
||||
|
||||
# Add PCI devices if provided
|
||||
if pci_list:
|
||||
# Join the list of PCI IDs into a comma-separated string
|
||||
pci_devices = ','.join(pci_list)
|
||||
args_list.append('pci=' + pci_devices)
|
||||
# Pass all PCI devices as a comma-separated list
|
||||
args_list.append('pci=' + ','.join(pci_list))
|
||||
|
||||
r = local.cmd(target, 'qcow2.modify_hardware_config', args_list)
|
||||
logger.info(f'qcow2.modify_hardware_config: {r}')
|
||||
@@ -327,7 +328,7 @@ def parse_arguments():
|
||||
parser.add_argument("--search4", help="DNS search domain for IPv4.")
|
||||
parser.add_argument('-c', '--cpu', type=int, help='Number of virtual CPUs to assign.')
|
||||
parser.add_argument('-m', '--memory', type=int, help='Amount of memory to assign in MiB.')
|
||||
parser.add_argument('-P', '--pci', action='append', help='PCI hardware ID(s) to passthrough to the VM (e.g., 0000:00:1f.2). Can be specified multiple times.')
|
||||
parser.add_argument('-P', '--pci', action='append', help='PCI hardware ID(s) to passthrough to the VM (e.g., 0000:c7:00.0). Can be specified multiple times.')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user