[Help me] Einfaches Bashskript - Java8 oracle Installation

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von rendegast » 17.11.2018 13:51:12

Es gäbe immer noch das seit 2016-09 nicht mehr angepaßte Debianjava-package 0.62,
das (nominell bis java8) ein deb aus dem oracle.tar baut.

Das dann ab ins eigene, lokale Repo.
Zuletzt geändert von rendegast am 17.11.2018 13:57:31, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 13:57:06

willy4711 hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:23:56
Mit sudo kann man also innerhalb dieses Zeitraums alles machen, es sei denn, man schreibt eine endlos lange /etc/sodoers, in der
alles geregelt ist.
… „endlos lange sudoers“ sind hier: eine Änderung für die Zeit, eine Zeile für den konkreten Befehl. Auch gerne auslagerbar in je eine eigene Datei für jeden Befehl. Mir erscheint deine polkit-Regel da erheblich länger?
willy4711 hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:49:54
Mein update-Skript, was genauso aufgebaut ist, starte ich natürlich mit einem Starter
Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:11:07

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 13:57:06
Aus ’ner Shell heraus dürfte™ es auch nicht nochmal nachfragen. Ich werd’ mir pkexec mal angucken, wenn ich Zeit dafür finde.
Wenn ich als root das skript aufrufe ----> keine Abfrage (logo)
als User ---> Abfrage (auch logo)

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 14:13:21

Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:31:17

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 14:13:21
Ja, die Frage war eher, was bei dem zweiten Aufruf aus der gleichen Shell heraus passiert.
Zweimal direkt hintereinander aus der Shell ------> Zweimal Rot- PW
Gleichzeitig mit einem anderen Skript und Tilix geht doch erst wieder , wenn mal was zum Updaten angeboten wird. :evil:
So läuft das Skript in ein Paar Sekunden durch.

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 14:40:35

Könntest einfach ’n sleep 10 reinmalen. Wird allerdings das Passwort verlangen. Ich würde also davon ausgehen, dass es die Rechte nur für die Shell vorhält, aus der heraus es das erste Mal aufgerufen wurde. Die verschwindet, sobald das Script durch ist.

willy4711

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von willy4711 » 17.11.2018 14:59:04

niemand hat geschrieben: ↑ zum Beitrag ↑
17.11.2018 14:40:35
Könntest einfach ’n sleep 10 reinmalen. Wird allerdings das Passwort verlangen. Ich würde also davon ausgehen, dass es die Rechte nur für die Shell vorhält, aus der heraus es das erste Mal aufgerufen wurde. Die verschwindet, sobald das Script durch ist.
Ist exakt so
Terminal geöffnet vorher einen Einzeiler präpariert mit

Code: Alles auswählen

#!/bin/bash

pkexec tilix -x ifconfig

exit
Mein Update Skript mit dem Starter losgeschickt
sofort nach PW--Abfrage den Einzeiler aus der Shell gestartet -----> erneute Root- PW- Abfrage.
Das erscheint mir dann in Ordnung.
Auch was gelernt dabei:
Policy-Kit ist ganz schön schlau :THX:

DeletedUserReAsG

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von DeletedUserReAsG » 17.11.2018 15:02:26

Naja … hoffentlich ist der User dann auch so schlau, das Script nur für Root editierbar, besser noch komplett immutable, zu machen. Beim Initiator dieses Threads hätte ich da meine Bedenken ;)

AptGetConfused
Beiträge: 7
Registriert: 16.11.2018 11:55:37

Re: [Help me] Einfaches Bashskript - Java8 oracle Installation

Beitrag von AptGetConfused » 26.11.2018 18:08:56

Zusammenfassend nochmal danke für die Antworten, konnte dank denen mein erstes Bashscript schreiben & verbessern und es funktioniert sogar tadellos :hail:

