129 lines
3.8 KiB
Bash
Executable File
129 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Farben für die Ausgabe
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Funktion zur Überprüfung des Linux-Derivats
|
|
check_distro() {
|
|
if [ -f /etc/debian_version ]; then
|
|
echo "Debian/Ubuntu erkannt."
|
|
DISTRO="debian"
|
|
elif [ -f /etc/redhat-release ]; then
|
|
echo "RedHat/CentOS erkannt."
|
|
DISTRO="redhat"
|
|
else
|
|
echo -e "${RED}Unbekanntes Linux-Derivat. Das Skript unterstützt nur Debian/Ubuntu und RedHat/CentOS.${NC}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Funktion zur Installation von Openfire auf Debian/Ubuntu
|
|
install_openfire_debian() {
|
|
echo -e "${GREEN}Installation von Openfire auf Debian/Ubuntu...${NC}"
|
|
wget -O openfire.deb https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.6.0_all.deb
|
|
sudo dpkg -i openfire.deb
|
|
sudo apt-get install -f -y # Um Abhängigkeiten zu installieren
|
|
sudo systemctl enable openfire
|
|
sudo systemctl start openfire
|
|
}
|
|
|
|
# Funktion zur Installation von Openfire auf RedHat/CentOS
|
|
install_openfire_redhat() {
|
|
echo -e "${GREEN}Installation von Openfire auf RedHat/CentOS...${NC}"
|
|
wget -O openfire.rpm https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.6.0-1.noarch.rpm
|
|
sudo yum install -y openfire.rpm
|
|
sudo systemctl enable openfire
|
|
sudo systemctl start openfire
|
|
}
|
|
|
|
# Funktion zur Konfiguration als Publisher
|
|
configure_publisher() {
|
|
echo -e "${GREEN}Konfiguration als Publisher...${NC}"
|
|
read -p "Geben Sie die JID des Publishers ein (z.B. publisher@deinserver.com): " PUBLISHER_JID
|
|
read -sp "Geben Sie das Passwort des Publishers ein: " PUBLISHER_PASSWORD
|
|
echo ""
|
|
read -p "Geben Sie den PubSub-Server ein (z.B. pubsub.deinserver.com): " PUBSUB_SERVER
|
|
read -p "Geben Sie den PubSub-Node ein (z.B. mynode): " PUBSUB_NODE
|
|
|
|
# Erstelle ein Bash-Skript für den Publisher
|
|
cat <<EOL > publisher.sh
|
|
#!/bin/bash
|
|
|
|
JID="$PUBLISHER_JID"
|
|
PASSWORD="$PUBLISHER_PASSWORD"
|
|
SERVER="$PUBSUB_SERVER"
|
|
NODE="$PUBSUB_NODE"
|
|
MESSAGE="Dies ist eine Testnachricht vom Publisher"
|
|
|
|
echo "\$MESSAGE" | sendxmpp -t -u "\$JID" -p "\$PASSWORD" -j "\$SERVER" "\$NODE"
|
|
EOL
|
|
|
|
chmod +x publisher.sh
|
|
echo -e "${GREEN}Publisher-Skript 'publisher.sh' erstellt.${NC}"
|
|
}
|
|
|
|
# Funktion zur Konfiguration als Subscriber
|
|
configure_subscriber() {
|
|
echo -e "${GREEN}Konfiguration als Subscriber...${NC}"
|
|
read -p "Geben Sie die JID des Subscribers ein (z.B. subscriber@deinserver.com): " SUBSCRIBER_JID
|
|
read -sp "Geben Sie das Passwort des Subscribers ein: " SUBSCRIBER_PASSWORD
|
|
echo ""
|
|
read -p "Geben Sie den PubSub-Server ein (z.B. pubsub.deinserver.com): " PUBSUB_SERVER
|
|
read -p "Geben Sie den PubSub-Node ein (z.B. mynode): " PUBSUB_NODE
|
|
|
|
# Erstelle ein Bash-Skript für den Subscriber
|
|
cat <<EOL > subscriber.sh
|
|
#!/bin/bash
|
|
|
|
JID="$SUBSCRIBER_JID"
|
|
PASSWORD="$SUBSCRIBER_PASSWORD"
|
|
SERVER="$PUBSUB_SERVER"
|
|
NODE="$PUBSUB_NODE"
|
|
|
|
profanity --server "\$SERVER" --username "\$JID" --password "\$PASSWORD" --join "\$NODE"
|
|
EOL
|
|
|
|
chmod +x subscriber.sh
|
|
echo -e "${GREEN}Subscriber-Skript 'subscriber.sh' erstellt.${NC}"
|
|
}
|
|
|
|
# Auswahlmenü für die Konfiguration
|
|
show_menu() {
|
|
echo -e "${GREEN}Openfire wurde erfolgreich installiert!${NC}"
|
|
echo "Wählen Sie die gewünschte Rolle:"
|
|
echo "1) Publisher konfigurieren"
|
|
echo "2) Subscriber konfigurieren"
|
|
echo "3) Abbrechen"
|
|
|
|
read -p "Option [1-3]: " OPTION
|
|
case $OPTION in
|
|
1)
|
|
configure_publisher
|
|
;;
|
|
2)
|
|
configure_subscriber
|
|
;;
|
|
3)
|
|
echo -e "${RED}Abbruch.${NC}"
|
|
exit 1
|
|
;;
|
|
*)
|
|
echo -e "${RED}Ungültige Option.${NC}"
|
|
show_menu
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# Hauptskript
|
|
check_distro
|
|
|
|
if [ "$DISTRO" == "debian" ]; then
|
|
install_openfire_debian
|
|
elif [ "$DISTRO" == "redhat" ]; then
|
|
install_openfire_redhat
|
|
fi
|
|
|
|
show_menu
|