http://ovm-kassel.de | Lernjob | |
---|---|
Lernjob IT-BS-VM-LJ-3.1 |
|
Code |
IT-BS-VM-LJ-3.1 |
Autor |
André Bauer |
Datum |
22. Mai 2018 |
Lizenz |
|
Dokumentieren mit Script und AsciiDoc
1. Shell-Sessions mit Script documentieren
Shell-Sessions können unter Linux mit dem Programm Script aufgezeichnet werden.
$ script session1.log (1)
Skript gestartet, die Datei ist session1.log
$ ssh user@192.168.178.28
user@192.168.178.28's password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)
Last login: Thu May 10 18:58:28 2018 from 192.168.178.21
user@ubuntu-vm:~$ ls
Bilder Downloads Öffentlich srv Vorlagen
Dokumente Musik Schreibtisch Videos
user@ubuntu-vm:~$ Abgemeldet (2)
Connection to 192.168.178.28 closed.
[user@hostsystem ~]$ exit (3)
exit
Skript wurde beendet, die Datei ist session1.log
1 | Startet Script und speichert die Aufzeichnung in der
Datei session1.log . |
2 | Die SSH-Session wird mit Strg+D oder exit beendet. |
3 | Script wird mit exit beendet. |
Das Ergebnis kann mit cat
angezeigt werden oder mit
einem Texteditor wie z. B. GNU nano, gedit,
emacs, vim, atom oder anderen bearbeitet, kommentiert
und z. B. Teil eines AsciiDoc-Dokuments werden (s. u.).
$ cat session1.log
Script started on 2018-05-11 08:03:35+02:00
[user@hostsystem ~]$ ssh user@192.168.178.28
user@192.168.178.28's password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-28-generic x86_64)
Last login: Thu May 10 18:58:28 2018 from 192.168.178.21
user@ubuntu-vm:~$ ls
Bilder Downloads Öffentlich srv Vorlagen
Dokumente Musik Schreibtisch Videos
user@ubuntu-vm:~$ Abgemeldet
Connection to 192.168.178.28 closed.
[user@hostsystem ~]$ exit
exit
Script done on 2018-05-11 08:04:13+02:00
Monochrome Ausgabe der Shell
In vielen Linux-Distributionen enthält die Ausgabe im Terminal farbige
Hervorhebungen. Diese führen zur Ausgabe von unerwünschten Zeichen
in den Log-Dateien von Script. Die farbige Ausgabe wird in der
Konfigurationsdatei der Shell gesteuert. Bei der Bash ist
|
Im Folgenden werden die beiden Stellen in der Datei ~/.bashrc
gezeigt,
die geändert werden müssen.
~/.bashrc
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\0
33[01;34m\]\w\[\033[00m\]\$ ' (1)
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' (2)
fi
1 | Setzt einen farbigen Prompt. |
2 | Setzt einen monochromen Prompt. |
~/.bashrc
if [ "$color_prompt" = yes ] && false; then (1)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\0
33[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
1 | Durch Einfügen von && false wird stets der monochrome Prompt ausgewählt. |
~/.bashrc
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto' (1)
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
1 | Hier wir ein Alias für eine farbige Ausgabe mit ls gesetzt. |
~/.bashrc
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ] && false; then (1)
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
1 | Das Setzen der Aliasse wird durch Einfügen von && false unterbunden. |
~/.bashrc
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" (1)
;;
*)
;;
esac
1 | Diese Anweisung ist für die Terminals in Ubuntu unnötig, führt aber
dazu, dass bei Script der Prompt user@host:dir doppelt erscheint. |
~/.bashrc
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
# PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" (1)
;;
*)
;;
esac
1 | In Shell-Scripts wird durch ein # am Zeilenanfang, diese Zeile
„auskommentiert“ und dadurch nicht mehr ausgeführt.
Der Prompt user@host:dir erscheint nun in den Aufzeichnungen
mit Script nur noch einfach. |
Aufgabe 1
2. AsciiDoc
AsciiDoc ist eine
leichtgewichtige Markup-Sprache, wie z. B. auch
Markdown.
Asciidoctor ist eine Ruby-Anwendung,
die AsciiDoc-Dokumente in HTML5, PDF und andere Formate
umwandelt.
Ein AsciiDoc-Dokument wird mit einem Texteditor wie GNU nano, gedit, emacs, vim, atom oder anderen verfasst bzw. bearbeitet — Textverarbeitungsprogramme wie Word oder Writer sind nicht geeignet. Anschließend werden die AsciiDoc-Dateien in ein Ausgabeformat übersetzt wie PDF, HTML5, Docbook oder andere.
2.1. Installation von Asciidoctor
Für Asciidoctor wird das Paket ruby
benötigt:
$ sudo apt update
$ sudo apt install ruby
Mit dem Paket ruby
wird auch
RubyGems,
das Paketsystem für Ruby installiert, dass zur Installation von
asciidoctor
verwendet wird.
$ sudo gem install asciidoctor asciidoctor-diagram (1)
$ sudo apt update
$ sudo apt install plantuml graphviz
$ mkdir srv
$ cd srv
$ nano index.adoc (2)
$ asciidoctor -r asciidoctor-diagram -b html index.adoc (3)
1 | Installation von Asciidoctor und Asciidoctor Diagram mit RubyGems. |
2 | Erstellen eines AsciiDoc-Dokuments. |
3 | Mit -r asciidoctor-diagram wir die Erweiterung
Asciidoctor Diagram
verwendet. |
2.2. Erste Schritte
Die wichtigsten Formatierungen werden anhand des folgenden Beispiels erläutert.
= Shell-Sessions mit Asciidoctor dokumentieren (1)
André Bauer (2)
13. Mai 2018 (3)
Shell-Sessions, die mit Script aufgezeichnet wurden,
werden mit vier Strichen (Minuszeichen bzw. "dash")
als Sourcecode-Block mit vorformatiertem Text
eingerahmt.
(4)
Zusätzlich kann mit der Angabe `[source, sh]` die (5)
Sprache angegeben werden. Hier ein Beispiel:
[source,sh] (6)
---- (7)
user@ubuntu-vb:~$ cd srv/
user@ubuntu-vb:~/srv$ ls
index.adoc index.html index.pdf inheritance.svg
user@ubuntu-vb:~/srv$ touch diagramme.adoc <1> (8)
user@ubuntu-vb:~/srv$ echo "= Diagramme mit Asciidoctor" >> diagramme.adoc
user@ubuntu-vb:~/srv$ cat diagramme.adoc
= Diagramme mit Asciidoctor
----
<1> Erzeugt die Datei `diagramme.adoc`. (9)
== Generieren einer HTML5-Datei (10)
Ein AsciiDoc-Dokument wird dann mit dem folgenden Befehl in eine
HTML-Datei umgewandelt.
[source,sh]
----
$ asciidoctor -r asciidoctor-diagram -b html index.adoc
----
== Anzeigen mit Firefox
Mit `firefox index.html` wird diese im Browser angezeigt.
1 | Der Dokumententitel wird zu Beginn des Dokuments mit einem = -Zeichen angegeben. |
2 | Die Angabe des Autors folgt in der Zeile nach dem Dokumententitel. |
3 | Das Datum wird direkt in der Zeile nach dem Autor angegeben. |
4 | Abschnitte werden durch Leerzeilen getrennt. |
5 | Mit Akzentzeichen (backticks) wird der Text für Kommandos oder Sourcecode-Ausschnitte in Festbreitenschrift gesetzt. |
6 | In den eckigen Klammern kann nach der Angabe source
die verwendete Sprache, wie z. B. java oder sh für Shell,
eingetragen werden. Dadurch wir die
Syntax farblich hervorgehoben. |
7 | Shell-Befehle bzw. Source-Code-Blöcke werden mit mit vier Minuszeichen (dash) als vorformatierter Text gekennzeichnet bzw. eingerahmt. |
8 | Callout-Nummern werden im Source-Code-Block mit eckigen Klammern am Ende der
Zeile eingetragen, d. h. <1>, <2> usw. |
9 | Callouts werden direkt nach dem Source-Code-Block erläutert. |
10 | Überschriften werden mit zwei oder mehreren = -Zeichen eingeleitet. |
Das AsciiDoc-Dokument wird anschließend mit dem im Beispiel angegebenen Kommando übersetzt und kann dann im Browser angezeigt werden.
Weitere Informationen, wie man ein AsciiDoc-Dokument gestalten kann, stehen im AsciiDoc Writer’s Guide und im Asciidoctor User Manual.
Aufgabe 2
2.3. Diagramme mit Asciidoctor erstellen
Über die Erweiterung Asciidoctor Diagram können Diagram-Beschreibungen direkt in AsciiDoc-Dokumente eingebettet werden. Asciidoctor sorgt dann automatisch für die Übersetzung und fügt die erzeugten Grafiken dann als Bilder ein. Vorraussetzung ist, dass die dazu notwendigen Programme installiert sind.
2.3.1. PlantUML
PlantUML ist eine Werkzeug, um (UML-)Diagramme zu erstellen. Über die Erweiterung Asciidoctor Diagram kann man PlantUML-Diagramme direkt in AsciiDoc-Dokumenten beschreiben. Diese werden in PNG-Grafiken oder SVG-Grafiken übersetzt.
Für PlantUML gibt es u. a. Plug-Ins für Eclispe und Jet Brains IDEs wie IntelliJ IDEA.
AsciiDoc | Darstellung im Browser | ||||
---|---|---|---|---|---|
|
Assoziation zwischen den Klassen A und B |
Die Diagramm-Beschreibungs-Sprache von PlantUML ist anhand zahlreicher Beispiel unter PlantUML.com sowie im PlantUML Language Reference Guide dokumentiert.
2.3.2. blockdiag, actdiag, nwdiag und seqdiag
Die Programme blockdiag, seqdiag, actdiag und nwdiag übersetzen -- ähnlich wie PlantUML -- Diagramm-Beschreibungen in Grafiken.
Sie können unter Ubuntu über das Paketmanagment-System installiert werden:
$ sudo apt update $ sudo apt install python-blockdiag python-actdiag python-nwdiag python-seqdiag
Aufgabe 3
Fügen Sie Ihrem AsciiDoc-Dokument aus den Aufgaben 1 und 2 eine Diagramm-Beschreibung für die nebenstehende Grafik mit PlantUML hinzu und lassen Sie Asciidoctor daraus ein HTML5-Dokument mit SVG-Grafik erstellen. Hilfe zum Erstellen einer solchen Grafik finden Sie unter http://plantuml.com/deployment-diagram. |
2.4. PDF-Dokumente generieren
PDF-Dokumente werden aus Asciidoc-Dokumenten mit der Erweiterung
Asciidoctor PDF
durch Angabe von -r asciidoctor-pdf
und des Ausgabeformats mit -b pdf
generiert.
2.4.1. Installation
$ sudo gem install asciidoctor-pdf --pre
2.4.2. Anwendung
$ asciidoctor -r asciidoctor-diagram -r asciidoctor-pdf -b pdf -a allow-uri-read index.adoc
Für PDF-Dokumente gibt es unter Linux verschiedenen Viewer wie evince
oder atril
, die die Dokumente nach Änderungen automatisch neu laden.
$ evince index.pdf &