Wenn es jemanden interessiert, was ich nun schlussendlich damit "zusammengebastelt" habe;
Ein Haupt-Bashskript, welches nach Bestätigung verschiedene Bashskripte durchlaufen lässt und nach jedem ausgeführten Skript anzeigt, dass es durchgeführt wurde und nachfrägt, ob das nächste Skript starten soll:

(- Rootlogin aktivieren (Klaro, normalerweise sollte man mit einem User arbeiten und nicht mit dem Root))
(- vmtools Download + Installation)
- Java8 oracle Installation samt PPA (ja, wird dann im Ernstfall durch openjdk ersetzt)
- Tomcat8, Postgresql-9.6 + Postgis-2.3 Download, Installation und Konfiguration
- JDBC Treiber Download + Konfiguration
- Postgresql-Datenbank Konfiguration
- CmdBuild Download und Konfiguration

(- Konfigurationen für Openmaint)

Mein Ziel, etwas über Bashskripte dazu zu lernen, habe ich erreicht. :mrgreen:



Ausschnitte aus dem Haupt-Bashskript, die komplette Tomcat8 Installation und die CmdBuild Konfiguration:

Haupt-Bashskript

Code: Alles auswählen

#!/bin/bash

#####################################################################
#############################Begrüssung##############################
#####################################################################

tput setaf 4; read -p "
Herzlich Willkommen, wie heisst du denn? " name

#####################################################################
########################Nachfrage Bashskripte########################
#####################################################################

echo "
----------------------------------------------------------------------
Freut mich $name, ich bin der Tutti Quanti-Installer.
Damit ich alles korrekt installieren und konfigurieren kann,
müssen alle Bash-Skripte im Verzeichnis ~/Dokumente sein, dazu ghört:
1. java8_install.sh
2. tomcat8andpostgresql_install.sh
3. tomcat8_configuration.sh
4. driver_install.sh
5. cmdbuild_setup.sh

Falls noch nicht alle Skripts im Verzeichnis sind:
Drücke n um das Programm zu verlassen und hole dies nach.

Falls alle Skripts im Verzeichnis sind:
Drücke y um weiterzugelangen.
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
        tput setaf 1;
	echo "Die Eingabe ist n. Das Programm wird beendet..."
        tput setaf 0;
	sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
	sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig, der Installer wird neu gestartet."
        tput setaf 0;
        sleep 3
        bash ~/Dokumente/FromBeginToEnd.sh
fi
echo "OK, es geht weiter..."
sleep 5

#####################################################################
#######################Bestätigung Installation######################
#####################################################################
tput setaf 6; read -p "
----------------------------------------------------------------------
Tutti Quanti-Installer: Hoi $name, dafür benötigst du Administrator-Rechte.
 
Willst du fortfahren und damit entweder ein Frankendebian erstellen,
das System ganz in die Knie zwingen oder auf gut Glück nur alles drum und dran installieren? 

Dann bestätige jetzt mit y um das System einkrachen zu lassen oder n um zum sicheren Hafen zurück zu rudern. 
----------------------------------------------------------------------
y/n: " answer

case "$answer" in
   Yes|yes|Y|y|"") 
      tput setaf 2; echo "
Okay, du bist echt mutig. Selbstzerstörung in 3... 2... 1... ach keinen Quatsch, los geht's"
      sleep 3
      tput setaf 0;
      ;;
   No|no|N|n) 
      tput setaf 1; echo "
Ganz weise entschieden, gaaanz weise. Aber es wurde tutti quanti nicht installiert."
      tput setaf 0;
      sleep 3
      exit 1
      ;;
   *)
      tput setaf 3; echo "
Bist du zu unfähig, um Yes oder No zu schrieben? Der Installer wird neu gestartet, versuche es erneut!" 
      tput setaf 0;
      sleep 3
      bash ~/Dokumente/FromBeginToEnd.sh
      ;;
esac
#####################################################################
######################Java8 Oracle Installation######################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, jetzt mit dem Java8 Oracle-Setup beginnen?

