README: git dazu
This commit is contained in:
parent
b611b25902
commit
5c4d0c47be
153
README.md
153
README.md
|
@ -53,3 +53,156 @@ lrwxrwxrwx 1 root root 18 Aug 17 21:58 /etc/alternatives/vim -> /usr/bin/vim.bas
|
|||
|
||||
|
||||
|
||||
## SSH-Agent
|
||||
|
||||
### SSH-Agent in einer Sitzung starten
|
||||
|
||||
```
|
||||
kurs@tn00-purple:~# eval $(ssh-agent)
|
||||
Agent pid 2720104
|
||||
```
|
||||
|
||||
### SSH-Key am Agent registrieren
|
||||
```
|
||||
kurs@tn00-purple:~# ssh-add
|
||||
Enter passphrase for /home/svelt/.ssh/id_ed25519:
|
||||
```
|
||||
|
||||
### Ein SSH-Agent in mehreren SSH-Verbindungen
|
||||
|
||||
1. SSH-Agent starten
|
||||
```
|
||||
kurs@tn00-purple:~# eval $(ssh-agent | tee ~/.ssh-agent.sh)
|
||||
SSH_AUTH_SOCK=/tmp/ssh-r4RVMmRg9KAR/agent.2720217; export SSH_AUTH_SOCK;
|
||||
SSH_AGENT_PID=2720218; export SSH_AGENT_PID;
|
||||
echo Agent pid 2720218;
|
||||
Agent pid 2720218;
|
||||
```
|
||||
2. In **jeder weiteren** SSH-Verbindung auf die VM (per copy&paste):
|
||||
- Kann für weitere Verbindungen auch später gemacht werden
|
||||
```
|
||||
kurs@tn00-purple:~# source ~/.ssh-agent.sh
|
||||
Agent pid 2720218;
|
||||
```
|
||||
3. Verbindung zum SSH-Agent mit `ssh-add -l` testen
|
||||
- "Could not connect to agent" -> Agent läuft nicht und/oder Variablen nicht gesetzt
|
||||
- "This agent has no identities" -> Verbindung zum Agent geht, Agent hat aber keine Keys
|
||||
- Key -> Verbindung zum Agent geht, Key(s) registriert und verfügbar (4. überflüssig)
|
||||
4. SSH-Key registrieren
|
||||
- nur einmal nötig
|
||||
- Variablen via Script aus 2. Schritt müssen gesetzt sein
|
||||
```
|
||||
kurs@tn00-purple:~# ssh-add
|
||||
```
|
||||
Damit könnt Ihr dann den einen Agent in allen SSH-Verbindungen zur VM nutzen.
|
||||
|
||||
### Alternative: Keychain
|
||||
|
||||
Voraussetzung: SSH-Key existiert, liegt unter (beliebigem) Namen unter `~/.ssh/`
|
||||
|
||||
1. Keychain installieren
|
||||
```
|
||||
kurs@tn00-purple:~$ apt install keychain
|
||||
```
|
||||
2. Von Hand testen
|
||||
```
|
||||
kurs@tn00-purple:~$ keychain ~/.ssh/id_ed25519
|
||||
|
||||
* keychain 2.8.5 ~ http://www.funtoo.org
|
||||
* Starting ssh-agent...
|
||||
* Adding 1 ssh key(s): /home/kurs/.ssh/id_ed25519
|
||||
Enter passphrase for /home/kurs/.ssh/id_ed25519:
|
||||
* ssh-add: Identities added: /home/kurs/.ssh/id_ed25519
|
||||
|
||||
kurs@tn00-purple:~$ ssh-add -l
|
||||
Could not open a connection to your authentication agent.
|
||||
|
||||
kurs@tn00-purple:~$ cat ~/.keychain/${HOSTNAME}-sh
|
||||
SSH_AUTH_SOCK=/tmp/ssh-pZf3VyTB4hs3/agent.1612572; export SSH_AUTH_SOCK;
|
||||
SSH_AGENT_PID=1612575; export SSH_AGENT_PID;
|
||||
|
||||
kurs@tn00-purple:~$ . ~/.keychain/${HOSTNAME}-sh
|
||||
kurs@tn00-purple:~$ ssh-add -l
|
||||
256 SHA256:9+6FWilZKB46vt/n8HX3eVggjmdt40vXclBPkggaHvM kurs@tn00-purple (ED25519)
|
||||
```
|
||||
3. In Shell automatisch starten
|
||||
```
|
||||
cat <<EOF >>.bashrc
|
||||
keychain ~/.ssh/id_ed25519
|
||||
. ~/.keychain/${HOSTNAME}-sh
|
||||
EOF
|
||||
```
|
||||
|
||||
|
||||
|
||||
## LXC
|
||||
LXC == LinuX Container
|
||||
|
||||
Mit den selben Kernel-Mechanismen ("cgroups", "IP namespaces") wie z.B. Docker wird ein - in z.B. ein Verzeichnis installiertes - Linux-System gestartet und dabei vom Hauptsystem getrennt.
|
||||
|
||||
Auf jeder VM sind ~25 LXC(ontainer) mit verschiedenen Distributionen installiert. Die Distribution sollte sich aus den Namen der Container ableiten lassen.
|
||||
|
||||
### Anzeigen der Container
|
||||
```
|
||||
root@tn00-purple:~# lxc-ls -f
|
||||
NAME STATE AUTOSTART GROUPS IPV4 IPV6 UNPRIVILEGED…
|
||||
tn00-alma8 RUNNING 1 ansible 192.168.1.138 - false
|
||||
tn00-alpine3b RUNNING 1 ansible 192.168.1.194 - false
|
||||
tn00-alpine3c RUNNING 1 ansible 192.168.1.139 - false
|
||||
tn00-alpine3d RUNNING 1 ansible 192.168.1.152 - false
|
||||
tn00-alpine3e RUNNING 1 ansible 192.168.1.134 - false
|
||||
tn00-arch RUNNING 1 ansible 192.168.1.192 - false
|
||||
[...]
|
||||
```
|
||||
|
||||
### Container in /etc/hosts hinzufügen
|
||||
Bitte nur einmal ;) ausführen!
|
||||
```
|
||||
sudo lxc-ls -f -F ipv4,name | grep -v NAME | sudo tee -a /etc/hosts
|
||||
```
|
||||
|
||||
### Wechseln in den Container
|
||||
```
|
||||
root@tn00-purple:~# lxc-attach tn00-alpine3b
|
||||
~# cat /etc/os-release
|
||||
NAME="Alpine Linux"
|
||||
ID=alpine
|
||||
VERSION_ID=3.11.0
|
||||
PRETTY_NAME="Alpine Linux v3.11"
|
||||
HOME_URL="https://alpinelinux.org/"
|
||||
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
|
||||
~# ^D
|
||||
```
|
||||
Beenden mit Strg-D (Shell beenden)
|
||||
|
||||
### Zugriff auf Dateien im Container
|
||||
Die Container sind auf File-Basis unter `/var/lib/lxc/CONTAINERNAME/` installiert, das File-System liegt dort jeweils im Verzeichnis `rootfs`.
|
||||
|
||||
Ein `cat /var/lib/lxc/tn00-alpine3b/rootfs/etc/os-release` im Host würde also die gleiche Dateien anzeigen wie oben.
|
||||
|
||||
|
||||
|
||||
## git
|
||||
|
||||
### Git-Einführung
|
||||
|
||||
Unter https://training.velt.biz/workshop/Git-Quickstart/ findet Ihr eine kleine Git-Einführung
|
||||
|
||||
### Repositories mit git clonen
|
||||
|
||||
Hier am Beispiel "`cleanup-hosts`" von https://git.velt.biz/Ansible/cleanup-hosts:
|
||||
```
|
||||
git clone https://git.velt.biz/Ansible/cleanup-hosts.git
|
||||
```
|
||||
Das Ergebnis ist ein Verzeichnis "`cleanup-hosts`", welches genau so in das `roles`-Verzeichnis geschoben (und umbenannt) werden kann.
|
||||
|
||||
|
||||
|
||||
## Praktische/Schöne Statusbar für vim
|
||||
```
|
||||
apt install vim-airline
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue