Fedora working

Modifying centos systemd
Adding %postun to rpm
Modifying postun deb
Centos working
This commit is contained in:
AxyFr 2023-01-25 11:17:58 +01:00
parent b85e6ee6b8
commit d83d3aa3d9
9 changed files with 183 additions and 97 deletions

View File

@ -22,7 +22,7 @@ RUN mkdir -p /usr/share/bunkerweb/deps && \
# Nginx
COPY src/linux/nginx.repo /etc/yum.repos.d/nginx.repo
RUN dnf install yum-utils -y && \
RUN dnf install yum-utils redhat-lsb-core -y && \
dnf install nginx-1.22.1 -y
# Compile and install dependencies

View File

@ -8,5 +8,5 @@
--url "https://www.bunkerweb.io"
--maintainer "Bunkerity <contact at bunkerity dot com>"
--after-install /usr/share/bunkerweb/scripts/postinstall.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemove.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemoveRPM.sh
/usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt

View File

@ -8,5 +8,5 @@
--url "https://www.bunkerweb.io"
--maintainer "Bunkerity <contact at bunkerity dot com>"
--after-install /usr/share/bunkerweb/scripts/postinstall.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemove.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemoveDEB.sh
/usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt

View File

@ -8,5 +8,5 @@
--url "https://www.bunkerweb.io"
--maintainer "Bunkerity <contact at bunkerity dot com>"
--after-install /usr/share/bunkerweb/scripts/postinstall.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemove.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemoveRPM.sh
/usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt

View File

@ -7,6 +7,6 @@
--url "https://www.bunkerweb.io"
--maintainer "Bunkerity <contact at bunkerity dot com>"
--after-install /usr/share/bunkerweb/scripts/postinstall.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemove.sh
--after-remove /usr/share/bunkerweb/scripts/afterRemoveDEB.sh
--deb-no-default-config-files
/usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt

View File

@ -0,0 +1,121 @@
#!/bin/bash
# Function to run a command and check its return code
function do_and_check_cmd() {
output=$("$@" 2>&1)
ret="$?"
if [ $ret -ne 0 ] ; then
echo "❌ Error from command : $*"
echo "$output"
exit $ret
else
echo "✔️ Success: $*"
echo "$output"
fi
return 0
}
function reload_systemd() {
do_and_check_cmd systemctl daemon-reload
do_and_check_cmd systemctl reset-failed
}
# remove a systemd service
function remove_systemd_service {
service=$1
service_file="/lib/systemd/system/$service.service"
echo "checking service $service with $service_file file "
if [ -f "$service_file" ]; then
echo " Remove $service service"
do_and_check_cmd systemctl stop $service
do_and_check_cmd systemctl disable $service
do_and_check_cmd rm -f "$service_file"
reload_systemd
else
echo "$service_file not found"
fi
}
function remove {
echo "Package is being uninstalled"
# Stop nginx
if systemctl is-active nginx; then
echo " Stop nginx service"
do_and_check_cmd systemctl stop nginx
fi
remove_systemd_service "bunkerweb"
remove_systemd_service "bunkerweb-ui"
# Remove /usr/share/bunkerweb
if test -e "/usr/share/bunkerweb"; then
echo " Remove /usr/share/bunkerweb"
do_and_check_cmd rm -rf /usr/share/bunkerweb
fi
# Remove /etc/bunkerweb
if test -e "/var/tmp/bunkerweb"; then
echo " Remove /var/tmp/bunkerweb"
do_and_check_cmd rm -rf /var/tmp/bunkerweb
fi
# Remove /var/lib/bunkerweb
if test -e "/var/cache/bunkerweb"; then
echo " Remove /var/cache/bunkerweb"
do_and_check_cmd rm -rf /var/cache/bunkerweb
fi
# Remove /usr/bin/bwcli
if test -f "/usr/bin/bwcli"; then
echo " Remove /usr/bin/bwcli"
do_and_check_cmd rm -f /usr/bin/bwcli
fi
echo " BunkerWeb successfully uninstalled"
}
function purge() {
echo "Package is being purged"
remove
# Remove /var/lib/bunkerweb
if test -e "/var/lib/bunkerweb"; then
echo " Remove /var/lib/bunkerweb"
do_and_check_cmd rm -rf /var/lib/bunkerweb
fi
# Remove /var/tmp/bunkerweb/variables.env
if test -d "/etc/bunkerweb"; then
echo " Remove /etc/bunkerweb"
do_and_check_cmd rm -rf /etc/bunkerweb
fi
echo " BunkerWeb successfully purged"
}
# Check if we are root
if [ $(id -u) -ne 0 ] ; then
echo "❌ Run me as root"
exit 1
fi
# Detect OS
OS=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
if ! [[ "$OS" =~ (debian|ubuntu|centos|fedora) ]]; then
echo "❌ Unsupported Operating System"
exit 1
fi
# Check if the package is being upgraded or uninstalled
if [ "$1" = "0" ]; then
# Call the remove function
remove
purge
elif [ "$1" = "1" ]; then
# Call the purge function
echo "Package is being upgraded"
else
echo "Error"
exit 0
fi