y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
        tput setaf 3;
	echo "Die Eingabe ist x. Das Programm wird beendet..."
        tput setaf 0;
        sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
        sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig. Das Programm wird beendet."
        tput setaf 0;
        sleep 3
        exit 1
fi
echo "Installation von Java8 Oracle beginnt jetzt..."
sleep 3;
bash ~/Dokumente/java8_install.sh
echo "Fertig!"
#####################################################################
####################Tomcat8+Postgres installation####################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, das Setup von Java8 Oracle wurde abgeschlossen, jetzt mit dem Tomcat8- und Postgres-Setup beginnen?

y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
        tput setaf 3;
	echo "Die Eingabe ist n. Das Programm wird beendet..."
        tput setaf 0;
        sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
	sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig. Das Programm wird beendet."
        tput setaf 0;
        sleep 3
        exit 1
fi
echo "Installation von Tomcat8 und Postgres beginnt jetzt..."
sleep 3;
bash ~/Dokumente/tomcat8andpostgresql_install.sh
echo "Fertig!"
#####################################################################
########################Konfiguration Tomcat8########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, das Setup von Tomcat8 und Postgres wurde abgeschlossen, jetzt mit der Tomcat8-Konfiguration beginnen?

y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
        tput setaf 3;
	echo "Die Eingabe ist n. Das Programm wird beendet..."
        tput setaf 0;
	sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
	sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig. Das Programm wird beendet."
        tput setaf 0;
        sleep 3
        exit 1
fi
echo "Konfiguration von Tomcat8 beginnt jetzt..."
sleep 3;
bash ~/Dokumente/tomcat8_configuration.sh
echo "Fertig!"
#####################################################################
########################Treiber Installation#########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, die Konfiguration von Tomcat8 wurde abgeschlossen, jetzt mit der Installation des JDBC-Treibers beginnen?

y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "x/y: " A
if [ "$A" == "n" ];then
        tput setaf 3;
	echo "Die Eingabe ist n. Das Programm wird beendet..."
        tput setaf 0;
	sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
	sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig. Das Programm wird beendet."
        tput setaf 0;
        sleep 3
        exit 1
fi
echo "Installation von JDBC Treiber beginnt jetzt..."
sleep 3;
bash ~/Dokumente/driver_install.sh
echo "Fertig!"
#####################################################################
########################cmdbuild Installation########################
#####################################################################
echo "
----------------------------------------------------------------------
Hey $name, die Installation des JDBC-Treibers wurde abgeschlossen, jetzt mit CmdBuild-Setup beginnen?

y= ja, n oder sonstige Eingabe= Exit
----------------------------------------------------------------------
"
read -p "n/y: " A
if [ "$A" == "n" ];then
        tput setaf 3;
	echo "Die Eingabe ist n. Das Programm wird beendet..."
        tput setaf 0;
	sleep 3
        exit 1
elif [ "$A" == "y" ];then
        tput setaf 2;
	echo "Die Eingabe ist y"
	tput setaf 0;
	sleep 3
else
        tput setaf 3;
	echo "Die Eingabe ist ungültig. Das Programm wird beendet."
        tput setaf 0;
        sleep 3
        exit 1
fi
echo "Setup von CmdBuild beginnt jetzt..."
sleep 3;
bash ~/Dokumente/cmdbuild_setup.sh
echo "Fertig! Es wurden nun alle bash-scripts ausgeführt und die Applikationen sollten laufen. 
Nun sollte der restliche Teil nach Anleitung (ab Kapitel 7.4) manuell konfiguriert werden.

Link zum tomcat8-Webinterface:			 http://HOSTNAME:8080
Link zum tomcat8-Webinterface-Manager:		 http://HOSTNAME:8080/manager/html"
sleep 3
######################################################################
#################################Ende#################################
######################################################################
Tomcat8-Installation und Konfiguration

