Ansible Bootstrap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 54: | Zeile 54: | ||
=== Hinterlegen des öffentlichen SSH-Keys === | === Hinterlegen des öffentlichen SSH-Keys === | ||
| − | * | + | * vim bootstrap.yml |
<!-----> | <!-----> | ||
| Zeile 71: | Zeile 71: | ||
<!-----> | <!-----> | ||
| − | <span id=" | + | <span id="pakete-installieren"></span> |
| − | = | + | == Pakete installieren == |
| − | * | + | * vim bootstrap.yml |
<!-----> | <!-----> | ||
| − | + | ... | |
| − | - name: | + | - name: Installiere vim und sudo |
| − | |||
become: true | become: true | ||
| − | + | package: | |
| − | + | name: "{{ item }}" | |
| − | + | state: present | |
| − | + | with_items: | |
| − | + | - vim | |
| − | + | - sudo | |
| − | + | * ansible-playbook bootstrap.yml –become-method=su -K | |
| − | + | ||
| − | + | <!-----> | |
| − | + | <span id="passwortlos-zum-benutzer-root-werden"></span> | |
| − | + | == Passwortlos zum Benutzer root werden == | |
| − | + | ||
| − | + | * Wir haben vorher das Paket sudo installiert, welches die Standard Become-Methode ist | |
| − | + | * In dessen Konfigurationsdatei kann man einstellen, dass für bestimmte Gruppe die Anmeldung passwortlos sein soll | |
| − | <span id=" | + | * Dazu die folgenden zwei Schritte |
| − | = | + | |
| + | <!-----> | ||
| + | <span id="etcsudoers-bearbeiten"></span> | ||
| + | === /etc/sudoers bearbeiten === | ||
| + | |||
| + | * vim bootstrap.yml | ||
| − | * ansible-playbook bootstrap.yml | + | <!-----> |
| + | ... | ||
| + | - name: Sicherstellen, dass die Gruppe sudo existiert | ||
| + | become: true | ||
| + | group: | ||
| + | name: sudo | ||
| + | state: present | ||
| + | |||
| + | - name: Erlaube der Gruppe sudo passwortloses Login | ||
| + | become: true | ||
| + | lineinfile: | ||
| + | dest: /etc/sudoers | ||
| + | state: present | ||
| + | regexp: '^%sudo' | ||
| + | line: '%sudo ALL=(ALL) NOPASSWD: ALL' | ||
| + | validate: /usr/sbin/visudo -cf %s | ||
| + | |||
| + | - name: Füge Benutzer xinux zur Gruppe sudo hinzu | ||
| + | become: true | ||
| + | user: | ||
| + | name: xinux | ||
| + | groups: sudo | ||
| + | append: true | ||
| + | * ansible-playbook bootstrap.yml –become-method=su -K | ||
Version vom 13. Februar 2023, 11:50 Uhr
Vorbereitung
Man kann als unpriviligierter Benutzer Ansible benutzen. Dazu erstellen wir erstmal einen Arbeitordner im Home-Verzeichnis.
- cd ~
- mkdir ansible
Ansible-Konfigurationsdateien
ansible.cfg
- Hier schaut Ansible nach Dateien wie:
- die Liste der Hosts
- Playbook-Verzeichnisse
- Standard Remote-User
- etc.
- cat ansible.cfg
[defaults] inventory = inventory remote_user = xinux
inventory
- diese Datei enthält die zu administrierenden Hosts
- man kann diese in Gruppen einteilen und bestimmte Variablen (SSH-Passwort, Python-Interpreter, Become-Methode…) zuordnen
- cat inventory
[debian] 10.81.3.10
Erreichbarkeitstest
- ansible -m gather_facts debian -k
Bootstrap
Passwortloses Login
Erstellen von SSH-Keys
- ssh-keygen
Hinterlegen des öffentlichen SSH-Keys
- vim bootstrap.yml
---
- name: Bootstrap eines einzelnen Hosts
hosts: debian
tasks:
- name: Hinterlege SSH-Key
authorized_key:
user: xinux
state: present
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
- ansible-playbook bootstrap.yml -k
- Jetzt sollte kein Passwort notwendig sein
- ansible -m gather_facts debian
Pakete installieren
- vim bootstrap.yml
...
- name: Installiere vim und sudo
become: true
package:
name: "Vorlage:Item"
state: present
with_items:
- vim
- sudo
- ansible-playbook bootstrap.yml –become-method=su -K
Passwortlos zum Benutzer root werden
- Wir haben vorher das Paket sudo installiert, welches die Standard Become-Methode ist
- In dessen Konfigurationsdatei kann man einstellen, dass für bestimmte Gruppe die Anmeldung passwortlos sein soll
- Dazu die folgenden zwei Schritte
/etc/sudoers bearbeiten
- vim bootstrap.yml
...
- name: Sicherstellen, dass die Gruppe sudo existiert
become: true
group:
name: sudo
state: present
- name: Erlaube der Gruppe sudo passwortloses Login
become: true
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^%sudo'
line: '%sudo ALL=(ALL) NOPASSWD: ALL'
validate: /usr/sbin/visudo -cf %s
- name: Füge Benutzer xinux zur Gruppe sudo hinzu
become: true
user:
name: xinux
groups: sudo
append: true
- ansible-playbook bootstrap.yml –become-method=su -K