inital commit: add playbooks with roles to setup server and add user
This commit is contained in:
parent
9c48cd4353
commit
ef4aab6a5d
9 changed files with 218 additions and 0 deletions
4
ansible.cfg
Normal file
4
ansible.cfg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[defaults]
|
||||
inventory = inventory/hosts.ini
|
||||
roles_path = ./roles
|
||||
host_key_checking = False
|
||||
5
inventory/hosts.ini
Normal file
5
inventory/hosts.ini
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[almalinux]
|
||||
vps-root
|
||||
|
||||
[almalinux-user]
|
||||
vps
|
||||
16
playbooks/add_user.yml
Normal file
16
playbooks/add_user.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: Server setup with roles
|
||||
hosts: almalinux-user
|
||||
become: yes
|
||||
vars_prompt:
|
||||
- name: "username"
|
||||
prompt: "Please enter the username to be created"
|
||||
private: no # Der Benutzername wird sichtbar eingegeben
|
||||
- name: "user_password"
|
||||
prompt: "Please enter the password for the new user"
|
||||
private: yes # Das Passwort wird versteckt eingegeben
|
||||
- name: "ssh_public_key"
|
||||
prompt: "Please enter the public key for shh of your pc"
|
||||
private: no
|
||||
roles:
|
||||
- create_user_with_root
|
||||
18
playbooks/setup_server.yml
Normal file
18
playbooks/setup_server.yml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
- name: Server setup with roles
|
||||
hosts: almalinux # Hier verwenden wir die Gruppe 'almalinux' aus der hosts.ini
|
||||
become: yes
|
||||
vars_prompt:
|
||||
- name: "username"
|
||||
prompt: "Please enter the username to be created"
|
||||
private: no # Der Benutzername wird sichtbar eingegeben
|
||||
- name: "user_password"
|
||||
prompt: "Please enter the password for the new user"
|
||||
private: yes # Das Passwort wird versteckt eingegeben
|
||||
- name: "ssh_public_key"
|
||||
prompt: "Please enter the public key for shh of your pc"
|
||||
private: no
|
||||
roles:
|
||||
# firewall
|
||||
- create_user_with_root
|
||||
# firewall
|
||||
8
roles/create_user_with_root/handlers/main.yml
Normal file
8
roles/create_user_with_root/handlers/main.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
# Handler zum Neustarten des SSH-Dienstes
|
||||
|
||||
- name: restart sshd
|
||||
systemd:
|
||||
name: sshd
|
||||
state: restarted
|
||||
enabled: yes
|
||||
47
roles/create_user_with_root/tasks/main.yml
Normal file
47
roles/create_user_with_root/tasks/main.yml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
|
||||
- name: Erstelle einen neuen User mit Sudo-Rechten
|
||||
user:
|
||||
name: "{{ username }}"
|
||||
password: "{{ user_password | password_hash('sha512') }}" # Das Passwort wird mit SHA-512 gehasht
|
||||
state: present
|
||||
shell: /bin/bash
|
||||
groups: wheel # Gibt Sudo-Rechte
|
||||
append: yes
|
||||
|
||||
- name: Erstelle den SSH-Ordner für den neuen User
|
||||
file:
|
||||
path: "/home/{{ username }}/.ssh"
|
||||
state: directory
|
||||
mode: '0700'
|
||||
owner: "{{ username }}"
|
||||
group: "{{ username }}"
|
||||
|
||||
- name: Setze die Berechtigungen für die authorized_keys-Datei
|
||||
file:
|
||||
path: "/home/{{ username }}/.ssh/authorized_keys"
|
||||
state: touch
|
||||
mode: '0600'
|
||||
owner: "{{ username }}"
|
||||
group: "{{ username }}"
|
||||
|
||||
- name: Add public key to enable user ssh
|
||||
lineinfile:
|
||||
path: "/home/{{ username }}/.ssh/authorized_keys"
|
||||
line: '{{ ssh_public_key }}'
|
||||
state: present
|
||||
|
||||
- name: Grant sudo privileges to the user
|
||||
lineinfile:
|
||||
path: /etc/sudoers
|
||||
regexp: "^{{ username }} "
|
||||
line: "{{ username }} ALL=(ALL) ALL"
|
||||
validate: visudo -cf %s
|
||||
|
||||
- name: Entferne den Root-SSH-Zugang
|
||||
lineinfile:
|
||||
path: /etc/ssh/sshd_config
|
||||
regexp: '^PermitRootLogin'
|
||||
line: 'PermitRootLogin no'
|
||||
state: present
|
||||
notify:
|
||||
- restart sshd
|
||||
4
roles/setup_server/defaults/main.yml
Normal file
4
roles/setup_server/defaults/main.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
# roles/setup_server/defaults/main.yml
|
||||
|
||||
username: jan
|
||||
7
roles/setup_server/handlers/main.yml
Normal file
7
roles/setup_server/handlers/main.yml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# roles/setup_server/handlers/main.yml
|
||||
|
||||
- name: restart sshd
|
||||
service:
|
||||
name: sshd
|
||||
state: restarted
|
||||
109
roles/setup_server/tasks/main.yml
Normal file
109
roles/setup_server/tasks/main.yml
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
# roles/setup_server/tasks/main.yml
|
||||
|
||||
- name: Erstelle einen neuen User mit Sudo-Rechten
|
||||
user:
|
||||
name: "{{ username }}"
|
||||
password: "{{ user_password | password_hash('sha512') }}" # Das Passwort wird mit SHA-512 gehasht
|
||||
state: present
|
||||
shell: /bin/bash
|
||||
groups: wheel # Gibt Sudo-Rechte
|
||||
append: yes
|
||||
|
||||
- name: Erstelle den SSH-Ordner für den neuen User
|
||||
file:
|
||||
path: "/home/{{ username }}/.ssh"
|
||||
state: directory
|
||||
mode: '0700'
|
||||
owner: "{{ username }}"
|
||||
group: "{{ username }}"
|
||||
|
||||
- name: Setze die Berechtigungen für die authorized_keys-Datei
|
||||
file:
|
||||
path: "/home/{{ username }}/.ssh/authorized_keys"
|
||||
state: touch
|
||||
mode: '0600'
|
||||
owner: "{{ username }}"
|
||||
group: "{{ username }}"
|
||||
|
||||
- name: Entferne den Root-SSH-Zugang
|
||||
lineinfile:
|
||||
path: /etc/ssh/sshd_config
|
||||
regexp: '^PermitRootLogin'
|
||||
line: 'PermitRootLogin no'
|
||||
state: present
|
||||
notify:
|
||||
- restart sshd
|
||||
|
||||
- name: Installiere firewalld
|
||||
package:
|
||||
name: firewalld
|
||||
state: present
|
||||
|
||||
- name: Starte und aktiviere firewalld
|
||||
service:
|
||||
name: firewalld
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Sperre alle Ports in firewalld
|
||||
firewalld:
|
||||
zone: public
|
||||
service: ssh
|
||||
permanent: yes
|
||||
state: enabled
|
||||
|
||||
# roles/setup_server/tasks/main.yml
|
||||
|
||||
- name: Entferne alte Docker-Versionen, falls vorhanden
|
||||
dnf:
|
||||
name:
|
||||
- docker
|
||||
- docker-client
|
||||
- docker-client-latest
|
||||
- docker-common
|
||||
- docker-latest
|
||||
- docker-latest-logrotate
|
||||
- docker-logrotate
|
||||
- docker-engine
|
||||
- podman
|
||||
- runc
|
||||
state: absent
|
||||
|
||||
- name: Installiere DNF-Plugins und Docker-Repository
|
||||
dnf:
|
||||
name: dnf-plugins-core
|
||||
state: present
|
||||
|
||||
- name: Installiere Docker CE, CLI und andere Docker-Komponenten
|
||||
dnf:
|
||||
name:
|
||||
- docker-ce
|
||||
- docker-ce-cli
|
||||
- containerd.io
|
||||
- docker-buildx-plugin
|
||||
- docker-compose-plugin
|
||||
state: present
|
||||
|
||||
- name: Aktiviere und starte Docker
|
||||
service:
|
||||
name: docker
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: Füge den neuen User zur Docker-Gruppe hinzu
|
||||
user:
|
||||
name: "{{ username }}"
|
||||
groups: docker
|
||||
append: yes
|
||||
|
||||
- name: Starte den Docker-Dienst neu, um Änderungen zu übernehmen
|
||||
systemd:
|
||||
name: docker
|
||||
state: restarted
|
||||
|
||||
- name: Deaktiviere Docker-Zone in firewalld
|
||||
firewalld:
|
||||
zone: docker
|
||||
state: disabled
|
||||
permanent: yes
|
||||
Loading…
Add table
Add a link
Reference in a new issue