update README.md

This commit is contained in:
Jakobus Schürz 2020-01-15 10:44:28 +01:00
parent 197eae5d1b
commit 54b1ce0fce

View file

@ -13,24 +13,48 @@ local für jedes Repo zu konfigurieren. Die globale gitconfig für den User wird
## Installation
Damit auf einem neuen Server meine persönlichen Alias und Bash-Promt, wie auch verschiedene andere Befehle (vim in sudo mit der vimrc des Benutzers) zur Verfügung stehen, muss als erstes nach dem ersten Login folgendes ausgeführt werden:
Download von github
Clone von github
```
curl -o bashrc\_add "https://raw.githubusercontent.com/xundeenergie/myshellconfig/master/bashrc\_add"
git clone https://github.com/xundeenergie/myshellconfig.git ~/.local/myshellconfig
```
oder Download von git.schuerz.at
~/.bashrc ist am Ende um folgende Zeilen zu ergänzen
```
curl -o bashrc\_add "https://git.schuerz.at/?p=myshellconfig.git;a=blob\_plain;f=bashrc\_add;hb=HEAD"
#MYSHELLCONFIG-start
if [ -e ~/.local/myshellconfig/bashrc_add ]; then
. ~/.local/myshellconfig/bashrc_add;
else
if [ -f ~/bashrc_add ] ;then
. ~/bashrc_add;
fi;
fi
#MYSHELLCONFIG-end
```
Ausloggen und neu Einloggen.
## Lokale Configuration
in ~/.bashrc werden vor der Zeile zum Einbinden der myshellconfig die Variablen eingefügt um damit ein hostspezifisches Verhalten zu steuern
MYSHELLCONFIG\_GIT\_CHECKOUTSCRIPT\_OPTIONS=
Mögliche Optionen:
* -h
* ''
Verwendung: Damit kann man angeben, ob ein headless Repo erzeugt wird. Ohne -h folgt das Repo origin/master
Default ist die Option "-h". Soll ein normales Repo (nicht headless) verwendet werden, so MUSS die Variable so gesetzt werden
```
MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS=""
```
### Git Protokolle für push und pull
```
MYSHELLCONFIG\_GIT\_REMOTE\_PROTOCOL=git # git ist default
MYSHELLCONFIG\_GIT\_REMOTE\_PUSH\_PROTOCOL=$MYSHELLCONFIG\_GIT\_REMOTE\_PROTOCOL # MYSHELLCONFIG\_GIT\_REMOTE\_PROTOCOL ist default
```
Mögliche Optionen:
* git - (default) Gitprotokoll ist git (Auf manchen Umgebungen kann der dazu notwenidge Port gesperrt sein)
* http - wenn git nicht möglich ist, kann das http/https Protokoll verwendet werden. (ist langsamer als git, jedoch ist fast überall Port 80 oder 440 freigeschaltet)
* ssh - Wenn auch schreibend auf das Repo zugegriffen werden soll, so muss Privatekey, Pubkey (und wenn konfiguriert Certifikate mit den notwendigen Principals) vorhanden sein, dann kann das ssh-Prodokoll verwendet werden.
@ -39,21 +63,7 @@ Vim Plugins werden prinzipiell von github.com bezogen. Für spezielle Anwendungs
MYSHELLCONFIG\_VIM\_PLUGINS=https://my.git.server/public/Vim
## Einbinden von bashrc\_add in die bash
Die Default .bashrc muss am Ende um folgende Zeilen ergänzt werden:
```
vi .bashrc
# User specific aliases and function
[ -f bashrc\_add ] && . bashrc\_add
```
damit diese heruntergeladene Datei beim nächsten Login oder aufruf von bash gesourced wird.
Diese Datei clont dieses Repo nach $HOME oder pullt es, wenn das Repo schon vorhanden ist.
Damit ist auch schon alles erledigt
# Über ~/.bashrc manuell festlegbare Variablen und ihre Default-Werte, wenn nicht manuell gesetzt:
### Über ~/.bashrc manuell festlegbare Variablen und ihre Default-Werte, wenn nicht manuell gesetzt:
MYSHELLCONFIG\_SUBPATH=.local/myshellconfig
MYSHELLCONFIG\_BASE="${HOME}/${MYSHELLCONFIG\_SUBPATH}"
MYSHELLCONFIG\_LOGDIR="${MYSHELLCONFIG\_BASE}/logs"
@ -67,22 +77,16 @@ MYSHELLCONFIG\_GIT\_REPO\_PATH\_SSH=":public/"
MYSHELLCONFIG\_GIT\_REPO\_PATH\_GIT="/public/"
# Modifizierung mit Skript
Wenn das auf mehreren Hosts ausgeführt werden muss, kann man auch das in diesem Repo in bin abgelegte Skript configserver.sh verwenden.
Am besten dieses Skript nach ${HOME}/bin kopieren und ausführbar machen.
# Verteilen auf neuen Host/User
Einen neuen User auf einem anderen Host mit der selben Konfiguration versehen funktioniert folgendermaßen:
```
cp bin/configserver.sh ${HOME}/bin
chmod +x ${HOME}/bin/configserver.sh
sshmyshellconfig USER@HOST
```
und dann auf dem Host einloggen
```
ssh USER@HOST
```
es können die üblichen ssh-Optionen und Parameter verwendet werden.
Usage:
configserver.sh [<username>@]<hostname> [port] [ssh-options]
ein Hostname muss angegeben werden
Wenn kein Username angegeben wird, fragt das Skript nach einem Username. Ist der Username leer, bricht das Programm ab.
Wenn kein Port angegeben wird, wird der Standardport 22 verwendet.
Weitere ssh-Optionen sind wie in der Notation für ssh anzugeben.
z.B.: -i /path/to/private.key -o https://git.ebcont.com/jakobus.schuerz/server-config.git