This commit is contained in:
Darren 2023-09-28 17:31:16 +08:00 committed by GitHub
parent 177cd076c2
commit 0ab5559573
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 89 additions and 85 deletions

View file

@ -39,12 +39,12 @@ You can see the sceenshoots below:
You should have root privileges user to install or upgrade Websoft9, if you use no-root user you can `sudo su` for it
```
# install by default
# Install by default
curl https://websoft9.github.io/websoft9/install/install.sh | bash
# install Websoft9 development version and install path at /data/websoft9/source
wget https://websoft9.github.io/websoft9/install/install.sh && bash install.sh --port 9000 --channel dev --path "/data/websoft9/source"
# Install Websoft9 special version by development artifact and install path at /data/websoft9/source ...
wget https://websoft9.github.io/websoft9/install/install.sh && bash install.sh --port 9000 --channel dev --path "/data/websoft9/source" --version "0.8.25"
```
After installation, access it by: **http://Internet IP:9000** and using **Linux user** for login

View file

@ -19,6 +19,6 @@ Developer should improve these codes:
- Install and Upgrade Cockpit: */install/install_cockpit.sh*
- Override the default menus: */cockpit/menu_override*
> shell.override.json is used for Top menu of Cockpit
> shell.override.json is used for Top menu of Cockpit。Override function until Cockpit 297
- Cockipt configuration file: */cockpit/cockpit.conf*

View file