Code: Alles auswählen

#!/bin/bash
#stoppe tomcat8 dienste
systemctl stop tomcat8
#erstelle shared, classes, common und server-Ordner
mkdir /var/lib/tomcat8/server/
mkdir /var/lib/tomcat8/server/classes
mkdir /var/lib/tomcat8/shared
mkdir /var/lib/tomcat8/shared/classes
mkdir /usr/share/tomcat8/common
mkdir /usr/share/tomcat8/common/classes
mkdir /usr/share/tomcat8/server
mkdir /usr/share/tomcat8/server/classes
#edit /etc/default/tomcat8
apt-get install -y --allow-unauthenticated ed
ed /etc/default/tomcat8 <<EOF
/^TOMCAT8_USER
s/tomcat8/root
/^#JAVA_HOME
s/#JAVA_HOME/JAVA_HOME
/^JAVA_HOME
s/java-8-openjdk/java-8-oracle
/^JAVA_OPTS
s/-XX:+UseConcMarkSweepGC"/-XX:+UseConcMarkSweepGC -Xms128m -Xmx1024m"
/^#LOGFILE_DAYS
s/#LOGFILE_DAYS=14/LOGFILE_DAYS=14
wq
EOF
#edit /etc/tomcat8/tomcat-users
ed /etc/tomcat8/tomcat-users.xml <<EOF
$
c
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="manager-gui, admin-gui"/>
</tomcat-users>
.
wq
EOF
CmdBuild konfiguration

Code: Alles auswählen

#!/bin/bash
#tomcat8 ausschalten
systemctl stop tomcat8
#cmdbuild herunterladen, entzippen und in /usr/share/tomcat8/lib/ einfuegen
wget https://downloads.sourceforge.net/project/cmdbuild/2.5.1/cmdbuild-2.5.1.zip
unzip cmdbuild-2.5.1.zip
cp cmdbuild-2.5.1/extras/tomcat-libs/6.0\ or\ higher/postgresql-9.4.1207.jar /usr/share/tomcat8/lib/
#openmaint herunterladen, entzippen, aufteilen und in /var/lib/tomcat8/webapps/ einfuegen
wget https://sourceforge.net/projects/openmaint/files/1.1/Core%20updates/openmaint-1.1-2.5.1.zip
unzip openmaint-1.1-2.5.1.zip
mkdir shark; ( cd shark; jar -xf ../cmdbuild-shark-server-openmaint-2.5.1.war )
mkdir openmaint; ( cd openmaint; jar -xf ../cmdbuild-openmaint-2.5.1.war )
mv shark openmaint /var/lib/tomcat8/webapps/
#URL bei /var/lib/tomcat8/webapps/shark/META-INF/context.xml korrigieren
ed /var/lib/tomcat8/webapps/shark/META-INF/context.xml <<EOF
/url
s/\${cmdbuild}/openmaint
wq
EOF
#tomcat8 neustarten
systemctl stop tomcat8
systemctl start tomcat8
#/var/lib/tomcat8/webapps/shark/conf/Shark.conf anpassen; url openmaint;user postgres;pw postgres
ed /var/lib/tomcat8/webapps/shark/conf/Shark.conf <<EOF
/^org.cmdbuild.ws.url
c
org.cmdbuild.ws.url=http://localhost:8080/openmaint/
.
/cmdbuild.ws.username
s/workflow/postgres
/cmdbuild.ws.password
s/changeme/postgres
wq
EOF
#userrollen postgres und shark erstellen
su - postgres -c psql <<EOF
alter role postgres password 'postgres' login;
create role shark password 'shark' login;
EOF
#Logdateien von tomcat8 löschen
rm -rf /var/log/tomcat8/*
Wenn jetzt jemand denkt "wth steht da?", bitte SOFORT RAUSBRÜLLEN, wenn ich noch was dazulernen darf, nur zu.

Antworten