View File

@ -1,7 +1,5 @@
FROM quay.io/centos/centos:stream8
RUN yum install -y initscripts # for old "service"
ENV container=docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
@ -13,13 +11,8 @@ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
COPY linux/nginx.repo /etc/yum.repos.d/nginx.repo
RUN dnf -y install sudo
RUN dnf install php-fpm curl yum-utils epel-release -y && \
dnf install nginx-1.20.2 -y
VOLUME [/sys/fs/cgroup]
COPY ./packages/centos/*.rpm /opt
VOLUME /run /tmp
CMD /usr/sbin/init
CMD ["/usr/sbin/init"]

View File

@ -28,8 +28,8 @@ if distro == "ubuntu":
with tempfile.NamedTemporaryFile(mode='w') as f:
f.write(bash_script)
f.flush()
subprocess.run(["docker", "cp", f.name, "systemd-ubuntu:/tmp/install_nginx.sh"])
result = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "/tmp/install_nginx.sh"])
subprocess.run(["docker", "cp", f.name, "systemd-ubuntu:/data/install_nginx.sh"])
result = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "/data/install_nginx.sh"])
if result.returncode != 0:
bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "-c", "systemctl status bunkerweb.service"], capture_output=True)
print("Logs from bunkerweb:", bunkerweb_logs.stdout.decode())
@ -107,11 +107,10 @@ if distro == "ubuntu":
print("❌ /usr/bin/bwcli found.")
#Checking Removing test
try:
if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"):
test_results["Removing test"] = "OK"
else:
if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"):
test_results["Removing test"] = "KO"
sys.exit(1)
else:
test_results["Removing test"] = "OK"
except:
test_results["Removing test"] = "KO"
@ -132,10 +131,10 @@ if distro == "ubuntu":
print("❌ /etc/bunkerweb found.")
#Checking Purging test
try:
if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"):
test_results["Purging test"] = "OK"
else:
if os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"):
test_results["Purging test"] = "KO"
else:
test_results["Purging test"] = "OK"
except:
test_results["Purging test"] = "KO"
@ -275,7 +274,7 @@ elif distro == "debian":
print("❌ /usr/bin/bwcli found.")
#Checking Removing test
try:
if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"):
if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"):
test_results["Removing test"] = "OK"
else:
test_results["Removing test"] = "KO"
@ -299,7 +298,7 @@ elif distro == "debian":
print("❌ /etc/bunkerweb found.")
#Checking Purging test
try:
if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"):
if os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"):
test_results["Purging test"] = "OK"
else:
test_results["Purging test"] = "KO"
@ -341,7 +340,7 @@ elif distro == "debian":
sys.exit(1)
elif distro == "fedora":
test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Purging test": None, "Upgrading test": None}
test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Upgrading test": None}
subprocess.run(["docker", "build", "-t", "fedora-image", "-f", "src/linux/Dockerfile-fedora", "."])
subprocess.run(["docker", "run", "-it", "--name", "fedora-container", "-v", "deb:/data", "fedora-image"])
subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "jrei/systemd-fedora"])
@ -391,13 +390,11 @@ elif distro == "fedora":
if bunkerweb_state.stdout.decode().strip() != "active":
bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "journalctl -u bunkerweb.service"], capture_output=True)
print("❌ bunkerweb.service is not running. Logs:", bunkerweb_logs.stdout.decode())
sys.exit(1)
bunkerweb_ui_state = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "systemctl is-active bunkerweb-ui.service"], capture_output=True)
if bunkerweb_ui_state.stdout.decode().strip() != "active":
bunkerweb_ui_logs = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "journalctl -u bunkerweb-ui.service"], capture_output=True)
print("❌ bunkerweb-ui.service is not running. Logs:", bunkerweb_ui_logs.stdout.decode())
sys.exit(1)
else:
print("✔️ bunkerweb.service and bunkerweb-ui.service are running ✔️")
#Checking Reloading test
@ -436,47 +433,35 @@ elif distro == "fedora":
print("✔️ /usr/bin/bwcli not found.")
else:
print("❌ /usr/bin/bwcli found.")
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
print("✔️ /var/lib/bunkerweb not found.")
else:
print("❌ /var/lib/bunkerweb found.")
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /etc/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
print("✔️ /etc/bunkerweb not found.")
else:
print("❌ /etc/bunkerweb found.")
#Checking Removing test
try:
if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"):
if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli") or os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"):
test_results["Removing test"] = "KO"
else:
test_results["Removing test"] = "OK"
except:
test_results["Removing test"] = "KO"
# Purging test
print("Purging bunkerweb...")
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "dnf purge -y bunkerweb"])
result = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
print("✔️ /var/lib/bunkerweb not found.")
else:
print("❌ /var/lib/bunkerweb found.")
result = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "[ -d /etc/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
print("✔️ /etc/bunkerweb not found.")
else:
print("❌ /etc/bunkerweb found.")
#Checking Purging test
try:
if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"):
test_results["Purging test"] = "OK"
else:
test_results["Purging test"] = "KO"
except:
test_results["Purging test"] = "KO"
# Upgrading test
print("Upgrading bunkerweb...")
# Installing official package
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf remove -y nginx"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y nginx=1.20.2-1~jammy"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf update"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y bunkerweb=1.4.5"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y nginx-1.20.2"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | sudo bash"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf check-update"])
subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y bunkerweb-1.4.5"])
# Checking version
old_version = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True)
@ -504,23 +489,29 @@ elif distro == "fedora":
elif distro == "rhel":
print("RHEL not supported yet.")
elif distro == "centos":
test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Upgrading test": None}
subprocess.run(["docker", "build", "-t", "centos-image", "-f", "src/linux/Dockerfile-centos", "."])
# Building local systemd image
subprocess.run(["docker", "build", "-t", "centos", "-f", "tests/Dockerfile-centos", "."])
subprocess.run(["docker", "run", "-it", "--name", "centos-container", "-v", "deb:/data", "centos-image"])
subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "quay.io/centos/centos:stream8"])
subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "centos"])
# Installing test
print("Installing bunkerweb...")
bash_script = """
dnf install yum-utils epel-release redhat-lsb-core -y
dnf install -y nginx-1.22.1
apt install /data/bunkerweb.deb -y
dnf install /data/bunkerweb.rpm -y
"""
with tempfile.NamedTemporaryFile(mode='w') as f:
f.write(bash_script)
f.flush()
subprocess.run(["docker", "cp", f.name, "systemd-centos:/tmp/install_nginx.sh"])
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "/tmp/install_nginx.sh"])
subprocess.run(["docker", "cp", "src/linux/nginx.repo", "systemd-centos:/etc/yum.repos.d/nginx.repo"])
subprocess.run(["docker", "cp", f.name, "systemd-centos:/data/install_nginx.sh"])
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "/data/install_nginx.sh"])
if result.returncode != 0:
bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "systemctl status bunkerweb.service"], capture_output=True)
print("Logs from bunkerweb:", bunkerweb_logs.stdout.decode())
@ -553,27 +544,25 @@ elif distro == "centos":
if bunkerweb_state.stdout.decode().strip() != "active":
bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "journalctl -u bunkerweb.service"], capture_output=True)
print("❌ bunkerweb.service is not running. Logs:", bunkerweb_logs.stdout.decode())
sys.exit(1)
bunkerweb_ui_state = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "systemctl is-active bunkerweb-ui.service"], capture_output=True)
if bunkerweb_ui_state.stdout.decode().strip() != "active":
bunkerweb_ui_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "journalctl -u bunkerweb-ui.service"], capture_output=True)
print("❌ bunkerweb-ui.service is not running. Logs:", bunkerweb_ui_logs.stdout.decode())
sys.exit(1)
else:
print("✔️ bunkerweb.service and bunkerweb-ui.service are running ✔️")
#Checking Reloading test
try:
if bunkerweb_state.stdout.decode().strip() == "active":
test_results["Reloading test"] = "OK"
else:
test_results["Reloading test"] = "KO"
sys.exit(1)
except:
test_results["Reloading test"] = "KO"
sys.exit(1)
# Removing test
print("Removing bunkerweb...")
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "apt remove -y bunkerweb"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "dnf remove -y bunkerweb"])
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /usr/share/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
@ -598,20 +587,7 @@ elif distro == "centos":
print("✔️ /usr/bin/bwcli not found.")
else:
print("❌ /usr/bin/bwcli found.")
#Checking Removing test
try:
if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"):
test_results["Removing test"] = "OK"
else:
test_results["Removing test"] = "KO"
sys.exit(1)
except:
test_results["Removing test"] = "KO"
# Purging test
print("Purging bunkerweb...")
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "apt purge -y bunkerweb"])
result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True)
if result.returncode != 0:
print("✔️ /var/lib/bunkerweb not found.")
@ -623,32 +599,30 @@ elif distro == "centos":
print("✔️ /etc/bunkerweb not found.")
else:
print("❌ /etc/bunkerweb found.")
#Checking Purging test
#Checking Removing test
try:
if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"):
test_results["Purging test"] = "OK"
if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli") or os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"):
test_results["Removing test"] = "KO"
else:
test_results["Purging test"] = "KO"
sys.exit(1)
test_results["Removing test"] = "OK"
except:
test_results["Purging test"] = "KO"
sys.exit(1)
test_results["Removing test"] = "KO"
# Upgrading test
print("Upgrading bunkerweb...")
# Installing official package
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt remove -y nginx"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y nginx=1.20.2-1~jammy"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt update"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y bunkerweb=1.4.5"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf remove -y nginx"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y nginx-1.20.2"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | sudo bash"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf check-update"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y bunkerweb-1.4.5"])
# Checking version
old_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True)
old_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /opt/bunkerweb/VERSION"], capture_output=True)
print("Old version:", old_version.stdout.decode().strip())
# Upgrading package
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y /data/bunkerweb.deb"])
subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y /data/bunkerweb.rpm"])
# Checking version
new_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True)
@ -658,10 +632,8 @@ elif distro == "centos":
test_results["Upgrading test"] = "OK"
else:
test_results["Upgrading test"] = "KO"
sys.exit(1)
except:
test_results["Upgrading test"] = "KO"
sys.exit(1)
# Print summary
for key, value in test_results.items():