Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:ansible:playbook_example_14 [01.12.2022 19:24. ] – [Ausführung] django | linux:ansible:playbook_example_14 [09.06.2024 08:14. ] (aktuell) – [Lösung] django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ~~NOCACHE~~ | ||
====== Ansible - weitere Beispiele: Admin Benutzer verwalten (v2)====== | ====== Ansible - weitere Beispiele: Admin Benutzer verwalten (v2)====== | ||
{{: | {{: | ||
Zeile 28: | Zeile 29: | ||
Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen der Inventory-Hülle, | Der ungeduldigen Leser kann auch direkt zur Tat schreiten und das manuelle Anlegen der Inventory-Hülle, | ||
- | < | + | < |
<WRAP center round alert 100%> | <WRAP center round alert 100%> | ||
- | **Wichtig**: | + | **Wichtig**: |
$ ansible-vault encrypt ~/ | $ ansible-vault encrypt ~/ | ||
</ | </ | ||
Zeile 57: | Zeile 58: | ||
=== gehashtes Passwort === | === gehashtes Passwort === | ||
- | Damit wir keine PLAIN-Text Passworte sondern nun gehashte Passwörter im Inventory stehen haben wollen, denn aus Sicherheitsgründen dürfen nur die Admins selbst deren Passwort kennen und sonst niemand bitten wir diese uns das gehashte Passwort mit **'' | + | Damit wir keine PLAIN-Text Passworte sondern nun gehashte Passwörter im Inventory stehen haben wollen, denn aus Sicherheitsgründen dürfen nur die Admins selbst deren Passwort kennen und sonst niemand, bitten wir diese uns das gehashte Passwort mit **'' |
| | ||
Password: | Password: | ||
Zeile 63: | Zeile 64: | ||
$6$n9UE0JVV7T.nzFJOdSY1dHDEsbfY3$0SPNKmewfaQ0z5thaRMrrrI9Uig.nzFJOdSY1erIZbw5yzDqeCg4S2oXa8zn2jEf9KDfjg31 | $6$n9UE0JVV7T.nzFJOdSY1dHDEsbfY3$0SPNKmewfaQ0z5thaRMrrrI9Uig.nzFJOdSY1erIZbw5yzDqeCg4S2oXa8zn2jEf9KDfjg31 | ||
- | Ferner benötigen wir noch den SSH-Publickey den wir uns ebenso wie das gerade erstellte gehashte Passwort von unseren Admins auf einem sicheren Kommunikationsweg zukommen. | + | Ferner benötigen wir noch den SSH-Publickey, den wir uns ebenso wie das gerade erstellte gehashte Passwort von unseren Admins auf einem sicheren Kommunikationsweg zukommen |
=== Inventory Daten für unsere Admins === | === Inventory Daten für unsere Admins === | ||
Zeile 86: | Zeile 87: | ||
pwd : $6$n9UE0JVV7T.nzFJOdSY1dHDEsbfY3$0SPNKmewfaQ0z5thaRMrrrI9Uig.nzFJOdSY1erIZbw5yzDqeCg4S2oXa8zn2jEf9KDfjg31 | pwd : $6$n9UE0JVV7T.nzFJOdSY1dHDEsbfY3$0SPNKmewfaQ0z5thaRMrrrI9Uig.nzFJOdSY1erIZbw5yzDqeCg4S2oXa8zn2jEf9KDfjg31 | ||
key : ssh-ed25519 AAAAC3NzaqK6Pb38bv0oM9fw0C1lZDI1NTE5AAAAIDo46Pb38bv0oM9fmgM6byylc0815 rookie@nausch.org | key : ssh-ed25519 AAAAC3NzaqK6Pb38bv0oM9fw0C1lZDI1NTE5AAAAIDo46Pb38bv0oM9fmgM6byylc0815 rookie@nausch.org | ||
- | - user : | + | - user : |
- | name : | + | name : |
groups : wheel | groups : wheel | ||
ids : 1002 | ids : 1002 | ||
shell : /bin/bash | shell : /bin/bash | ||
state : present | state : present | ||
- | pwd : $6$nJVSYV9J17.SY1v0oM9fow8Do46dHDEsbfY3$0SPNKmewfaQ0z5tsafZi3haRMrrrI9Uig.OdSY1e6dHDEsbfY3$rI51ewfaQ0z5th | + | pwd : $6$nJVSYV9J17.SY1v0oM9fow8Do46d04m354u3$0SPNKmewfaQ0z5tsafZi3haRMrrrI9Uig.OdSY1e6dHDEsbfY3$rI51ewfaQ0z5th |
- | key : ssh-ed25519 AAAAK6Pb38bv0oM9fw8DoOdSY1er4b38bNzaqK6Pb38bv0oM9fw01erIZbw5yzDqeCC5 | + | key : ssh-ed25519 AAAAK6Pb38bv0oM9fw8DoOdSY1er4b38bNzaqK6Pb38bv0oM9fw01erIZbw5yzDqeCC5 |
</ | </ | ||
In diesem Beispiel haben wir also drei Admins mit den zugehörigen Daten. | In diesem Beispiel haben wir also drei Admins mit den zugehörigen Daten. | ||
Zeile 104: | Zeile 105: | ||
Das Playbook an sich ist relativ unspektakulär, | Das Playbook an sich ist relativ unspektakulär, | ||
$ vim ~/ | $ vim ~/ | ||
- | {{gh> https:// | + | {{gh> https:// |
=== Rolle und Tasks === | === Rolle und Tasks === | ||
- | Bevor wir unsere Rolle **'' | + | Bevor wir unsere Rolle **'' |
$ cp -avr ~/ | $ cp -avr ~/ | ||
Nun legen wir unseren Main-Task an. | Nun legen wir unseren Main-Task an. | ||
- | $ vim ~/ | + | $ vim ~/ |
- | {{gh> https:// | + | {{gh> https:// |
Was nun noch fehlt sind die jeweiligen Tasks mit den Teilaufgaben. Zunächst definieren wir einen Task mit Hilfe dessen sichergestellt wird, dass die Gruppe **'' | Was nun noch fehlt sind die jeweiligen Tasks mit den Teilaufgaben. Zunächst definieren wir einen Task mit Hilfe dessen sichergestellt wird, dass die Gruppe **'' | ||
$ vim ~/ | $ vim ~/ | ||
- | {{gh> https:// | + | {{gh> https:// |
$ vim ~/ | $ vim ~/ | ||
- | {{gh> https:// | + | {{gh> https:// |
- | Anschließend | + | Anschliessend |
$ vim ~/ | $ vim ~/ | ||
- | {{gh> https:// | + | {{gh> https:// |
Zu guter Letzt legen wir noch den Task an, damit die Admins, die Mitglied der Gruppe **'' | Zu guter Letzt legen wir noch den Task an, damit die Admins, die Mitglied der Gruppe **'' | ||
$ vim ~/ | $ vim ~/ | ||
- | {{gh> https:// | + | {{gh> https:// |
===== Ausführung ===== | ===== Ausführung ===== | ||
Zeile 133: | Zeile 135: | ||
Folgende Schritte werden also mit Hilfe des Playbooks abgearbeitet: | Folgende Schritte werden also mit Hilfe des Playbooks abgearbeitet: | ||
- Sicherstellen dass die Gruppe **'' | - Sicherstellen dass die Gruppe **'' | ||
- | - Überprüfen, | + | - Überprüfen, |
+ | fatal: [vml000137]: | ||
+ | |||
+ | PLAY RECAP ***************************************************************************************************************************************************************************************** | ||
+ | vml000137 | ||
+ | fatal: [vml000137]: | ||
+ | |||
+ | PLAY RECAP ***************************************************************************************************************************************************************************************** | ||
+ | vml000137 | ||
- Sicherstellen dass die Gruppen für Admin-User existieren. | - Sicherstellen dass die Gruppen für Admin-User existieren. | ||
- Sicherstellen dass die Admin-User existieren. | - Sicherstellen dass die Admin-User existieren. | ||
Zeile 150: | Zeile 160: | ||
$ ansible-playbook playbooks/ | $ ansible-playbook playbooks/ | ||
- | /* | ||
Interessiert uns lediglich die erfolgreiche Abarbeitung unseres Playbook-Aufrufs können wir dies z.B. beim Host mit dem Namen **'' | Interessiert uns lediglich die erfolgreiche Abarbeitung unseres Playbook-Aufrufs können wir dies z.B. beim Host mit dem Namen **'' | ||
$ ansible-playbook playbooks/ | $ ansible-playbook playbooks/ | ||
PLAY RECAP ******************************************************************************************************** | PLAY RECAP ******************************************************************************************************** | ||
- | vml000137 | + | vml000137 |
- | */ | + | |
+ | ====== Links ====== | ||
+ | | ||
+ | * **=> [[playbook_example_10|weiter zum Kapitel " | ||
+ | * **[[start|Zurück zur " | ||
+ | * **[[wiki: | ||
+ | * **[[http:// |