2023-09-19 10:30:33 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# Define PATH
|
|
|
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
|
|
|
|
# Export PATH
|
|
|
|
export PATH
|
|
|
|
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
## Cockpit build at redhat family: https://copr.fedorainfracloud.org/coprs/g/cockpit/cockpit-preview/monitor/
|
|
|
|
## PackageKit: https://www.freedesktop.org/software/PackageKit/
|
|
|
|
## [apt show cockpit] or [apt install cockpit] show all additional packages
|
2023-09-19 09:44:20 +00:00
|
|
|
|
2023-09-22 05:38:00 +00:00
|
|
|
# Below vars from install.sh
|
|
|
|
# cockpit_port
|
|
|
|
# install_path
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
# $cockpit_port is define at install.sh
|
|
|
|
if [ -z "$cockpit_port" ]; then
|
|
|
|
cockpit_port="9000"
|
|
|
|
fi
|
2023-09-19 09:44:20 +00:00
|
|
|
|
2023-09-22 05:38:00 +00:00
|
|
|
echo_prefix_cockpit=$'\n[Cockpit] - '
|
2023-09-21 10:15:19 +00:00
|
|
|
cockpit_packages="cockpit cockpit-pcp cockpit-sosreport"
|
2023-09-22 05:38:00 +00:00
|
|
|
cockpit_plugin_delete="apps,machines,selinux,subscriptions,kdump,updates,playground,packagekit"
|
2023-09-21 10:15:19 +00:00
|
|
|
menu_overrides_github_page_url="https://websoft9.github.io/websoft9/cockpit/menu_override"
|
2023-09-22 05:38:00 +00:00
|
|
|
cockpit_config_github_page_url="https://websoft9.github.io/websoft9/cockpit/cockpit.conf"
|
2023-09-21 10:15:19 +00:00
|
|
|
cockpit_menu_overrides=(networkmanager.override.json shell.override.json storaged.override.json systemd.override.json users.override.json)
|
|
|
|
|
|
|
|
|
|
|
|
Install_PackageKit(){
|
2023-09-22 05:38:00 +00:00
|
|
|
echo "$echo_prefix_cockpit Try to install pkcon"
|
2023-09-21 10:15:19 +00:00
|
|
|
if command -v pkcon &> /dev/null; then
|
|
|
|
echo "pkcon is at you system"
|
|
|
|
elif command -v yum &> /dev/null; then
|
|
|
|
sudo yum install PackageKit
|
|
|
|
elif command -v dnf &> /dev/null; then
|
|
|
|
sudo dnf install PackageKit
|
|
|
|
elif command -v apt &> /dev/null; then
|
|
|
|
sudo apt update
|
|
|
|
sudo apt install packagekit
|
2023-09-19 09:44:20 +00:00
|
|
|
else
|
2023-09-21 10:15:19 +00:00
|
|
|
echo "PackageKit not found, Cockpit can not install"
|
|
|
|
exit 1
|
2023-09-19 09:44:20 +00:00
|
|
|
fi
|
|
|
|
}
|
2023-09-20 11:37:12 +00:00
|
|
|
|
2023-09-22 05:38:00 +00:00
|
|
|
Restart_Cockpit(){
|
|
|
|
echo "$echo_prefix_cockpit Restart Cockpit"
|
|
|
|
sudo systemctl daemon-reload
|
|
|
|
sudo systemctl restart cockpit
|
|
|
|
}
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Set_Firewall(){
|
2023-09-22 05:38:00 +00:00
|
|
|
echo "$echo_prefix_cockpit Set firewall for cockpit access"
|
2023-09-21 10:15:19 +00:00
|
|
|
if command -v firewall-cmd &> /dev/null; then
|
|
|
|
echo "Set firewall for Cockpit..."
|
|
|
|
sudo firewall-cmd --permanent --zone=public --add-service=cockpit
|
|
|
|
sudo firewall-cmd --reload
|
2023-09-19 09:44:20 +00:00
|
|
|
fi
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
if [ -f /etc/selinux/config ]; then
|
|
|
|
echo "Set Selinux for Cockpit..."
|
|
|
|
sudo setenforce 0 1>/dev/null 2>&1
|
|
|
|
sudo sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config 1>/dev/null 2>&1
|
2023-09-19 09:44:20 +00:00
|
|
|
fi
|
2023-09-21 10:15:19 +00:00
|
|
|
}
|
2023-09-19 09:44:20 +00:00
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Set_Cockpit(){
|
2023-09-22 05:38:00 +00:00
|
|
|
echo "$echo_prefix_cockpit Set Cockpit for Websoft9"
|
|
|
|
|
|
|
|
echo "Cockpit allowed root user ..."
|
|
|
|
echo "" > /etc/cockpit/disallowed-users
|
|
|
|
|
|
|
|
echo "Set Cockpit config file..."
|
|
|
|
if [ -f "$install_path/cockpit/cockpit.conf" ]; then
|
|
|
|
cp -f "$install_path/cockpit/cockpit.conf" /etc/cockpit/cockpit.conf
|
2023-09-21 10:15:19 +00:00
|
|
|
else
|
2023-09-22 05:38:00 +00:00
|
|
|
echo "Download config from URL"
|
|
|
|
curl -sSL $cockpit_config_github_page_url | sudo tee /etc/cockpit/cockpit.conf > /dev/null
|
2023-09-21 10:15:19 +00:00
|
|
|
fi
|
2023-09-22 05:38:00 +00:00
|
|
|
|
|
|
|
echo "Change cockpit default port to $cockpit_port ..."
|
2023-09-21 10:15:19 +00:00
|
|
|
sudo sed -i "s/ListenStream=9090/ListenStream=$cockpit_port/" /lib/systemd/system/cockpit.socket
|
|
|
|
}
|
2023-09-19 09:44:20 +00:00
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Download_Menu_Override(){
|
|
|
|
for file in "${cockpit_menu_overrides[@]}"
|
|
|
|
do
|
2023-09-22 05:38:00 +00:00
|
|
|
|
|
|
|
echo "$menu_overrides_github_page_url/$file"
|
|
|
|
|
|
|
|
curl -sSL "$menu_overrides_github_page_url/$file" | sudo tee /etc/cockpit/"$file" > /dev/null
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Failed to download files"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
done
|
2023-09-19 09:44:20 +00:00
|
|
|
}
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Edit_Menu(){
|
2023-09-22 05:38:00 +00:00
|
|
|
echo "$echo_prefix_cockpit Start to edit Cockpit origin Menu"
|
|
|
|
if [ -f "$install_path/cockpit/cockpit.conf" ]; then
|
|
|
|
cp -f "$install_path/cockpit/cockpit.conf" /etc/cockpit/cockpit.conf
|
|
|
|
else
|
|
|
|
echo "Download config file from URL..."
|
|
|
|
curl -sSL $cockpit_config_github_page_url | sudo tee /etc/cockpit/cockpit.conf > /dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test -d "$install_path/cockpit/menu_override"; then
|
|
|
|
cp -r $install_path/cockpit/menu_override/* /etc/cockpit
|
|
|
|
else
|
|
|
|
echo "Download override files from URL..."
|
|
|
|
Download_Menu_Override
|
|
|
|
fi
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
sudo rm -rf /usr/share/cockpit/{$cockpit_plugin_delete}
|
2023-09-22 05:38:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Upgrade_Cockpit(){
|
|
|
|
echo "$echo_prefix_cockpit Prepare to upgrade Cockpit"
|
|
|
|
output=$(sudo pkcon update $cockpit_packages -y 2>&1)
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Cockpit upgrade failed or not need upgrade..."
|
|
|
|
else
|
|
|
|
echo "$output"
|
|
|
|
fi
|
2023-09-21 10:15:19 +00:00
|
|
|
}
|
2023-09-19 09:44:20 +00:00
|
|
|
|
2023-09-20 11:37:12 +00:00
|
|
|
Install_Cockpit(){
|
2023-09-22 05:38:00 +00:00
|
|
|
|
|
|
|
sudo pkcon refresh > /dev/null
|
|
|
|
sudo pkcon get-updates > /dev/null
|
|
|
|
|
|
|
|
if systemctl is-active --quiet cockpit; then
|
|
|
|
Upgrade_Cockpit
|
|
|
|
Restart_Cockpit
|
|
|
|
else
|
|
|
|
echo "$echo_prefix_cockpit Prepare to install Cockpit"
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
sudo pkcon install $cockpit_packages -y
|
|
|
|
Restart_Cockpit
|
|
|
|
fi
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Set_Firewall
|
|
|
|
Set_Cockpit
|
|
|
|
Edit_Menu
|
2023-09-22 05:38:00 +00:00
|
|
|
Restart_Cockpit
|
2023-09-19 11:55:23 +00:00
|
|
|
}
|
|
|
|
|
2023-09-22 05:38:00 +00:00
|
|
|
|
|
|
|
#### -------------- main() start here ------------------- ####
|
|
|
|
|
2023-09-21 10:15:19 +00:00
|
|
|
Install_PackageKit
|
2023-09-22 05:38:00 +00:00
|
|
|
Install_Cockpit
|
|
|
|
|
|
|
|
# release package memory
|
|
|
|
sudo systemctl restart packagekit.service
|