-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheck_qga.sh
More file actions
66 lines (53 loc) · 1.5 KB
/
Copy pathcheck_qga.sh
File metadata and controls
66 lines (53 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
set -euo pipefail
# Function to log messages
log() {
echo "[INFO] $*"
}
# Function to detect oVirt guest
is_ovirt_guest() {
local product_name sys_vendor
product_name=$(head -n 1 /sys/class/dmi/id/product_name 2>/dev/null || echo "")
sys_vendor=$(head -n 1 /sys/class/dmi/id/sys_vendor 2>/dev/null || echo "")
[[ "$product_name" =~ (oVirt|RHEV|Virtual\ Machine|KVM|RHEL) ]] || return 1
[[ "$sys_vendor" =~ (oVirt|Red\ Hat|QEMU) ]] || return 1
return 0
}
# Function to install qemu-guest-agent
install_qemu_guest_agent() {
local pkg_mgr=""
if command -v apt-get >/dev/null; then
pkg_mgr="apt"
elif command -v dnf >/dev/null; then
pkg_mgr="dnf"
elif command -v yum >/dev/null; then
pkg_mgr="yum"
else
echo "[ERROR] No supported package manager found (apt, dnf, yum)"
exit 1
fi
if ! command -v qemu-ga >/dev/null; then
log "qemu-guest-agent not found, attempting to install..."
if [[ $pkg_mgr == "apt" ]]; then
sudo apt-get update
sudo apt-get install -y qemu-guest-agent
else
sudo "$pkg_mgr" install -y qemu-guest-agent
fi
else
log "qemu-guest-agent is already installed."
fi
# Ensure it's enabled and started
sudo systemctl enable --now qemu-guest-agent
log "qemu-guest-agent has been installed and started."
}
# Main logic
main() {
if is_ovirt_guest; then
log "System appears to be a guest of oVirt."
install_qemu_guest_agent
else
log "System is not a guest of oVirt. No action taken."
fi
}
main "$@"