Anwendungen mit Ansible installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Seite umgezogen)
 
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Siehe die [[Kategorie:Ansible_Playbook]] für eine Liste von Anwendungen, für die wir bereits ein Ansible Skript haben.
== Übersicht ==
Siehe die [https://wiki.hostsharing.net/index.php?title=Kategorie:Ansible_Playbook Kategorie:Ansible_Playbook] für eine Liste von Anwendungen, für die wir bereits ein Ansible Skript haben.


In der README des Playbook Repositories wird beschrieben, wie man das Playbook bei Hostsharing benutzt.
== Vorbereitungen ==


Wichtig ist, dass man den xyz00 Benutzer entsprechend vorbereitet: Es muss eine Datei mit dem Namen ".hsadmin.properties" im HOME Verzeichnes des Paket Admins xyz00 angelegt werden. Man muss den Paketnamen und das Passwort des Paket Admins in dieser Datei hinterlegen.
=== Vorbereitung des Zugriffs für den Paket Admin ===
Wichtig ist, dass man den <code>xyz00</code> Benutzer entsprechend vorbereitet: Es muss eine Datei mit dem Namen und Paf <code>inventories/group_vars/xyz00.yml</code> angelegt werden. Man muss den Paketnamen und das Passwort des Paket Admins in dieser Datei hinterlegen.


Beispiel:
Die Datei sieht so aus:


  xyz00@h99:~$ cat .hsadmin.properties
  ---
  xyz00.passWord=insertpkgadminpasswordhere
pac: xyz00
  pac_pass: topsecret


Diese Datei sollte geschützt werden, weil sie sonst von allen gelesen werden könnte:
Diese Datei kann auch als Vault erstellt werden:


  xyz00@h99:~$ chmod 600 .hsadmin.properties
  ansible-vault create inventories/group_vars/all/vault


Man muss dann das Repo des Ansible Playbooks auf dem eigenen lokalen Rechner clonen, mit git clone, siehe README.
mit diesem Inhalt:
 
  ---
  vault_hsadmin_user: xy
  vault_hsadmin_pass: "topsecret"
  ansible_become_password: "topsecret"
 
Dann muss bei Aufrufen von <code>ansible-playbook</code> immer der Parameter <code>--ask-vault-pass</code> hinzugefügt werden.
 
Mit diesen Befehlen kann das Vault bearbeitet und betrachtet werden:
 
ansible-vault edit inventories/group_vars/all/vault
ansible-vault view inventories/group_vars/all/vault
 
=== Aktuelles Ansible installieren ===
Das aktuelle Ansible kann mit pipenv entweder lokal oder direkt in einem Hostsharing Benutzer installiert werden:
 
pipenv install ansible hs.admin.api
 
Um z.B. ein playbook auszuführen, muss dann folgendes ausgeführt werden:
 
pipenv shell
ansible-playbook ...
 
bzw.
 
pipenv run ansible-playbook ...
 
=== ssh config anpassen ===
Beim Aufruf von Ansible auf dem lokalen Gerät wird für jeden Schritt per Voreinstellung eine eigene SSH Verbindung aufgebaut. Damit der Server nicht denkt, er wird angegriffen, müssen in der eigenen SSH Client Konfiguration auf dem lokalen Rechner die folgenden Einstellungen vorgenommen werden.
 
In der Datei <code>$HOME/.ssh/config</code>:
 
<pre>
Host *.hostsharing.net
  ControlPath ~/.ssh/cm-%r@%h:%p
  ControlMaster auto
  ControlPersist 10m
</pre>
 
== Ein Playbook ausführen ==
In der README des Playbook Repositories wird beschrieben, wie man das Playbook bei Hostsharing benutzt.
 
Man muss dann das Repo des Ansible Playbooks auf dem eigenen lokalen Rechner clonen, mit <code>git clone</code>, siehe README.


  hans@localhost:~$ git clone https://github.com/<URL REPO>/Hostsharing-Ansible-<IRGENDWAS>.git
  hans@localhost:~$ git clone https://github.com/<URL REPO>/Hostsharing-Ansible-<IRGENDWAS>.git


Dann am besten die Datei inventory zu my.inventory kopieren, und die eigenen Daten entsprechend dort eintragen.
Dann am besten die Datei <code>inventory-sample.yml</code> zu <code>inventory.yml</code> kopieren, und die eigenen Daten entsprechend dort eintragen.
 
Wir gehen davon aus, dass wir den Zugang zu <code>xyz00.hostsharing.net</code> als Benutzer <code>xyz00</code> über SSH Key eingerichtet haben.


Dann das Playbook mit dem Parameter my.inventory aufrufen, auf dem lokalen Rechner (dort muss Ansible installiert sein):
Dann das Playbook aufrufen, auf dem lokalen Rechner (dort muss Ansible installiert sein):


  hans@localhost:~$ cd Hostsharing-Ansible-<IRGENDWAS>
  hans@localhost:~$ cd Hostsharing-Ansible-<IRGENDWAS>
  hans@localhost:~$ ansible-playbook -i my.inventory playbook-tomcat.yml -k -K
  hans@localhost:~$ ansible-playbook -i inventory.yml playbook-install.yml
 
Zum Debuggen will man nicht nochmal alle Aufgaben durchführen, die bereits erledigt sind. Dann gibt es den Parameter <code>start-at-task</code>, wo man den Namen der Task angibt, bei der gestartet werden soll:


Der Parameter -K ist dafür zuständig, damit wir einmal nach dem Passwort für den Paketbenutzer gefragt werden. Den Parameter -k kann weggelassen werden, wenn für den Paketbenutzer die Anmeldung per SSH-Key konfiguriert ist.
hans@localhost:~$ ansible-playbook -i inventory.yml playbook-install.yml \
    -start-at-task="install the certificates"

Aktuelle Version vom 25. März 2024, 07:35 Uhr

Übersicht

Siehe die Kategorie:Ansible_Playbook für eine Liste von Anwendungen, für die wir bereits ein Ansible Skript haben.

Vorbereitungen

Vorbereitung des Zugriffs für den Paket Admin

Wichtig ist, dass man den xyz00 Benutzer entsprechend vorbereitet: Es muss eine Datei mit dem Namen und Paf inventories/group_vars/xyz00.yml angelegt werden. Man muss den Paketnamen und das Passwort des Paket Admins in dieser Datei hinterlegen.

Die Datei sieht so aus:

---
pac: xyz00
pac_pass: topsecret

Diese Datei kann auch als Vault erstellt werden:

ansible-vault create inventories/group_vars/all/vault

mit diesem Inhalt:

 ---
 vault_hsadmin_user: xy
 vault_hsadmin_pass: "topsecret"
 ansible_become_password: "topsecret"

Dann muss bei Aufrufen von ansible-playbook immer der Parameter --ask-vault-pass hinzugefügt werden.

Mit diesen Befehlen kann das Vault bearbeitet und betrachtet werden:

ansible-vault edit inventories/group_vars/all/vault
ansible-vault view inventories/group_vars/all/vault

Aktuelles Ansible installieren

Das aktuelle Ansible kann mit pipenv entweder lokal oder direkt in einem Hostsharing Benutzer installiert werden:

pipenv install ansible hs.admin.api

Um z.B. ein playbook auszuführen, muss dann folgendes ausgeführt werden:

pipenv shell
ansible-playbook ...

bzw.

pipenv run ansible-playbook ...

ssh config anpassen

Beim Aufruf von Ansible auf dem lokalen Gerät wird für jeden Schritt per Voreinstellung eine eigene SSH Verbindung aufgebaut. Damit der Server nicht denkt, er wird angegriffen, müssen in der eigenen SSH Client Konfiguration auf dem lokalen Rechner die folgenden Einstellungen vorgenommen werden.

In der Datei $HOME/.ssh/config:

Host *.hostsharing.net
   ControlPath ~/.ssh/cm-%r@%h:%p
   ControlMaster auto
   ControlPersist 10m

Ein Playbook ausführen

In der README des Playbook Repositories wird beschrieben, wie man das Playbook bei Hostsharing benutzt.

Man muss dann das Repo des Ansible Playbooks auf dem eigenen lokalen Rechner clonen, mit git clone, siehe README.

hans@localhost:~$ git clone https://github.com/<URL REPO>/Hostsharing-Ansible-<IRGENDWAS>.git

Dann am besten die Datei inventory-sample.yml zu inventory.yml kopieren, und die eigenen Daten entsprechend dort eintragen.

Wir gehen davon aus, dass wir den Zugang zu xyz00.hostsharing.net als Benutzer xyz00 über SSH Key eingerichtet haben.

Dann das Playbook aufrufen, auf dem lokalen Rechner (dort muss Ansible installiert sein):

hans@localhost:~$ cd Hostsharing-Ansible-<IRGENDWAS>
hans@localhost:~$ ansible-playbook -i inventory.yml playbook-install.yml

Zum Debuggen will man nicht nochmal alle Aufgaben durchführen, die bereits erledigt sind. Dann gibt es den Parameter start-at-task, wo man den Namen der Task angibt, bei der gestartet werden soll:

hans@localhost:~$ ansible-playbook -i inventory.yml playbook-install.yml \
    -start-at-task="install the certificates"