@ -8,31 +8,31 @@ export PATH
# Command-line options
# ==============================================================================
#
# --force <y|n>
# Use the --force option to ignore all interactive choices. default is n, for example:
# --version
# Use the --version option to install a special version for installation. default is latest, for example:
#
# $ sudo sh install.sh --force n
# $ sudo bash install.sh --version "0.8.25"
#
# --port <9000>
# Use the --port option to set Websoft9 cosole port. default is 9000, for example:
#
# $ sudo sh install.sh --port 9001
# $ sudo bash install.sh --port 9001
#
# --channel <release|dev>
# Use the --channel option to install a release(production) or dev distribution. default is release, for example:
#
# $ sudo sh install.sh --channel release
# $ sudo bash install.sh --channel release
#
# --path
# Use the --path option to for installation path for example:
#
# $ sudo sh install.sh --path "/data/websoft9/source"
# $ sudo bash install.sh --path "/data/websoft9/source"
#
# ==============================================================================
# 设置参数的默认值
force="n"
version="latest"
port="9000"
channel="release"
path="/data/websoft9/source"
@ -40,8 +40,8 @@ path="/data/websoft9/source"
# 获取参数值
while [[ $# -gt 0 ]]; do
case $1 in
--force)
force="$2"
--version)
version="$2"
shift 2
;;
--port)
@ -64,7 +64,7 @@ done
# 输出参数值
echo "Your installation parameters are as follows: "
echo "--force: $force"
echo "--version: $version"
echo "--port: $port"
echo "--channel: $channel"
echo "--path: $path"
@ -75,11 +75,11 @@ echo "--path: $path"
export http_port=80
export https_port=443
export cockpit_port=$port
export force_install=$force
export install_path=$path
export channel
export version
export systemd_path="/opt/websoft9/systemd"
export source_zip="websoft9-latest.zip"
export source_zip="websoft9-$version.zip"
export source_unzip="websoft9"
export source_github_pages="https://websoft9.github.io/websoft9"
export tools_yum="git curl wget yum-utils jq bc unzip"
@ -123,7 +123,7 @@ download_source() {
echo_prefix_source=$'\n[Dowload Source] - '
echo "$echo_prefix_source Download Websoft9 source code from $artifact_url/$source_zip"
rm -rf websoft9-latest.zip*
find . -type f -name "websoft9*.zip*" -exec rm -f {} \;
if [ -d "$install_path" ]; then
echo "Directory $install_path already exists and installation will cover it."
else

View file

@ -7,6 +7,7 @@ export PATH
## This script is used for install or upgrade Cockpit on Linux
## Cockpit build at redhat family: https://copr.fedorainfracloud.org/coprs/g/cockpit/cockpit-preview/monitor/
## Cockpit reposoitory list: https://pkgs.org/download/cockpit
## PackageKit: https://www.freedesktop.org/software/PackageKit/
## Not use pkcon install/update cockpit, the reason is: https://cockpit-project.org/faq.html#error-message-about-being-offline
## pkcon can read repositories at you system directly, it don't provide exra repository
@ -102,13 +103,7 @@ check_ports() {
}
Print_Version(){
if command -v apt >/dev/null; then
apt show cockpit | head -n 15
else
yum info cockpit || dnf info cockpit
fi
sudo /usr/libexec/cockpit-ws --version 2>/dev/null || sudo /usr/lib/cockpit-ws --version 2>/dev/null
}
Install_PackageKit(){
@ -121,14 +116,14 @@ Install_PackageKit(){
if [ "$(cat /etc/redhat-release)" = "Redhat7" ]; then
sudo subscription-manager repos --enable rhel-7-server-extras-rpms
fi
sudo yum install PackageKit
sudo yum install PackageKit -y
elif command -v dnf &> /dev/null; then
sudo dnf install PackageKit
sudo dnf install PackageKit -y
elif command -v apt &> /dev/null; then
sudo apt update
sudo apt install packagekit
sudo apt install packagekit -y
else
echo "PackageKit not found, Cockpit cannot be installed"
@ -154,7 +149,7 @@ Restart_Cockpit(){
echo "$echo_prefix_cockpit Restart Cockpit"
sudo systemctl daemon-reload
sudo systemctl restart cockpit
sudo systemctl restart cockpit.socket
sudo systemctl restart cockpit.socket 2> /dev/null
}
Set_Firewall(){
@ -290,12 +285,22 @@ Test_Cockpit(){
echo "$echo_prefix_cockpit Test Cockpit console accessibility"
test_cmd="curl localhost:$cockpit_port"
start_time=$(date +%s)
timeout=30
while true; do
if $test_cmd >/dev/null 2>&1; then
echo "Cockpit running OK..."
break
else
echo "Cockpit is not running..."
current_time=$(date +%s)
elapsed_time=$(($current_time - $start_time))
if [ $elapsed_time -ge $timeout ]; then
echo "Cockpit is not running... Timeout after waiting $timeout seconds."
exit 1
fi
sleep 1
fi
done
Print_Version
}

View file

@ -5,29 +5,25 @@ export PATH
# Install and Upgade Docker for mosts of Linux
# This script is intended from https://get.docker.com and add below:
#
# - remove Podman
# - install or update Docker
# - support Redhat, CentOS-Stream, OracleLinux, AmazonLinux
#
# 1. download the script
#
# $ curl -fsSL https://websoft9.github.io/websoft9/install/install-docker.sh -o install-docker.sh
# $ curl -fsSL https://websoft9.github.io/websoft9/install/install_docker.sh -o install_docker.sh
#
# 2. verify the script's content
#
# $ cat install-docker.sh
# $ cat install_docker.sh
#
# 3. run the script with --dry-run to verify the steps it executes
#
# $ sh install-docker.sh --dry-run
# $ sh install_docker.sh --dry-run
#
# 4. run the script either as root, or using sudo to perform the installation.
#
# $ sudo sh install-docker.sh
# $ sudo sh install_docker.sh
############################################################
# Below vars export from install.sh
# $force_install
############################################################
docker_packages="docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"
@ -45,18 +41,21 @@ is_apt_locked(){
docker_exist() {
# 检查 `docker` 命令是否存在
if ! command -v docker &> /dev/null; then
echo "false"
echo "docker command not exist"
return 1
fi
# 检查 Docker 服务是否存在
systemctl status docker &> /dev/null
# 检查 Docker 服务是否正在运行
systemctl is-active docker.service &> /dev/null
if [ $? -ne 0 ]; then
echo "false"
echo "Docker service is not running, trying to start it..."
systemctl start docker.service
if [ $? -ne 0 ]; then
echo "Failed to start Docker service."
return 1
fi
fi
echo "true"
return 0
}
@ -90,7 +89,7 @@ Install_Docker(){
Upgrade_Docker(){
if eval "$docker_exist"; then
if docker_exist; then
echo "$echo_prefix_docker Upgrading Docker for your system..."
dnf --version >/dev/null 2>&1
dnf_status=$?
@ -113,30 +112,10 @@ else
fi
}
Remove_Podman(){
echo "$echo_prefix_docker Try to remove Podman"
podman pod stop --all
# Remove Podman and its dependencies
if [ -x "$(command -v dnf)" ]; then
sudo dnf remove podman -y
elif [ -x "$(command -v apt)" ]; then
sudo apt remove podman -y
elif [ -x "$(command -v zypper)" ]; then
sudo zypper remove podman -y
elif [ -x "$(command -v pacman)" ]; then
sudo pacman -Rs podman --noconfirm
else
echo "Unable to find a suitable package manager to remove Podman."
exit 1
fi
echo "Podman has been stopped and removed."
}
Set_Docker(){
# should have Docker server and Docker cli
if eval $docker_exist; then
if docker_exist; then
echo "$echo_prefix_docker Starting to Set docker..."
sudo systemctl enable docker
sudo systemctl restart docker
@ -144,23 +123,10 @@ if eval $docker_exist; then
sudo docker network create websoft9
fi
else
echo "Docker no installed, exit..."
echo "Docker settings failed, exit..."
exit
fi
}
## This Script starting here ....................................
if command -v podman &> /dev/null; then
if [ "$force_install" = "y" ]; then
Remove_Podman
else
read -p "Install Websoft9 will remove Podman and Install Docker for continue(y/n): " answer
if [ "$answer" = "y" ]; then
Remove_Podman
fi
fi
fi
Upgrade_Docker
Set_Docker

26
install/install_podman.sh Normal file
View file

@ -0,0 +1,26 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# to do
Remove_Podman(){
echo "$echo_prefix_docker Try to remove Podman"
podman pod stop --all
# Remove Podman and its dependencies
if [ -x "$(command -v dnf)" ]; then
sudo dnf remove podman -y
elif [ -x "$(command -v apt)" ]; then
sudo apt remove podman -y
elif [ -x "$(command -v zypper)" ]; then
sudo zypper remove podman -y
elif [ -x "$(command -v pacman)" ]; then
sudo pacman -Rs podman --noconfirm
else
echo "Unable to find a suitable package manager to remove Podman."
exit 1
fi
echo "Podman has been stopped and removed."
}

View file

@ -23,6 +23,11 @@
"8",
"7"
],
"Oracle Linux": [
"9",
"8",
"7"
],
"Rocky": [
"9",
"8"
@ -32,10 +37,12 @@
"8"
],
"Debian": [
"12",
"11",
"10"
],
"Ubuntu": [
"23.04",
"22.04",
"20.04",
"18.04"