Config-Management mit Ansible
|
|
|
- Sylvia Messner
- vor 9 Jahren
- Abrufe
Transkript
1 Config-Management mit Ansible Sven Velt - [email protected] 17. Juni 2016
2 Sven Velt Etwas über mich: Dipl.-Inf. (FH), 40 Jahre Aus Franken! Nicht Bayern! ;-) Linux seit ca. 20 Jahren Consulting & Training seit 2002 Seit 2012 Einzelkämpfer Automatisierung bei Kunden notwendig/sinnvoll: Web-Cluster Monitoring von Servern (hauptsächlich Nagios & Co.) velt.biz Config-Management mit Ansible Folie 0.2
3 Ansible - Inhaltsverzeichnis I 1 Einstieg 2 Ein simples Playbook: NTP 3 Rollen 4 Fragestunde
4 Einstieg 1 Einstieg
5 Einstieg Ansible - Kurzbeschreibung Zitat Wikipedia: Ansible ist eine Open-Source-Plattform zur Orchestrierung und allgemeinen Konfiguration und Administration von Computern. Sie kombiniert Softwareverteilung, Ad-hoc-Kommando-Ausführung und Konfigurationsmanagement. Sie verwaltet Netzwerkcomputer über SSH und erfordert keinerlei zusätzliche Software auf dem zu verwaltenden System. Module nutzen zur Ausgabe JSON und können in jeder beliebigen Programmiersprache geschrieben sein. Das System nutzt YAML zur Formulierung wiederverwendbarer Beschreibungen von Systemen. Quelle: Hervorhebungen von mir velt.biz Config-Management mit Ansible Folie 1.1
6 Einstieg Warum Ansible? Warum ich Ansible verwende: Allgemein: niedrige Einstiegshürden Basiert auf Python und SSH ( überall vorhanden) Ablaufbeschreibungen ( Playbooks ) statt Zustandsbeschreibungen Playbooks in YAML (gut) lesbar Kann auch parallel zu anderen Systemen eingesetzt werden Immer wieder geäußerte Kritikpunkte: Alle Rechner müssen per SSH erreichbar sein Python (und ggf. weitere Module) muss auf allen Rechnern installiert sein velt.biz Config-Management mit Ansible Folie 1.2
7 Übersicht: Einstieg 1 Einstieg Installation ansible - Module direkt aufrufen Plays und Playbooks Konfiguration
8 Einstieg Installation Aktuelle Version installieren Aktuelle Versionen (mindestens 2.0) von Ansible gibt es Debian: In den Backports Ubuntu: PPA ansible/ansible RedHat & Co: EPEL SUSE: Build-Service (Repo systemmanagement ) velt.biz Config-Management mit Ansible Folie 1.3
9 Einstieg Installation Installation aus dem git-repository Bauen eines Pakets aus dem git Bauen eines Pakets aus dem git 1 % git clone git://github.com/ansible/ansible.git --recursive 2 % cd./ansible 3 % git checkout remotes/origin/stable-2.x 4 % apt install libxml2-utils docbook-xsl docbook-xml xstlproc 5 % make deb 6 % apt install python-paramiko python-yaml python-jinja2 python-httplib2 python-six 7 % dpkg -i deb-build/unstable/ansible*.deb make rpm wird auch unterstützt velt.biz Config-Management mit Ansible Folie 1.4
10 Übersicht: Einstieg 1 Einstieg Installation ansible - Module direkt aufrufen Plays und Playbooks Konfiguration
11 Einstieg ansible - Module direkt aufrufen Vorbereitung? Direkt nach der Installation kann man die ersten Ansible-Aufrufe starten, weil: Ansible sind alle notwendigen Einstellungen (Pfade, Schalter,... ) bekannt Der Rechner/Host mit dem Namen localhost bzw ist automatisch bekannt Ansible verwendet dann keine SSH-Verbindung velt.biz Config-Management mit Ansible Folie 1.5
12 Einstieg ansible - Module direkt aufrufen Ansible Module Ansible ist modular aufgebaut (aktuell gut 500 Module) harter Kern von wichtigen Modulen (ca. 50) Viele spezialisierte Module (Cloud-Dienste, Windows,... ) Beispiele für Module: ping : Testet (SSH-)Verbindung win ping : Testet Verbindung zu Windows command : Führt eine Kommandozeile aus package : (De-)Installation von Linux-Packages nagios : Steuert(!) Nagios-/Icinga-Monitoring s3* : S3-Management velt.biz Config-Management mit Ansible Folie 1.6
13 Einstieg ansible - Module direkt aufrufen Aufruf eines Modules mit ansible Aufruf: ansible <host-pattern> -m --module <module> Minimaler ansible-aufruf mit ping-modul 1 # Langversion: 2 # % ansible localhost --module-name=ping 3 4 % ansible localhost -m ping 5 localhost SUCCESS => { 6 "changed": false, 7 "ping": "pong" 8 } velt.biz Config-Management mit Ansible Folie 1.7
14 Einstieg ping - Verbindung testen ansible - Module direkt aufrufen Das ping -Modul dient zum Testen der Verbindung und ist gerade bei der Einrichtung allgemein bzw. neuer Hosts sehr praktisch. Minimaler ansible-aufruf mit ping-modul 1 # Langversion: 2 # % ansible localhost --module-name=ping 3 4 % ansible localhost -m ping 5 localhost SUCCESS => { 6 "changed": false, 7 "ping": "pong" 8 } Das Modul ist erfolgreich zu Ende gelaufen ( SUCCESS ) Es liefert zwei Variablen ( changed und ping ) zurück Weitere Parameter existieren nicht velt.biz Config-Management mit Ansible Folie 1.8
15 Einstieg Probleme bei der Verbindung? ansible - Module direkt aufrufen Sollte es zu Problemen bei der Verbindung kommen, so kann man ansible mit bis zu -vvvv aufrufen: Verbose-Ausgabe (debugging) aktiviert 1 % ansible localhost -m ping -vvvv 2 <localhost> REMOTE_MODULE ping 3 <localhost> EXEC [ /bin/sh, -c, mkdir -p $HOME/.ansible/tmp/ansible-tmp && chmod a+rx $HOME/.ansible/tmp/ansible-tmp && echo $HOME/.ansible/tmp/ansible-tmp ] 4 <localhost> PUT /tmp/tmp6foube TO /home/debian/.ansible/tmp/ansible-tmp /ping 5 <localhost> EXEC [ /bin/sh, -c, u LANG=C LC_CTYPE=C /usr/bin/python /home/debian/.ansible/tmp/ansible-tmp /ping; rm -rf /home/debian/.ansible/tmp/ansible-tmp / >/dev/null 2>&1 ] 6 localhost success >> { 7 "changed": false, 8 "ping": "pong" 9 } velt.biz Config-Management mit Ansible Folie 1.9
16 Einstieg Was weiß Ansible vom System? ansible - Module direkt aufrufen Das Modul setup sammelt viele Informationen ein, welche später (z. B.in Bedingungen) verwendet werden können Aufruf des setup-moduls 1 % ansible localhost -m setup 2 localhost SUCCESS => { 3 "ansible_facts": { 4 "ansible_all_ipv4_addresses": [ 5 " XXX.X", 6 " X.XXX" 7 ], 8 "ansible_all_ipv6_addresses": [ 9 "fe80::xxxx:xxxx:xxxx:xxxx", 10 [...] 11 ], 12 "ansible_architecture": "x86_64", 13 "ansible_bios_date": "07/05/2011", 14 [...] 15 } velt.biz Config-Management mit Ansible Folie 1.10
17 Einstieg ansible - Module direkt aufrufen Argumente an Modul übergeben: Hier Filter Mit -a kann man dem Ansible-Module Argumente mitgeben Zum Beispiel kann das Modul setup die zurückgegebenen Informationen filtern Aufruf des setup-moduls mit Filter-Argument 1 % ansible localhost -m setup -a "filter=ansible_processor_*" 2 localhost SUCCESS => { 3 "ansible_facts": { 4 "ansible_processor_cores": 2, 5 "ansible_processor_count": 1, 6 "ansible_processor_threads_per_core": 2, 7 "ansible_processor_vcpus": 4 8 }, 9 "changed": false 10 } velt.biz Config-Management mit Ansible Folie 1.11
18 Einstieg ansible - Module direkt aufrufen command - (Shell-)Befehle ausführen Mit dem command -Modul kann man Befehle/Kommandos direkt ausführen lassen - später natürlich auch parallel auf mehreren Hosts. command-modul mit uptime-aufruf 1 % ansible localhost -m command -a uptime 2 localhost success rc=0 >> 3 10:43:46 up 17 days, 16:12, 3 users, load average: 0.11, 0.29, 0.30 command ist der Standard für -m, kann also auch weggelassen werden Komplexere Befehle müssen ggf. entsprechend gequotet und in (einfache) Anführungszeichen gepackt werden velt.biz Config-Management mit Ansible Folie 1.12
19 Einstieg command - Weitere Aufrufe ansible - Module direkt aufrufen Anzeige des ankommenden Benutzers (insbesondere bei SSH) Aufruf des id -Befehles 1 % ansible localhost -m command -a id 2 localhost success rc=0 >> 3 uid=1000(debian) gid=100(users) groups=100(users) Ein etwas komplexerer Aufruf des Moduls Anzeige der Datei /etc/issue 1 % ansible localhost -m command -a "cat /etc/issue" 2 localhost success rc=0 >> 3 Debian GNU/Linux 8 \n \l velt.biz Config-Management mit Ansible Folie 1.13
20 Einstieg ansible - Module direkt aufrufen Weitere Parameter für command Weitere Parameter für command : chdir Wechselt vor der Ausführung in das angegebene Verzeichnis creates Führt das Kommando aus, wenn die angegebene Datei nicht existiert! removes Führt das Kommando aus, wenn die angegebene Datei existiert! Alternatives Modul: shell - Ausführung in einer Shell, mit Umleitung und anderen Shell-Features! velt.biz Config-Management mit Ansible Folie 1.14
21 Das copy -Modul Einstieg ansible - Module direkt aufrufen Das copy -Modul ermöglicht, wie der Name schon verrät, das Kopieren von Dateien auf den Zielrechner. Simples Kopieren einer Datei - mit Fehler 1 % ansible localhost -m copy -a "src=test.txt dest=/tmp/test.txt" 2 localhost FAILED >> { 3 "failed": true, 4 "msg": "could not find src=/home/debian/localhost/test.txt" 5 } Da hat wohl die Datei nicht existiert... Simples Kopieren einer Datei 1 % ansible localhost -m copy -a "src=test.txt dest=/tmp/test.txt" 2 localhost success >> { 3 "changed": true, 4 "dest": "/tmp/test.txt", velt.biz Config-Management mit Ansible Folie 1.15
22 Einstieg ansible - Module direkt aufrufen Alternative Form für src bei copy Handelt es sich nur um eine kleine Datei bzw. wenig Inhalt, kann dieser auch direkt ( content= ) angegeben werden Des weiteren kann man auch Backups von geänderten Dateien anlegen lassen copy mit content und backup 1 % ansible localhost -m copy -a content="sven was here" dest=/tmp/test.txt backup=yes 2 localhost success >> { 3 "backup_file": "/tmp/test.txt @11:38~", 4 "changed": true, 5 "dest": "/tmp/test.txt", Was passiert, wenn man diesen Befehl nochmals ausführt?! velt.biz Config-Management mit Ansible Folie 1.16
23 Einstieg ansible - Module direkt aufrufen Besonderheiten beim src -Parameter Je nach Angabe beim src-parameter verhält sich copy unterschiedlich: Einzelne Datei: Die Datei wird kopiert Ein Verzeichnis ohne Slash am Ende: Das Verzeichnis (und alles darin) wird kopiert Ein Verzeichnis mit Slash am Ende: Nur der Inhalt des Verzeichnisses wird kopiert Ansible 2.0: remote src=true src wird auf der Zielmaschine gesucht velt.biz Config-Management mit Ansible Folie 1.17
24 Einstieg ansible - Module direkt aufrufen copy - Weitere Parameter force=no Kein Überschreiben bereits existierender Dateien owner / group / mode Eigentümer und Rechte der (neuen) Datei selevel / serole / setype / seuser Attribute für SELinux (falls im Einsatz) validate Command, welches vor dem endgültigen Kopieren ausgeführt wird, um sicher zu stellen, dass die Datei keine Syntax-Fehler enthält Alternatives Modul: template - Kopiert Datei(en) und ersetzt Variablen darin velt.biz Config-Management mit Ansible Folie 1.18
25 Übersicht: Einstieg 1 Einstieg Installation ansible - Module direkt aufrufen Plays und Playbooks Konfiguration
26 Einstieg Plays und Playbooks Begriffklärung: Plays, Playbooks,... Task Ein Task ist ein Aufruf eines Ansible-Moduls mit bestimmten Parametern, ggf. in einer Schleife und/oder abhängig von Bedingungen Play Ein Play bezeichnet die Abfolge mehrere Tasks auf eine(n) oder mehrere (Gruppe von) Rechnern, welche im Inventory definiert sind Playbook Ein Playbook besteht aus einem oder mehreren Plays velt.biz Config-Management mit Ansible Folie 1.19
27 Einstieg Ein minimales Playbook Plays und Playbooks Minimalistisches Playbook hosts: localhost 3 tasks: name: Aufruf von "id" 6 command: id name: Kopieren einer Datei 9 copy: src=test.txt dest=/tmp/test.txt backup=yes name: Aufruf von "cat /tmp/test.txt" 12 command: cat /tmp/test.txt Letztendlich nur eine Aneinanderreihung der ansible-aufrufe mit den Modulen und passenden Parametern velt.biz Config-Management mit Ansible Folie 1.20
28 Einstieg Plays und Playbooks Playbook-Syntax Playbooks werden in YAML geschrieben Einrückung mit Leerzeichen, Einrücktiefe wichtig! Ein Abschnitt bzw. die Datei beginnt mit --- Später noch etwas mehr dazu... velt.biz Config-Management mit Ansible Folie 1.21
29 Einstieg Plays und Playbooks Der erste ansible-playbook-aufruf Der Befehl 1 % ansible-playbook minimal.yml ansible-playbook (!) statt ansible Keine Limitierung alle Hosts, welche im Inventory erfasst sind Ein oder mehrere Playbooks (YAML-Dateien) velt.biz Config-Management mit Ansible Folie 1.22
30 Einstieg Plays und Playbooks ansible-playbook-aufruf - Ausgabe (1) Der Anfang der Ausgabe 3 PLAY [localhost] **************************************************** 4 5 GATHERING FACTS ***************************************************** 6 ok: [localhost] 7 8 TASK: [Aufruf von "id"] ********************************************* Der Play geht los Es wird ein Task names GATHERING FACTS gestartet Alternativ: TASK [setup] Erst danach kommt der Playbook-Task Aufruf von id Zu Beginn des Plays wird (wenn nicht unterdrückt) das Modul setup aufgerufen, welches eine Vielzahl von Variablen vorbelegt velt.biz Config-Management mit Ansible Folie 1.23
31 Einstieg Plays und Playbooks ansible-playbook-aufruf - Ausgabe (2) Unsere Tasks 8 TASK: [Aufruf von "id"] ********************************************* 9 changed: [localhost] TASK: [Kopieren einer Datei] **************************************** 12 changed: [localhost] TASK: [Aufruf von "cat /tmp/test.txt"] ****************************** 15 changed: [localhost] Jeder Task wird einzeln ausgeführt, nacheinander Alle drei Tasks melden changed zurück Es treten keine Fehler auf velt.biz Config-Management mit Ansible Folie 1.24
32 Einstieg Plays und Playbooks ansible-playbook-aufruf - Ausgabe (3) Zusammenfassung 17 PLAY RECAP ********************************************************** 18 localhost : ok=4 changed=3 unreachable=0 failed=0 Auf localhost wurden vier Tasks ausgeführt, welche keinen Fehler zurücklieferten ( ok ) Drei der Tasks lieferten changed zurück Kein Host war unreachable Kein Tasks hat einen Fehler gemeldet ( failed ) velt.biz Config-Management mit Ansible Folie 1.25
33 Idempotency - Oha! Einstieg Plays und Playbooks Was passiert nun, wenn man den gleichen Befehl nochmals ausführt? Ausgabe bei Wiederholung, Ausschnitt 8 TASK: [Aufruf von "id"] ********************************************* 9 changed: [localhost] TASK: [Kopieren einer Datei] **************************************** 12 ok: [localhost] TASK: [Aufruf von "cat /tmp/test.txt"] ****************************** 15 changed: [localhost] PLAY RECAP ********************************************************** 18 localhost : ok=4 changed=2 unreachable=0 failed=0 Kopieren einer Datei meldet nun ok! Siehe auch Zusammenfassung am Ende velt.biz Config-Management mit Ansible Folie 1.26
34 Idempotenz Einstieg Plays und Playbooks Zitat Wikipedia: Idempotenz ist ein Begriff aus der Mathematik und Informatik. In der Mathematik bezeichnet man ein Objekt a, das mit einer Verknüpfung die Eigenschaft a a = a hat, als idempotent bezüglich dieser Verknüpfung. Ein wichtiger Spezialfall sind idempotente Funktionen bezüglich der Hintereinanderausführung. Analog dazu wird in der Informatik ein Stück Programmcode, das mehrfach hintereinander ausgeführt das gleiche Ergebnis wie bei einer einzigen Ausführung liefert, als idempotent bezeichnet. Quelle: velt.biz Config-Management mit Ansible Folie 1.27
35 Einstieg Plays und Playbooks Idempotenz - Was ist (nicht) passiert? Was passiert? Ansible testet vor dem Kopieren, ob die Datei existiert bzw. sich von der neuen Version unterscheidet Nur wenn ein Unterschied festgestellt wird, ersetzt Ansible die Datei Warum trifft das nicht auf die beiden command -Tasks zu? Ansible bzw. das command -Modul weiß schlicht und einfach nicht, was der Aufruf macht Daher werden die Befehle immer ausgeführt creates oder removes können dieses Verhalten verändern Alternativ: Ausführung nur, wenn Bedingung (nicht) erfüllt ist velt.biz Config-Management mit Ansible Folie 1.28
36 Einstieg Plays und Playbooks Mehrere Plays in einem Playbook Playbook mit mehreren Plays hosts: gruppe1 3 tasks: name: Erster Task für Gruppe 1 6 command: cat /etc/issue [...] hosts: gruppe2 11 tasks: name: Erster Task für Gruppe 2 14 command: cat /etc/issue.net [...] velt.biz Config-Management mit Ansible Folie 1.29
37 Übersicht: Einstieg 1 Einstieg Installation ansible - Module direkt aufrufen Plays und Playbooks Konfiguration
38 Einstieg Konfiguration Notwendige Konfiguration Um mit Ansible effektiv beginnen zu können, müssen einige Dinge konfiguriert werden: ansible.cfg - Zentrale Konfigurationsdatei hosts - Das sog. Inventory, definiert in ansible.cfg Zentrale Konfigurationsdatei ansible.cfg: Package-Standard: /etc/ansible/ansible.cfg Inventory hosts: In ansible.cfg definiert (siehe inventory bzw. hostfile ) Package-Standard: /etc/ansible/hosts velt.biz Config-Management mit Ansible Folie 1.30
39 Einstieg Konfiguration ansible.cfg - Wo? Ansible sucht nacheinander an folgenden Stellen bzw. Namen nach einer Konfiguratiosdatei (first wins): Umgebungsvariable ANSIBLE CONFIG ansible.cfg im aktuellen Verzeichnis.ansible.cfg im Home-Verzeichnis des aktuellen Benutzers /etc/ansible/ansible.cfg Sinnvoll verwenden (kein Kauderwelsch)! Persönliche Meinung: Nur aktuelles Verzeichnis und /etc/ansible/ansible.cfg velt.biz Config-Management mit Ansible Folie 1.31
40 Einstieg Konfiguration ansible.cfg - Abschnitt defaults Ansible 2.0: Abschnitt defaults 1 [defaults] 2 #inventory = /etc/ansible/hosts 3 #library = /usr/share/ansible 4 #remote_tmp = $HOME/.ansible/tmp #sudo_user = root 7 #ask_sudo_pass = True 8 #ask_pass = True 9 #transport = smart 10 #remote_port = #module_lang = C #host_key_checking = False 14 #remote_user = root Nicht vollständig! Vor 2.0 heißt es hostfile statt inventory velt.biz Config-Management mit Ansible Folie 1.32
41 Einstieg Anlegen einer Konfiguration Konfiguration Für die ersten Schritte bietet es sich an, ein Verzeichnis anzulegen und dort eine leicht angepasste ansible.cfg abzulegen Anlegen des Verzeichnisses mit ansible.cfg 1 % mkdir ansible-testdir 2 % cd ansible-testdir 3 % cp /etc/ansible/ansible.cfg. 4 % sed -i s/^#\?inventory.*$/inventory=.\/hosts/ ansible.cfg Änderung: suche Inventory unter./hosts velt.biz Config-Management mit Ansible Folie 1.33
42 Einstieg Konfiguration Inventory ( inventory / hostfile ) Allgemein: Klassische Ini-Style Konfigurationsdatei Abschnitte (in eckigen Klammern): Eine Gruppe (Abschnitt) von Rechnern Weitere Möglichkeiten (Gruppe in Gruppen) mit besonderer Syntax (später... ) Zeilen in Gruppe: Jede Zeile definiert einen Rechner Format: HOSTNAME [[Option/Variable] [Opt/Var]...] velt.biz Config-Management mit Ansible Folie 1.34
43 Beispiel-Inventory Einstieg Konfiguration Ein Inventory für drei Rechner in zwei Gruppe kann wie folgt aussehen: Inventory 1 [gruppe1] 2 rechner1 3 rechner2 4 5 [gruppe2] 6 rechner3 Weitere Möglichkeiten: Gruppe in Gruppen Variablen je Host definieieren Variaben für Gruppe definieren velt.biz Config-Management mit Ansible Folie 1.35
44 Einstieg Konfiguration Inventory mit verschiedenen Distributionen Müssen verschiedene System gepflegt werden, kann man Ansible-Einstellungen im Inventory definieren Inventory 1 [debian] 2 debian7 ansible_user=root 3 debian8 ansible_user=debian ansible_become=true 4 5 [ubuntu] 6 ubuntu ansible_user=ubuntu ansible_become=true 7 8 [redhat] 9 rhel7 ansible_user=root Defaults können in der ansible.cfg eingestellt werden velt.biz Config-Management mit Ansible Folie 1.36
45 Ein simples Playbook: NTP 2 Ein simples Playbook: NTP
46 Übersicht: Ein simples Playbook: NTP 2 Ein simples Playbook: NTP Statisches Playbook Playbook mit Variablen
47 Ein simples Playbook: NTP Statisches Playbook Vorgabe: NTP (Zeitserver) installieren NTP: Network Time Protocol Typische, verwendete Software: NTP Chrony Kontaktiert (definierte) Server(-Pools) und setzt lokale Zeit NTP kann auch externe (USB, serielle) Zeit-Empfänger, z. B. DCF-77 oder GPS, ansprechen Empfehlung für s LAN: 1-3 zentrale NTP-Server Alle anderen kontaktieren lokale Server velt.biz Config-Management mit Ansible Folie 2.1
48 Ein simples Playbook: NTP Statisches Playbook NTP: Vorgehen / notwendige Schritte Vorgehen: Zuerst: notwendige Schritte überlegen Dann: Playbook schreiben Notwendige Schritte: 1 NTP-Paket installieren 2 Konfigurationsdatei anpassen/schreiben 3 Dienst neu starten 4 Sicherstellen, dass Dienst auch bei Neustart läuft ( registrieren ) velt.biz Config-Management mit Ansible Folie 2.2
49 Ein simples Playbook: NTP NTP: Benötigte Module Statisches Playbook Benötigte Module in Ansible: Paket installieren: package (ab Ansible 2.0) verwendet intern passendes Modul sonst: apt, yum, zypper,... Konfiguration anpassen/schreiben: copy Später template (dynamisches Anpassen) Dienst (neu)starten, registrieren: service velt.biz Config-Management mit Ansible Folie 2.3
50 Ein simples Playbook: NTP NTP-Installation per Playbook Statisches Playbook Playbook ntp.yml hosts: all 3 tasks: name: Install NTP 6 package: name=ntp state=latest name: Copy config file 9 copy: src=ntp.conf dest=/etc/ntp.conf mode=0644 owner=root group=root backup=yes name: Restart NTP with new config 12 service: name=ntp state=restarted name: Ensure NTP is running 15 service: name=ntp state=started enabled=yes Paket und Dienst heißen ntp velt.biz Config-Management mit Ansible Folie 2.4
51 Ein simples Playbook: NTP Statisches Playbook Konfigurationsdatei(en) für NTP Natürlich braucht NPT auch eine Konfigurationsdatei: Debian-Standard /etc/ntp.conf, erleichtert um Kommentare 1 driftfile /var/lib/ntp/ntp.drift 2 statistics loopstats peerstats clockstats 3 filegen loopstats file loopstats type day enable 4 filegen peerstats file peerstats type day enable 5 filegen clockstats file clockstats type day enable 6 pool 0.debian.pool.ntp.org iburst 7 pool 1.debian.pool.ntp.org iburst 8 pool 2.debian.pool.ntp.org iburst 9 pool 3.debian.pool.ntp.org iburst 10 restrict -4 default kod notrap nomodify nopeer noquery limited 11 restrict -6 default kod notrap nomodify nopeer noquery limited 12 restrict restrict ::1 14 restrict source notrap nomodify noquery pool : Definition der Gegenstelle(n) velt.biz Config-Management mit Ansible Folie 2.5
52 Ein simples Playbook: NTP Statisches Playbook Ausführen von Playbooks Zum Ausführen von Playbooks wird ansible-playbook verwendet Wesentlicher Unterschied zu ansible: Wird auf alle Hosts im Inventory ( all bei ansible) ausgeführt Kann per --limit/-l eingeschränkt werden Weitere Parameter (wie -k, -K, --ask-become-pass, -u) werden ebenfalls akzeptiert Aufruf von ansible-playbook 1 % ansible-playbook ntp.yml 2 PLAY [all] *************************************************************** velt.biz Config-Management mit Ansible Folie 2.6
53 Ein simples Playbook: NTP Statisches Playbook Wichtige Schalter für ansible/ansible-playbook Sollte kein Login ohne Passwort (SSH-Key, sudo ohne Passwort) möglich sein, kann ansible/ansible-playbook über einige Schalter gesteuert werden: -u USER / --user=user Login-User (Default aktueller User) -k / --ask-pass Nach Login-Passwort fragen -b / --become Benutzt z. B. sudo, um anderer Benutzer zu werden --become-method=method Stellt Method zum Benutzer-Wechsel ein (Default sudo ) --become-user=user Ziel-Benutzer für become (Default root ) -K / --ask-become-pass Fragt nach entsprechendem Passwort velt.biz Config-Management mit Ansible Folie 2.7
54 Ausgabe Ein simples Playbook: NTP Statisches Playbook Die Ausgabe am Beispeil eines einzelnen Rechners 1 % ansible-playbook ntp.yml 2 PLAY [all] *************************************************************** 3 4 GATHERING FACTS ********************************************************** 5 ok: [localhost] 6 7 TASK: [Install NTP] ****************************************************** 8 changed: [localhost] 9 10 TASK: [Copy config file] ************************************************* 11 changed: [localhost] TASK: [Restart NTP with new config] ************************************** 14 changed: [localhost] TASK: [Ensure NTP is running] ******************************************** 17 ok: [localhost] velt.biz Config-Management mit Ansible Folie 2.8
55 Übersicht: Ein simples Playbook: NTP 2 Ein simples Playbook: NTP Statisches Playbook Playbook mit Variablen
56 Ein simples Playbook: NTP Playbook mit Variablen Potentielle Probleme mit dem NTP-Playbook Es existieren verschiedene Probleme: Ggf. unterschiedliche Paket-Namen Ggf. unterschiedliche Servicen-Namen Je nach Setup unterschiedliche Konfigurationsdateien und/oder NTP-Server Vor Ansible 2.0: verschiedene Module zur Paket-Installation velt.biz Config-Management mit Ansible Folie 2.9
57 Ein simples Playbook: NTP Debian-Konfiguration als Basis Playbook mit Variablen Als Basis soll die Debian-Konfiguration dienen: Debian-Konfiguration ohne pool 1 driftfile /var/lib/ntp/ntp.drift 2 statistics loopstats peerstats clockstats 3 filegen loopstats file loopstats type day enable 4 filegen peerstats file peerstats type day enable 5 filegen clockstats file clockstats type day enable 6 # Hier standen vorher die "pool"-einträge 7 restrict -4 default kod notrap nomodify nopeer noquery limited 8 restrict -6 default kod notrap nomodify nopeer noquery limited 9 restrict restrict ::1 11 restrict source notrap nomodify noquery Aufgabe: Dynamisches Hinzufügen der Server ( pool ) velt.biz Config-Management mit Ansible Folie 2.10
58 Ein simples Playbook: NTP Playbook mit Variablen Vorgehen dynamische NTP-Server Im Wesentlichen folgende Schritte: Definition der Server in Variable(n) Ausrollen der (jeweils angepassten) Konfiguration Ersetzen des copy -Modul durch template Vorgabe: Defintion der Variable als Liste von Server-Namen/IP-Adressen velt.biz Config-Management mit Ansible Folie 2.11
59 Ein simples Playbook: NTP Playbook mit Variablen Variablen-Definition 1: Im Playbook Im Playbook können Variablen im Abschnitt vars übergeben werden: Anfang des Playbooks mit Variablen hosts: all 3 4 vars: 5 ntp_server: [0.de.pool.ntp.org, 1.de.pool.ntp.org, 2.de.pool.ntp.org] 6 7 tasks: name: Install NTP 10 package: name=ntp state=latest velt.biz Config-Management mit Ansible Folie 2.12
60 Ein simples Playbook: NTP Playbook mit Variablen template statt copy Konfiguratiosdatei soll nicht mehr nur kopiert werden Platzhalter müssen durch Variablen befüllt werden Ersetzungssprache erforderlich Ansible verwendet Jinja2 als Template-Sprache velt.biz Config-Management mit Ansible Folie 2.13
61 Ein simples Playbook: NTP Playbook mit Variablen Playbook: copy durch template ersetzen Ersetzung copy durch template im Playbook Anpassung des Dateinamens nach ntp.conf.j2 Der template -Task 12 - name: Copy config file 13 template: src=ntp.conf.j2 dest=/etc/ntp.conf mode=0644 owner=root group=root backup=yes Zum Vergleich: der copy -Task 8 - name: Copy config file 9 copy: src=ntp.conf dest=/etc/ntp.conf mode=0644 owner=root group=root backup=yes velt.biz Config-Management mit Ansible Folie 2.14
62 Ein simples Playbook: NTP Das Template ntp.conf.j2 Playbook mit Variablen ntp.conf.j2 auf dem Ansible-Master 1 # {{ ansible_managed }} 2 driftfile /var/lib/ntp/ntp.drift 3 statistics loopstats peerstats clockstats 4 filegen loopstats file loopstats type day enable 5 filegen peerstats file peerstats type day enable 6 filegen clockstats file clockstats type day enable 7 {% for server in ntp_server %}pool {{ server }} iburst 8 {% endfor %} 9 restrict -4 default kod notrap nomodify nopeer noquery limited 10 restrict -6 default kod notrap nomodify nopeer noquery limited 11 restrict restrict ::1 13 restrict source notrap nomodify noquery velt.biz Config-Management mit Ansible Folie 2.15
63 Ergebnis: ntp.conf Ein simples Playbook: NTP Playbook mit Variablen Das Ergebnis sieht wie folgt aus: ntp.conf auf dem Server 1 # Ansible managed:.../ntp.conf.j2 modified on :07:25 by svelt on ansible 2 driftfile /var/lib/ntp/ntp.drift 3 statistics loopstats peerstats clockstats 4 filegen loopstats file loopstats type day enable 5 filegen peerstats file peerstats type day enable 6 filegen clockstats file clockstats type day enable 7 pool 0.de.pool.ntp.org iburst 8 pool 1.de.pool.ntp.org iburst 9 pool 2.de.pool.ntp.org iburst 10 restrict -4 default kod notrap nomodify nopeer noquery limited 11 restrict -6 default kod notrap nomodify nopeer noquery limited 12 restrict restrict ::1 14 restrict source notrap nomodify noquery velt.biz Config-Management mit Ansible Folie 2.16
64 Ein simples Playbook: NTP Playbook mit Variablen Variablen - wo kommen sie her? Grobe Unterscheidung: Automatisch von Ansible befüllte Variablen Modul setup, welches automatisch beim Playbook-Start ausgeführt wird Vom Benutzer definierte Variablen Beide lassen sich z. B. in Jinja2-Templates verwenden velt.biz Config-Management mit Ansible Folie 2.17
65 Ein simples Playbook: NTP Playbook mit Variablen Variablen definieren: Wo? Aktuell: Variablen (hier: NTP-Server) in Playbook definiert Kein/Wenig Vorteil gegenüber Eintrag in Konfigurationsdatei direkt Aber: Variablen können an mehreren Stellen definiert werden! Mögliche Variablen-Quellen: Playbook (später auch Rollen) Inventory (siehe ansible... ) Pro Host Pro Gruppe Variablen-Dateien Pro Host Pro Gruppe velt.biz Config-Management mit Ansible Folie 2.18
66 Ein simples Playbook: NTP Playbook mit Variablen Gruppen-Variablen für Ubuntu Im Inventory existiert eine Gruppe ubuntu Ansible liest group_vars/ubuntu.yml relativ zum Playbook (wenn sie existiert)./group_vars/ubuntu.yml ntp_servers: 3-0.ubuntu.pool.ntp.org 4-1.ubuntu.pool.ntp.org 5-2.ubuntu.pool.ntp.org 6-3.ubuntu.pool.ntp.org velt.biz Config-Management mit Ansible Folie 2.19
67 Ein simples Playbook: NTP Playbook mit Variablen Host-Variablen für rhel7 Im Inventory existiert ein Host rhel7 Ansible liest host_vars/rhel7.yml relativ zum Playbook (wenn sie existiert)./host_vars/rhel7.yml ntp_servers: 3-0.de.pool.ntp.org 4-1.de.pool.ntp.org 5-0.pool.ntp.org velt.biz Config-Management mit Ansible Folie 2.20
68 Ein simples Playbook: NTP Playbook mit Variablen Konkretes Problem mit NTP-Playbook Bisher fest im Playbook: Package-Name: ntp Service-Name: ntp Funktioniert nicht, weil in Redhat der Service ntpd heißt in alten SUSE teilweise beides ntpd velt.biz Config-Management mit Ansible Folie 2.21
69 Ein simples Playbook: NTP Playbook mit Variablen Lösung: Variablen je Gruppe/Host Playbook mit Variablen hosts: all 3 vars: 4 ntp_server: [0.de.pool.ntp.org, 1.de.pool.ntp.org, 2.de.pool.ntp.org] 5 tasks: 6 - name: Install NTP 7 package: "name={{ ntp_package }} state=latest" 8 - name: Copy config file 9 template: src=ntp.conf.j2 dest=/etc/ntp.conf mode=0644 owner=root group=root backup=yes 10 - name: Restart NTP with new config 11 service: "name={{ ntp_service }} state=restarted" 12 - name: Ensure NTP is running 13 service: "name={{ ntp_service }} state=started enabled=yes" Ersetzen der definierten Werte durch Variablen velt.biz Config-Management mit Ansible Folie 2.22
70 Ein simples Playbook: NTP Playbook mit Variablen Variablen definieren Die Variablen müssen nun definiert werden Für alle Hosts (auch via Gruppen) Im Inventory oder in Variablen-Dateien unter group_vars/ oder host_vars/./group_vars/redhat.yml ntp_package: ntp 3 ntp_service: ntpd Später (in einer Rolle): Default-Werte! velt.biz Config-Management mit Ansible Folie 2.23
71 Rollen 3 Rollen
72 Rollen Aktuelle Situation Playbook erledigt einen Aufgabe (Installation eines NTP-Servers) In der Praxis: Viele (kleine) Aufgaben Komplexität entsteht durch Kombination Kombination aktuell: Mehrere bis viele Playbooks Alle Playbooks für alle (betreffenden) Rechner durchlaufen lassen Kapselung der Aufgaben (jetzt noch Inhalt des Playbook) wäre sinnvoll In Ansible: Rollen / Rolls velt.biz Config-Management mit Ansible Folie 3.1
73 Übersicht: Rollen 3 Rollen Aufbau einer Rolle Mehrere Rollen
74 Rollen Aufbau einer Rolle Speicherort der Rollen Ansible sucht Rollen in /etc/ansible/roles Weitere Pfade, welche in ansible.cfg unter roles path aufgelistet sind Mehrere Pfade mit Komma getrennt Anpassen der ansible.cfg 1 % sed -i s # *roles_path.*$ &\nroles_path = /etc/ansible/roles,./roles ansible.cfg... Hinzufügen von./roles zu roles_path velt.biz Config-Management mit Ansible Folie 3.2
75 Rollen Aufbau einer Rolle Aufbau des Playbooks in Rolle überführen Das Playbook ntp.yml besteht aus 3 Abschnitten : 1 hosts: Für welche Hosts dieses Playbook abgearbeitet wird Bleibt im Playbook (nicht in der Rolle) 2 vars: Eine Variable mit den gewünschten NTP-Servern Wird zu einem Standardwert ( Default ) in der Rolle 3 tasks: Die abzuarbeitenden Schritte Sind die Tasks der Rolle velt.biz Config-Management mit Ansible Folie 3.3
76 Rollen Aufbau einer Rolle Anlegen der Verzeichnisstruktur Rollen werden strukturiert abgelegt Verzeichnisstruktur anlegen 1 % mkdir -p roles/ntp/{tasks,templates,defaults} 2 3 % tree roles/ntp 4 roles/ntp defaults tasks templates directories, 0 files velt.biz Config-Management mit Ansible Folie 3.4
77 Rollen Übernahme in Rolle: Tasks Aufbau einer Rolle Im Verzeichnis roles/ntp/tasks wird die Datei main.yml mit den Tasks aus dem Playbook angelegt roles/ntp/tasks/main.yml name: Install NTP 3 package: name={{ ntp_package }} state=latest name: Copy config file 6 template: src=ntp.conf.j2 dest=/etc/ntp.conf mode=0644 owner=root group=root backup=yes name: Restart NTP with new config 9 service: name={{ ntp_service }} state=restarted name: Ensure NTP is running 12 service: name={{ ntp_service }} state=started enabled=yes velt.biz Config-Management mit Ansible Folie 3.5
78 Rollen Aufbau einer Rolle Übernahme in Rolle: Templates Achtung! template sucht nun seine Templates im Unterverzeichnis templates der Rolle! Es bietet sich daher an, in template eine (mehr oder minder) komplette Verzeichnisstruktur abzubilden Zum Beispiel:./roles/ntp/templates/etc/ntp.conf.j2 Angabe der src ohne führenden / (Slash) velt.biz Config-Management mit Ansible Folie 3.6
79 Rollen Aufbau einer Rolle Übernahme in Rolle: Variable(n) als Default Großer Vorteil von Defaults: Können durch Host- und/oder Gruppen-Variablen überschrieben werden roles/ntp/defaults/main.yml ntp_servers: 3-0.de.pool.ntp.org 4-1.de.pool.ntp.org 5-2.de.pool.ntp.org 6-3.de.pool.ntp.org 7 8 ntp_package: ntp 9 ntp_service: ntp velt.biz Config-Management mit Ansible Folie 3.7
80 Rollen Rolle in Playbook verwenden Aufbau einer Rolle Das Playbook kann nun die Rolle verwenden: ntp.yml hosts: all 3 4 roles: 5 - ntp Es können auch mehrere Rollen angegeben bzw. abgearbeitet werden Der Rolle können Variablen übergeben werden Rollen können von anderen Rollen abhängen velt.biz Config-Management mit Ansible Folie 3.8
81 Übersicht: Rollen 3 Rollen Aufbau einer Rolle Mehrere Rollen
82 Rollen Mehrere Rollen Mehrere Rollen in einem Playbook In einem Playbook können auch mehrere Rollen (nacheinander) verwendet werden Mehrere Rollen hosts: all 3 4 roles: 5 - hosts 6 - ntp Die Rollen werden in der angegebenen Reihenfolge abgearbeitet velt.biz Config-Management mit Ansible Folie 3.9
83 Rollen Mehrere Rollen Rollen-Abhängigkeit Ist eine Rolle zwingend von einer anderen Rolle abhängig, so definiert man dies in meta/main.yml der abhängigen Rolle: roles/ntp/meta/main.yml dependencies: 3 - { role: hosts } Es können beliebig viele Rollen angegeben werden Sie werden in der genannten Reihenfolge abgearbeitet Eine Rolle, welche mehrfach genannt wird, wird nur einmal abgearbeitet Übergabe von Variablen möglich velt.biz Config-Management mit Ansible Folie 3.10
84 Fragestunde 4 Fragestunde
85 Übersicht: Fragestunde 4 Fragestunde Monitoring-Plugins installieren Ansible-Vault Ansible-Galaxy Module schreiben
86 Fragestunde Monitoring-Plugins installieren Plugins installieren Zwei Pakete: Monitoring-Plugins : Aktuell, gepflegt, wenn möglich verwenden Nagios-Plugins: Nicht so gut gepflegt, nur bei alten Distributionen verwenden Für Ansible: Erst MP probieren, dann NP installieren Abschnitt aus roles/monitored/tasks/main.yml 19 - include: packages.yml 20 when: monitored_packages_install!= False velt.biz Config-Management mit Ansible Folie 4.1
87 Fragestunde Monitoring-Plugins installieren Drei Wege zur Installation Drei Wege, um Pakete für verschiedene Distributionen zu installieren: Ansible 2.0: Modul package Das einfachste, sauberste Simulation des Ansible-2-Verhaltens hack ish, aber geht Unterscheidung nach Paket-Manager Tipp- und Fleißarbeit Weitere Probleme : Monitoring-Plugins bevorzugt vor Nagios-Plugins Pakete heißen unterschiedlich velt.biz Config-Management mit Ansible Folie 4.2
88 Installation: package Fragestunde Monitoring-Plugins installieren Variante für Ansible 2.0, sauber Installation mit Hilfe von package name: Install Monitoring-Plugins 3 package: 4 name: "{{ item }}" 5 state: latest 6 register: monitoringplugins 7 ignore_errors: True 8 with_items: "{{ monitored_packages_mp }}" name: Install Nagios-Plugins 12 package: 13 name: "{{ item }}" 14 state: latest 15 with_items: "{{ monitored_packages_np }}" 16 when: monitoringplugins failed velt.biz Config-Management mit Ansible Folie 4.3
89 Installation: hack ish Fragestunde Monitoring-Plugins installieren Funktioniert mit Ansible 1.x, aber nicht schön Installation Distributions-unabhängig name: Install Monitoring-Plugins 3 action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest" 4 register: monitoringplugins 5 ignore_errors: True 6 with_items: "{{ monitored_packages_mp }}" name: Install Nagios-Plugins 10 action: "{{ ansible_pkg_mgr }} name={{ item }} state=latest" 11 with_items: "{{ monitored_packages_np }}" 12 when: monitoringplugins failed velt.biz Config-Management mit Ansible Folie 4.4
90 Fragestunde Installation: Nach Paket-Manager Monitoring-Plugins installieren Tipp- und Fleißarbeit: unterschiedliche Module (in unterschiedlichen Dateien) tasks/packages.yml mit Includes include: packages_apt.yml 3 when: ansible_pkg_mgr == "apt" include: packages_yum.yml 6 when: ansible_pkg_mgr == "yum" include: packages_zypper.yml 9 when: ansible_pkg_mgr == "zypper" velt.biz Config-Management mit Ansible Folie 4.5
91 Fragestunde Monitoring-Plugins installieren Installation: Nach Paket-Manager, YUM Das Beispiel anhand von YUM tasks/packages_yum.yml name: Install Monitoring-Plugins 3 yum: 4 name: "{{ item }}" 5 state: latest 6 register: monitoringplugins 7 ignore_errors: True 8 with_items: "{{ monitored_packages_mp }}" name: Install Nagios-Plugins 11 yum: 12 name: "{{ item }}" 13 state: latest 14 with_items: "{{ monitored_packages_np }}" 15 when: monitoringplugins failed velt.biz Config-Management mit Ansible Folie 4.6
92 Packages Fragestunde Monitoring-Plugins installieren Die Variablen für die Packages müssen noch definiert werden: Debian/Ubuntu: vars/debian.yml 2 monitored_packages_mp: 3 - monitoring-plugins 4 monitored_packages_np: 5 - nagios-plugins RedHat/CentOS: vars/redhat.yml, gekürzt 6 monitored_packages_mp: 7 - monitoring-plugins-disk 8 - monitoring-plugins-http 9 - monitoring-plugins-load 10 - monitoring-plugins-procs 11 - monitoring-plugins-smtp 12 - monitoring-plugins-ssh 13 - monitoring-plugins-swap 14 - monitoring-plugins-tcp 15 - monitoring-plugins-users velt.biz Config-Management mit Ansible Folie 4.7
93 Übersicht: Fragestunde 4 Fragestunde Monitoring-Plugins installieren Ansible-Vault Ansible-Galaxy Module schreiben
94 Fragestunde Ansible-Vault Ansible-Vault - Sinn und Zweck Heikle Informationen auf dem Kontroll-Host: Passwörter Private Schlüssel VPN-Keys... ansible-vault zum Verschlüsseln velt.biz Config-Management mit Ansible Folie 4.8
95 Fragestunde Ansible-Vault Variante 1: Anlegen der Variablen-Datei mit Vault Anlegen der Datei, Editor wird geöffnet: Anlegen einer verschlüsselten Datei 1 % ansible-vault create secrets.yml 2 New Vault password: 3 Confirm New Vault password: Anzeigen des Inhalts: Anzeigen des Inhalts 1 % ansible-vault view secrets.yml 2 Vault password: password: S4cur3 velt.biz Config-Management mit Ansible Folie 4.9
96 Fragestunde Ansible-Vault Variante 2: Verschlüsseln einer Datei Verschlüsseln einer bestehenden Datei: Verschlüsseln einer Datei 1 % ansible-vault encrypt secrets.yml 2 New Vault password: 3 Confirm New Vault password: 4 Encryption successful Meist bei der Entwicklung der einfachere Weg... Funktioniert auch mit group_vars/ und host_vars/ velt.biz Config-Management mit Ansible Folie 4.10
97 Fragestunde Editieren und Entschlüsseln Ansible-Vault Editieren einer verschlüsselten Datei: Editieren der Datei 1 % ansible-vault edit secrets.yml 2 Vault password: Die verschlüsselte Datei wird erst bei Beenden wieder geschrieben! Entschlüsseln einer Datei: Entschlüsseln einer Datei 1 % ansible-vault decrypt secrets.yml 2 Vault password: 3 Decryption successful velt.biz Config-Management mit Ansible Folie 4.11
98 Playbook mit Vault Fragestunde Ansible-Vault ansible-playbook kann direkt das Passwort für die verwendeten Vault-Files mitgegeben werden: Mit Vault-Passwort 1 % ansible-playbook --ask-vault-pass site.yml Alternativ: Passwort in Datei oder durch Skript (ausführbar) ausgegeben: Mit Vault-Passwort-Datei/-Skript 1 % ansible-playbook --vault-password-file... site.yml velt.biz Config-Management mit Ansible Folie 4.12
99 Übersicht: Fragestunde 4 Fragestunde Monitoring-Plugins installieren Ansible-Vault Ansible-Galaxy Module schreiben
100 Fragestunde Ansible-Galaxy Was ist Ansible-Galaxy Ansible Galaxy is your hub for finding, reusing and sharing the best Ansible content. Quelle: Basierend auf Rollen Name immer username.role Funktioniert teilweise nicht mit Ansible 2.0 Neuen (Beta-)Server angeben velt.biz Config-Management mit Ansible Folie 4.13
101 Fragestunde Ansible-Galaxy Vor- und Nachteile Vorteile: Sehr viele Rollen vorhanden Viel Grips, viel Code zum Lernen Abhängigkeits-Management (Datei requirements.yml ) Nachteile: Suche nach collectd bringt rund 20 Rollen zum Installieren von collectd in verschiedenen Varianten 20 Rollen, in denen ebenfalls collectd installiert wird Oft auf bestimmte Szenarien/Umgebungen zugeschnitten Oder: irrsinnig komplex (Defintion von 50+ Variablen) Selten Distributions-übergreifend velt.biz Config-Management mit Ansible Folie 4.14
102 Fragestunde Ansible-Galaxy Suchen und weitere Informationen Aufruf - Suchen 1 % ansible-galaxy search naemon 2 3 Found 1 roles matching your search: 4 5 Name Description deimosfr.naemon Ansible playbook to install Naemon Aufruf - Informationen, Anfang 1 % ansible-galaxy info deimosfr.naemon 2 3 Role: deimosfr.naemon 4 description: Ansible playbook to install Naemon 5 active: True 6 commit: 43ac2b61972c561bed6e3491f36d2a28b89cd657 7 commit_message: Adding default params velt.biz Config-Management mit Ansible Folie 4.15
103 Fragestunde Ansible-Galaxy Installieren mit ansible-galaxy Installation einer Role: Direkter Aufruf: ansible-galaxy install username.role Mit Datei: Liste der Abhängigkeiten: ansible-galaxy -r requirements.txt requirements.yml einer Rolle (ab 1.8): ansible-galaxy -r requirements.yml In beiden Fällen können in der Datei bestimmte Versionsnummern mitgegeben werden velt.biz Config-Management mit Ansible Folie 4.16
104 Fragestunde Ansible-Galaxy Installieren, Liste der vorh. Rollen, Entfernen Aufruf - Installation 1 % ansible-galaxy -p./roles install deimosfr.naemon 2 - downloading role naemon, owned by deimosfr 3 - downloading role from extracting deimosfr.naemon to./roles/deimosfr.naemon 5 - deimosfr.naemon was installed successfully Aufruf - Liste 1 % ansible-galaxy -p./roles list 2 - deimosfr.naemon, v1.1 Aufruf - Entfernen 1 % ansible-galaxy -p./roles remove deimosfr.naemon 2 - successfully removed deimosfr.naemon velt.biz Config-Management mit Ansible Folie 4.17
105 Fragestunde Ansible-Galaxy Vorlage für neue Rolle erstellen Aufruf von ansible-galaxy init 1 % ansible-galaxy init newrole 2 - newrole was created successfully 3 % tree newrole 4 newrole 5 -- README.md 6 -- defaults 7 -- main.yml 8 -- files 9 -- handlers main.yml meta main.yml tasks main.yml templates vars main.yml directories, 6 files velt.biz Config-Management mit Ansible Folie 4.18
106 Übersicht: Fragestunde 4 Fragestunde Monitoring-Plugins installieren Ansible-Vault Ansible-Galaxy Module schreiben
107 Fragestunde Eigene Module schreiben Module schreiben Python bietet sich an Jede andere Sprache (auch Shell-Skripten) funktioniert Rückgabe (Standard-Ausgabe) muss passen Ablage im Verzeichnis./library/, relativ zum Playbook bzw. in der Rolle Minimalistisches Shell-Modul 1 #!/bin/bash 2 3 # Ansible übergibt Dateiname - GEFÄHRLICH! 4 source ${1} 5 6 # Hier könnte nun was passieren 7 # echo "changed=true msg=ok" 8 9 echo "changed=false" velt.biz Config-Management mit Ansible Folie 4.19
108 Fragestunde Module schreiben Konkrete Idee: Debian-Apache-style-Config-Dirs Debian-Apache unterscheidet... verfügbare ( available ) aktivierte ( enabled ) Config-Schnippsel Verzeichnisse für... Module ( mods-* ) VHosts ( sites-* ) seit Jessie auch allgemein ( conf-* ) Befehle a2enmod & a2dismod a2ensite & a2dissite a2enconf & a2disconf (ab Jessie) velt.biz Config-Management mit Ansible Folie 4.20
109 Fragestunde Module schreiben Parameter im Modul Für das Modul: Basis-Verzeichnis path (z. B. /etc/apache2/ 1 ) Basis-Name der Config-Verzeichnisse base (z. B. conf- 2 ) Endungen der Verzeichnisse (Standard: p available : available und p enabled : enabled ) Endung suffix der Schnippsel-Dateien (Standard:.conf ) Name name der zu managenden Datei (z. B. foo 1 ) state des Links (Standard: present, möglich absent ) 1 Muss angegeben werden 2 Kann auch in path enthalten sein velt.biz Config-Management mit Ansible Folie 4.21
110 Modul in Python Fragestunde Module schreiben Für Python vieles fertig: Parameter-Übergabe aus Ansible 7 module = AnsibleModule( 8 argument_spec = dict( 9 path = dict(required=true), 10 base = dict(default=""), 11 p_enabled = dict(default= enabled ), 12 p_available = dict(default= available ), 13 name = dict(required=true), 14 suffix= dict(default=.conf ), 15 state = dict(default= present, choices=[ present, absent ]), 16 ) 17 ) velt.biz Config-Management mit Ansible Folie 4.22
111 Modul beenden Fragestunde Module schreiben Verschiede Fälle 57 if state: 58 # try to create symlink 59 try: 60 os.symlink(os.path.relpath(src, p_enabled), dest) 61 except: 62 module.fail_json(msg="could not create symlink") 63 else: 64 # test, if symlink 65 if not os.path.islink(dest): 66 module.fail_json(msg="destination is not a symlink") # try to remove symlink 69 try: 70 os.unlink(dest) 71 except: 72 module.fail_json(msg="could not remove symlink") module.exit_json(changed=true) velt.biz Config-Management mit Ansible Folie 4.23
112 Aufrufen des Moduls Fragestunde Module schreiben Voraussetzungen 1 % cd /tmp/apache2 2 % ls -ldr **/* 3 drwxrwxr-x 2... mods-available/ 4 -rw-rw-r mods-available/foo.conf 5 drwxrwxr-x 2... mods-enabled/ Link anlegen 7 % ansible -i hosts.localhost all -m availenabled -a "path=/tmp/apache2 base=mods- name=foo" 8 localhost SUCCESS => { 9 "changed": true 10 } 11 % ls -ldr **/* 12 drwxrwxr-x 2... mods-available/ 13 -rw-rw-r mods-available/foo.conf 14 drwxrwxr-x 2... mods-enabled/ 15 lrwxrwxrwx 1... mods-enabled/foo.conf ->../mods-available/foo.conf velt.biz Config-Management mit Ansible Folie 4.24
113 Aus, Ende und Vorbei Noch Fragen? Ansonsten: Danke! Guten Heimweg! Ich freue mich auf ein Wiedersehen!
114 Config-Management mit Ansible Sven Velt - [email protected] 17. Juni 2016
Einführung in Ansible
Herzlich Willkommen Einführung in Ansible Markus Schade 1 Das Unternehmen Hetzner Online ist ein professioneller Webhosting-Dienstleister und erfahrener Rechenzentrenbetreiber. Wir bieten Lösungen an,
Play with Ansible - Provisioning von Weblogic mit Ansible
Play with Ansible - Provisioning von Weblogic mit Ansible Bio Thorsten Wussow 20 Jahre IT davon 16 Jahre mit Oracle [email protected] Twitter: @thwussi 2 Agenda Einleitung Ansible Allgemein Ansible für
Konfigurationsmanagement und Deployment mit Ansible. DI (FH) René Koch Freelancer Grazer Linuxtage,
Konfigurationsmanagement und Deployment mit Ansible DI (FH) René Koch Freelancer Grazer Linuxtage, 29.04.2017 1/36 Grazer Linuxtage 04/2017 Inhalt Was ist Ansible? Inventory Ad-Hoc Commands Playbooks Deployment
Hilfe bei der Automatisierung warum Ansible für DevOps eine gute Wahl ist
Hilfe bei der Automatisierung warum Ansible für DevOps eine gute Wahl ist Simon Hahn, OPITZ CONSULTING Deutschland GmbH DevOp DBA (also Developer und Administratoren) sind in der heutigen Zeit in aller
Ansible Einführung und Hands-on. Michael Kraus Meetup Ansible im Monitoring-Umfeld / München, 27. Juli 2016
Ansible Einführung und Hands-on Michael Kraus Meetup Ansible im Monitoring-Umfeld / München, 27. Juli 2016 Was ist Ansible? Ansible is a extra-simple Python API for doing 'remote things' over SSH. (Erster
Network-Attached Storage mit FreeNAS
Network-Attached Storage mit FreeNAS Diese Anleitung zeigt das Setup eines NAS-Servers mit FreeNAS. FreeNAS basiert auf dem OS FreeBSD und unterstützt CIFS (samba), FTP, NFS, RSYNC, SSH, lokale Benutzer-Authentifizierung
Benutzer und Rechte Teil 1, Paketverwaltung
Benutzer und Rechte Teil 1, Paketverwaltung Linux-Kurs der Unix-AG Benjamin Eberle 25. Mai 2016 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen
Automatisierte Serververwaltung mit Hilfe von Puppet
Automatisierte Serververwaltung mit Hilfe von Puppet Linuxinformationstage Oldenburg Rene Laakmann 1 Fahrplan Vorstellung bytemine Configuration Management Nodes Definition Rezepte
Ansible Orchestrierung einfach gemacht
"Von Monitoring bis Managed Service" Mittel & Wege für eine stabilere Infrastruktur Ansible Orchestrierung einfach gemacht Michael Kraus, ConSol* GmbH München, 03. März 2016 Über Ansible Autor Michael
Serveradministration mit Ansible
Teil 4: Ansible Matthias P. Walther Freifunk Münsterland Förderverein freie Infrastruktur e. V. 26.07.2017 Wiederholung letzter Woche Gatewaydienste bird, kea Systemdienste starten / stoppen / neu laden
Installation von Zope, Plone, exam auf OSS
Ein Projekt von: Bryjak, Dimitri ([email protected]) Grütter, Marcel ([email protected]) Sorge, Jan Frederik ([email protected]) Inhaltsverzeichnis Installation von Zope, Plone, exam auf OSS... 1 1.1
Linux-Camp: Linux als Server am Beispiel LAMP
Linux-Camp: Linux als Server am Beispiel LAMP Linux, Apache, MySQL, PHP mit Ubuntu Version 8.04 Inhalt LAMP-Komponenten LAMP-Komponenten installieren, konfigurieren und prüfen Apache Webserver PHP5 MySQL
Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte
Linux Kommandozeile: Einfache Skripte AST, Wintersemester 2016/2017 1 Wiederhohlung Hier sind ein paar Befehle, die ihr letzte Woche schon kennen gelernt habt und heute benutzt. Befehl Parameter Funktion
ict-infrastruktur für bildungsaufgaben Sommersemester 2015 Juni 25, 2015
ict-infrastruktur für bildungsaufgaben. Sommersemester 2015 Juni 25, 2015 0 Ansible 1 Zentralisierung und Automatisierung ist ein wesentlicher Faktor fuer die effektive Verwaltung von Systemen. Bisher
Ansible Gatewayadministration
Ansible ohne Vorkenntnisse Matthias Walther Freifunk Münsterland 22.07.2016 Inhaltsverzeichnis 1 Aufgaben eines Gateways 2 Was ist Ansible 3 Erste Schritte mit Ansible 4 Ansible-Rollen des Freifunk Münsterlands
Installation unter LINUX mit PostgreSQL DB
Installation unter LINUX mit PostgreSQL DB Inhaltsverzeichnis 1. Installation und Konfiguration der PostgreSQL Datenbank... 3 2. Installation von Intrexx Xtreme 4.5... 5 Schreibkonventionen In diesem Handbuch
Puppet-Workshop. Aller Anfang ist leicht
Puppet-Workshop Aller Anfang ist leicht Puppet gewinnt seit Jahren an Bedeutung und das nicht nur in großen IT-Umgebungen im Rechenzentrumsumfeld. Dieser Workshop erleichtert den Einstieg in ein zentrales
Linux-Camp: Remote-Zugriff
Linux-Camp: Remote-Zugriff SSH, VPN, oder: "Wie kommt die Maus durch die Leitung?" mit Ubuntu Version 8.04 Inhalt SSH Begriffserklärung und Funktionalität Arbeitsweise Konfiguration Beispiele, Übungen
Continuous Integration mit TravisCI u.a. Jan Steemann
Continuous Integration mit TravisCI u.a. Jan Steemann Ziele für heute sind: eine kleine Applikation und Code-Änderungen daran automatisiert zu testen Build-Status und Coverage zu veröffentlichen die Code-Coverage
Zentrales Konfigurationsmanagement mit Puppet
Zentrales Konfigurationsmanagement mit Puppet SLAC 2011 Martin Alfke Einführung Wie managed man 600 Linux-Server mit 20 unterschiedlichen Applikationen? Einführung Wie
Arbeiten in der Unix-Kommandozeile
Arbeiten in der Unix-Kommandozeile PeP et al. Toolbox Workshop PeP et al. e.v. Physikstudierende und ehemalige Physikstudierende der TU Dortmund 2017 [ismo@it ~]$ _ Was ist das? Muss das sein? Ist das
Arbeiten in der Unix-Kommandozeile
Arbeiten in der Unix-Kommandozeile PeP et al. Toolbox Workshop PeP et al. e.v. Physikstudierende und ehemalige Physikstudierende der TU Dortmund 2016 [ismo@it ~]$ _ Was ist das? Muss das sein? Ist das
Powershell DSC Desired State Configuration
Ab der Powershell Version 4 wird DSC unterstützt. Ich nutze Windows 10 und habe es standardmäßig on Board. Vorbereitung: Download der individuell benötigten Module aus der Powershell Gallery https://www.powershellgallery.com/items
Einrichtung OpenVPN mit Hilfe des Network Managers
1 von 6 Folgende Anleitung beschreibt das Vorgehen unter Ubuntu 9.04 und sollte (etwas Linux KnowHow vorausgesetzt) leicht auf anderen Versionen bzw. Distributionen nachvollziehbar sein. Wichtig: Melden
Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus
LUKAS LEIPOLD Shell Shell Oder Konsole suchen im Application Finder Auch Terminal, Bash oder Kommandozeile genannt Bash nimmt Befehle entgegen und führt diese aus Befehle I cd mkdir pwd rm mv cp ls ln
Linux Grundlagen. Wolfgang Scheicher. 20. Mai 2006
Linux Grundlagen Wolfgang Scheicher 20. Mai 2006 Inhalt 1 Allgemeines Bootvorgang Verzeichnisstruktur 2 Die Shell Autovervollständigung Befehle Kombinieren Tastenkürzel Job Kontrolle 3 Befehlsreferenz
Crashkurs Kommandozeile
Crashkurs Kommandozeile Thomas Werner This work is licensed under the Creative Commons Attribution ShareAlike 2.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by sa/2.0/de/
DK Doku.de. Neu VM. (Specials Documentation von: DK Doku.de, 2015 01 21)
1. Installation Ubuntu Server Ubuntuu Server 14.04.1 64Bit Iso File downloaden http://www.ubuntu.com/download/server Neu VM für den Ubuntu Server im vcenter anlagen VM von Ubuntu ISO starten und installieren
am besten erst den ganzen Abschnitt lesen, besonders das mit dem patch!
Doorpi installieren am besten erst den ganzen Abschnitt lesen, besonders das mit dem patch! https://www.doorpi.org/forum/lexicon/entry/1-installation-doorpi-mittels-pypi-auf-einemraspberry-pi-raspbian/
Perforce Installation mit SSL
Perforce Installation mit SSL Perforce Installation mit SSL Vorab alles was Farbig Markiert ist, ist für die entsprechende Linux Distribution: Blau = Ubuntu, Debian Grün = RHEL, CentOS Rot = Sehr Wichtig
Linux Kurs Vorlesung 2 - Terminal
Linux Kurs Vorlesung 2 - Terminal Verzeichnis-Hierarchie / /bin /sbin /lib /usr /tmp /dev /boot /etc /var /home - Wurzelverzeichnis grundlegende Befehle und Programme (binary) grundlegende Systembefehle
Benutzer und Rechte Teil 1
Benutzer und Rechte Teil 1 Linux-Kurs der Unix-AG Zinching Dang 19. November 2012 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen unterschiedliche
Benutzer und Rechte Teil 1, Paketverwaltung, SSH
Benutzer und Rechte Teil 1, Paketverwaltung, SSH Linux-Kurs der Unix-AG Benjamin Eberle 26. Mai 2015 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen
Icinga Teil 2. Andreas Teuchert. 25. Juli 2014
Icinga Teil 2 Andreas Teuchert 25. Juli 2014 1 Nagios-Plugins Programme, die den Status von Diensten überprüfen können liegen in /usr/lib/nagios/plugins/ werden von Icinga aufgerufen, geben Status über
Den Websurfer absichern
Den Websurfer absichern mit dem Raspbian (Jessie) Stand: 02.11.2016 Inhalt 1. Einleitung... 1 2. Passwörter ändern... 2 3. Automatische Updates... 2 4. SSH-Port ändern... 3 4.1 Konfigurationsdatei auf
1.1 Datenbankprogramm Oracle für MCIS MDA
1.1 Datenbankprogramm Oracle für MCIS MDA 1.1.1 Installation von Oracle 9.2.0 Beispielhaft wird die Installation von Oracle Version 9.2.0 beschrieben. Neuere Versionen werden analog installiert. CD für
KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE
KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung...Seite 03 2. Einrichtung des Systems...Seite 04 3. Erzeugen eines Backup-Skripts...Seite
Lernziele Dateiverwaltung Bearbeiten von Textdateien Sichere Anmeldung per SSH-Schlüssel. Linux für Anfänger
Einführung in die Nutzung der Linux-Kommandozeile Matthias P. Walther Freifunk Münsterland Förderverein freie Infrastruktur e. V. 05.07.2017 Inhaltsverzeichnis 1 Lernziele 2 Dateiverwaltung 3 Bearbeiten
Grundlagen der Programmierung
Übung 1: Unix Werkzeuge Robert Sombrutzki [email protected] Unix Werkzeuge Warum? Diese Frage sollten Sie sich immer mal wieder stellen! Denkbare Antworten Weil Sie diese Werkzeuge immer
Installation von Git für unsere OpenDCC/Fichtelbahn Entwickler Stephan Bauer, Christoph Schörner, Andreas Kuhtz
FICHTELBAHN Gitlab Installation von Git für unsere OpenDCC/Fichtelbahn Entwickler, Andreas Kuhtz 08.11.2013 Inhalt 1. Anmeldung bei Gitlab... 2 2. Installation von Git... 3 3. SSH Key erstellen... 6 4.
Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.
ls [optionen] [namen]: ls zeigt den Inhalt von Verzeichnissen. Sind keine namen angegeben, werden die Dateien im aktuellen Verzeichnis aufgelistet. Sind eine oder mehrere namen angegeben, werden entweder
Linux - a bit advanced
Linux - a bit advanced Überblick Rechteverwaltung Dateisystem Shell-Programmierung Remote login Paketsystem Alternativen-System Rechte Drei Benutzerklassen Owner/User Group Others Drei Rechte Ausführen
Installation von ib-normcad 11 unter rz-industriebau 2012
Installation von ib-normcad 11 unter rz-industriebau 2012 Für ib-normcad 11 unter rz-industriebau 2012 gibt es derzeit kein Setup-Programm. Die Anwendung muss manuell installiert werden. Dazu sind die
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman CeBIT 2016 17. März 2016 Mattias Giese System Management & Monitoring Architect B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting,
Arbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Zinching Dang 09. November 2015 Die Unix-Philosophie Es gibt viele kleine Programme Können die jeweiligen Aufgaben gut lösen Komplexe Aufgaben werden
Installation von Microsoft SQL Server 2014 Express in Verbindung mit Postbuch
Installation von Microsoft SQL Server 2014 Express in Verbindung mit Postbuch Vorbemerkung: Die folgende Anleitung zeigt eine (Referenz-)Installation des Microsoft SQL Server 2014 unter Verwendung des
Workbooster File Exchanger Command Line Tool
Thema Technische Benutzerdokumentation - WBFileExchanger Workbooster File Exchanger Command Line Tool Letzte Anpassung 18. Januar 2014 Status / Version Finale Version - V 1.1 Summary Erstellung Diese technische
TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.
Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail [email protected] Versionsangaben Autor
IML Deployment Axel Hahn 31.10.2013 zuletzt geändert: 04.04.2014
IML Deployment Axel Hahn 31.10.2013 zuletzt geändert: 04.04.2014 Agenda Einleitung, Ausgangslage Build- Prozess, Hooks Phasen + Workflow Handling der KonfiguraHonsdateien InstallaHon mit Puppet Ablage
Benachrichtigungen. Installation und Konfiguration. Version 2017 Summer Release
Benachrichtigungen Installation und Konfiguration Version 2017 Summer Release Status: 28. April 2017 Copyright Mindbreeze GmbH, A-4020 Linz, 2017. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen
Projektierung und Betrieb von Rechnernetzen
Projektierung und Betrieb von Rechnernetzen Versuch : Router-Konfiguration Vorbetrachtungen Im Rahmen des Praktikums sind einige Begriffe bzw. Fragen zum Thema Router zu klären: Was ist ein Router? Router
So legen Sie eine gelöschte Resource wieder an
NetWorker - Allgemein Tip 547, Seite 1/5 So legen Sie eine gelöschte Resource wieder an Besonders bei der Verwendung mehrerer Bildschirme ist es schnell geschehen - einmal haben Sie den Fokus nicht richtig
Das Build Tool Ant. Sebastian Mancke, [email protected]
Das Build Tool Ant Sebastian Mancke, [email protected] Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes
docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014
docker.io @ CentOS 7 Secure And Portable Containers Made Easy Jürgen Brunk Köln, 04.08.2014 Agenda 1. Was ist Docker? 2. Was sind Container? 3. Warum Docker? 4. Architektur 5. Praxis 6. Docker unter CentOS
Anleitung: Verbindung mit der Datenbank
Anleitung: Verbindung mit der Datenbank Der Zugriff auf die MySQL-Datenbank selbst kann mit sämtlichen dafür erhältlichen Tools (Beispielsweise SquirrelSQL, Toad für MySQL, EMS SQL Manager, TOra oder ähnliches)
Literatur. Einführung in Unix. Login. Passwort. Mag. Thomas Griesmayer. Benutzererkennung und Passwort Case-Sensitiv Prompt
Literatur Einführung in Unix Introduction to Unix Martin Weissenböck: Linux, 2000, 2. Auflage, Adim Bodo Bauer: SuSE Linux 6.2, Installation, Konfiguration und erste Schritte, 1999, 15. Auflage, SuSE Verlag.
Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux
1 Erste Schritte 1 1.1 Ein Disk Image auswählen und herunterladen............. 2 1.2 Das Disk Image entpacken............................ 3 1.3 Windows......................................... 4 1.4 macos...........................................
Switching. Übung 2 System Management. 2.1 Szenario
Übung 2 System Management 2.1 Szenario In der folgenden Übung werden Sie Ihre Konfiguration sichern, löschen und wieder herstellen. Den Switch werden Sie auf die neueste Firmware updaten und die Funktion
Arbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Zinching Dang 2. Mai 2017 Übersicht Wiederholung & Vertiefung Die Unix-Philosophie Shellbefehle Befehle & Optionen Zusammenfassung & Ausblick Tux im
Betriebswirtschaftliche Standardsoftware - Made for the WEB. ESS Enterprise Solution Server. Installation. Release 6.
ESS Enterprise Solution Server Installation Release 6.0 Installation 1 Inhaltsverzeichnis 1. Installation... 3 1.1. Lizenzschlüssel für Enterprise Solution Server... 3 1.2. Installationsvorbereitung...
Diplomarbeit Webmaster. CONTENTMANAGEMENT Installationsanleitung. Version 1.0
Diplomarbeit Webmaster CONTENTMANAGEMENT Installationsanleitung Version 1.0 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Einleitung... 3 2.1 Installationsvoraussetzung... 3 2.2 Installationsablauf...
Bash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
Vorlesung Unix-Praktikum
1/3 Vorlesung 5. und Rechnerbetriebsgruppe Technische Fakultät Universität Bielefeld 16. November 2015 2/3 Willkommen zur fünften Vorlesung Was gab es beim letzten Mal? Prozesse Dateiberechtigungen 3/3
Vorsemesterkurs Informatik
Vorsemesterkurs Informatik Einführung in die Bedienung von Unix-Systemen SoSe 2013 Stand der Folien: 3. April 2013 Übersicht 1 Unix, Linux, Shells 2 Shell-Kommandos 3 Dateien und Verzeichnisse Vorkurs
Docusnap Script Linux. Skriptbasierte Inventarisierung für Linux
Docusnap Script Linux Skriptbasierte Inventarisierung für Linux TITEL Docusnap Script Linux AUTOR Docusnap Consulting DATUM 26.04.2017 Die Weitergabe, sowie Vervielfältigung dieser Unterlage, auch von
Terminal Was ist ein Terminal?:
Terminal & Scripte Terminal Was ist ein Terminal?: Eine Ein- & Ausgabeschnittstelle zwischen dem Benutzer und dem Rechner Das heißt: wir können den Rechner mit einer nicht grafschen Oberfäche bedienen
WRT als Plattform für anderes
14. Mai 2009 Übersicht 1 Einstieg 2 Ideen 3 Basis 4 Beispiel 5 Abschluß Übersicht 1 Einstieg 2 Ideen 3 Basis 4 Beispiel 5 Abschluß Übersicht 1 Einstieg 2 Ideen 3 Basis 4 Beispiel 5 Abschluß Übersicht 1
Linux Grundlagen. Wolfgang Scheicher 20. Mai 2006. 1 Allgemeines 2 1.1 Bootvorgang... 2 1.2 Verzeichnisstruktur... 2
Linux Grundlagen Wolfgang Scheicher 20. Mai 2006 Inhaltsverzeichnis 1 Allgemeines 2 1.1 Bootvorgang........................................... 2 1.2 Verzeichnisstruktur........................................
Inbetriebnahme einer lokal installierten Demoversion von VuFind
Für den Betrieb von VuFind werden diese Softwarekomponenten benötigt: - Webserver (Apache), - Suchindex (Solr), - Programmiersprache (PHP) und - Datenbank (MySQL). Optional kann ein Integriertes Bibliothekssystem
2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme
2 2. Tag 2.1 Das Dateisystem das Dateisystem organisiert die Speicherung von Daten viele Betriebssysteme haben verschiedene Dateisysteme ein gutes Dateisystem ist wichtig um Daten sicher zu lagern Das
Composing Shops. Modulinstallation und andere coole Composer Features. (auch) für den OXID eshop... und ein bisschen Shopware ;)
Composing Shops Modulinstallation und andere coole Composer Features (auch) für den OXID eshop... und ein bisschen Shopware ;) Stefan Moises - [email protected] Tobias Merkl - [email protected]
Skripte. Beispiel. http://www.icp.uni-stuttgart.de. M. Fyta Computergrundlagen 73/93
Skripte Wie kann ich mir komplexe Befehle merken? Gar nicht aber der Computer kann es für mich! Einfach die Befehle in eine Textdatei schreiben und ausführbar machen #! (Shebang) in der ersten Zeile bestimmt
Die Shell. [prompt]> <command> <flags> <args>
Die Shell Die Shell ist ein einfaches Interface, um dem Betriebssystem Kommandos zu übermitteln Andere Interfaces verwenden Grafische Elemente (z.b. Windows Explorer) Kommados werden beim sogenannten Prompt
Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -
Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen - Bachelor Medieninformatik Wintersemester 2015/2016 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 ... gestern lief es noch!!!
Shell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 1. Februar 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
Anleitung zur Erstinstallation von ElsaWin 6.0
Anleitung zur Erstinstallation von ElsaWin 6.0 Seite 1 von 28 Inhaltsverzeichnis 1. Voraussetzungen... 3 2. Installation ElsaWin 6.0... 4 3. Einrichtung VZ-/Importeursnummer und Händlernummer... 14 4.
Shell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
DDBAC-SDK unter Linux (mit Wine) Installationsanleitung
DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc
Raspberry PI als AirPrint Server
Übernommen von http://www.welzels.de/blog Raspberry PI als AirPrint Server Eigentlich bin ich recht zufrieden mit meinem Drucker, sei es von der Qualität oder auch von der Ausstattung. Es handelt sich
Backup TSM-Client einrichten
Backup TSM-Client einrichten Windows 10 02.08.2016 kim.uni-hohenheim.de [email protected] Die folgende Installation und Einrichtung des TSM Clients wurde exemplarisch unter Windows 10 durchgeführt.
Einführung in die Kommandozeile
Einführung in die Kommandozeile...oder auch: Hier hat alles angefangen. Tom Priebe Freitagsrunde Technische Universität Berlin 28. Oktober 2011 Inhalt 1 Einführung Über die Kommandozeile Grundbefehle Parameter
VNUML Projektpraktikum
VNUML Projektpraktikum Michael Monreal, Tomasz Oliwa 14. Juni 2006 Abstract Entstanden im Projektpraktikum Simulationen mit User Mode Linux, der vnuml Multiinstaller und VOToN, das VNUML-Old-To-New Programm
Konfigurationsmanagement mit Chef
IT-Services & Consulting Konfigurationsmanagement mit Chef Maximilian Herrmann, 09.03.2017 solutions & more Inhalt l Grundlagen l Administration mit Chef Testing Module Cookbooks l Chef vs. Puppet l Demo
TYPO3 KNOW-HOW INHALT. von Alexander Busch, MCITP, MCSA 2003, CCA, VCS. Spam-Schutz für Typo3... 2. Robots.txt in Typo3... 2. Captcha Extension...
TYPO3 KNOW-HOW von Alexander Busch, MCITP, MCSA 2003, CCA, VCS INHALT Spam-Schutz für Typo3... 2 Robots.txt in Typo3... 2 Captcha Extension... 3 Meta Angaben... 3 TYPO3 Update 4.1.10 auf 4.2.6... 4 SPAM-SCHUTZ
KONFIGURATIONSMANAGEMENT MIT PUPPET TIM SCHMELING. 4b:65:72:73:74:69:6e:2c:20:69:63:68:20:6c:69:65:62:65:20:64:69:63:68:21
KONFIGURATIONSMANAGEMENT MIT PUPPET TIM SCHMELING 4b:65:72:73:74:69:6e:2c:20:69:63:68:20:6c:69:65:62:65:20:64:69:63:68:21 WAS IST PUPPET? SW für Konfigurationsmanagement Geschrieben in Ruby Client-Server
Arbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Benjamin Eberle 4. Mai 2016 Die Komandozeile unter Linux Wird als Shell bezeichnet Die Shell ist eines der vielen Programme einer Linux-Distribution
Schulfilter Plus Installationsanleitung CentOS 7
Schulfilter Plus Installationsanleitung CentOS 7 Allgemeine Informationen Inhaltsverzeichnis 1 Allgemeine Informationen... 3 2 Konfiguration der Paketverwaltung... 3 2.1 Sicherung der Konfiguration...
Grundlagen - Konsole/Terminal :
VPN unter Linux Grundlagen - Konsole/Terminal : Für Debian, Ubuntu und Linux Mint empfehlen wir VPNC. Bei allen drei Distributionen kann das VPNC-Paket entweder per Paketmanager oder mit apt heruntergeladen
Contao in a box. Entwicklungsumgebung für Contao mit Vagrant. von Claudio De Facci exploreimpact.de
Contao in a box Entwicklungsumgebung für Contao mit Vagrant von Claudio De Facci exploreimpact.de Was ist Vagrant? Vagrant ist: - eine Software zur einheitlichen Erstellung von virtuellen Maschinen - Plattformunabhängig
Schulfilter Plus Installationsanleitung Debian 8
Schulfilter Plus Installationsanleitung Debian 8 1 Allgemein Inhaltsverzeichnis 1 Allgemein... 3 2 Konfiguration der Paketverwaltung... 3 2.1 Sicherung der Konfiguration... 3 2.2 Bereinigung des Systems...
Powershell DSC Desired State Configuration
Ab der Powershell Version 4 wird DSC unterstützt. Ich nutze Windows 10 und habe es standardmäßig on Board. Vorbereitung: Download der individuell benötigten Module aus der Powershell Gallery https://www.powershellgallery.com/items
Modell Bahn Verwaltung. Tutorial. Links. Min. Programm Version 0.65, März w w w. r f n e t. c h 1 / 11
Modell Bahn Verwaltung Tutorial Links Min. Programm Version 0.65, März 2015 Tutorial Version 04.01.2017 rfnet Software w w w. r f n e t. c h 1 / 11 Vorwort... 3 1 Links... 4 1.1 Einführung... 4 1.2 Link
Raspberry Workshop. User des Raspberry abmelden: Folgende befehle werden angenommen: Logout / Exit oder die Tastenkombination Ctl + D
Raspberry Workshop Es gibt mehrere Betriebssysteme. Empfehlenswert ist Noobs Installation Installation ohne Tastatur und Bildschirm! In die Datei recovery.cmdline wird am Ende der Eintrag: silentinstall
How to install freesshd
Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem
Systemmanagement mit Puppet und Foreman
Foreman CLT 2014 16. März 2014 Mattias Giese Solution Architect for Systemsmanagement and Monitoring [email protected] - Linux/Open Source Consulting, Training, Support & Development Agenda Vorstellung
