Ansible ins Repo migrieren und zentrale SSH-Keys in shared/ssh.

Playbooks liegen unter pve1/ansible und pve2/ansible; authorized_keys
als Fragmente mit Deploy-Skript und Ziel-Matrix für Proxmox, VM 101 und CTs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
root
2026-06-28 11:24:31 +02:00
parent 842e66996f
commit e98e3a2b84
27 changed files with 876 additions and 5 deletions
+27
View File
@@ -0,0 +1,27 @@
# Ansible auf pve1
Kleine Playbooks, die **von pve1** aus laufen (nicht die pve2 CT-Wartung).
| Datei | Zweck |
|-------|--------|
| [fish-setup.yml](fish-setup.yml) | Fish + bobthefish auf VM 101 (`jean`) |
| [inventory.ini](inventory.ini) | Inventory für fish-setup |
## Ausführen
```bash
cd /root/docu/pve1/ansible # oder: /root/ansible → Symlink
ansible-playbook -i inventory.ini fish-setup.yml
```
## Deploy-Pfad auf dem Host
Empfohlen:
```bash
ln -sfn /root/docu/pve1/ansible /root/ansible
```
## SSH-Keys
Inventory nutzt `ansible_user=jean` auf `192.168.10.10` — Keys siehe [../../shared/ssh/README.md](../../shared/ssh/README.md).
+109
View File
@@ -0,0 +1,109 @@
---
- name: Install and configure fish shell with bobthefish
hosts: servers
become: true
vars:
target_user: jean
fisher_url: https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish
tasks:
- name: Install fish shell
apt:
name: fish
state: present
update_cache: true
- name: Set fish as default shell for {{ target_user }}
user:
name: "{{ target_user }}"
shell: /usr/bin/fish
- name: Create fish config directory
file:
path: /home/{{ target_user }}/.config/fish/functions
state: directory
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: "0755"
- name: Install Fisher plugin manager
become_user: "{{ target_user }}"
shell: |
curl -sL {{ fisher_url }} | source && fisher install jorgebucaran/fisher
args:
executable: /usr/bin/fish
creates: /home/{{ target_user }}/.config/fish/functions/fisher.fish
- name: Install bobthefish theme
become_user: "{{ target_user }}"
shell: |
fisher install oh-my-fish/theme-bobthefish
args:
executable: /usr/bin/fish
register: bobthefish_install
changed_when: "'Installing' in bobthefish_install.stdout"
- name: Configure bobthefish in config.fish
become_user: "{{ target_user }}"
blockinfile:
path: /home/{{ target_user }}/.config/fish/config.fish
create: true
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: "0644"
marker: "# {mark} ANSIBLE MANAGED - bobthefish config"
block: |
set -g theme_color_scheme nord
set -g theme_display_git yes
set -g theme_display_git_dirty yes
set -g theme_display_git_untracked yes
set -g theme_git_worktree_support no
set -g theme_display_vagrant no
set -g theme_display_docker_machine no
set -g theme_display_k8s_context no
set -g theme_display_user ssh
set -g theme_display_hostname ssh
set -g theme_show_exit_status yes
set -g theme_title_use_abbreviated_path yes
set -g fish_greeting ""
- name: Install Nerd Font (JetBrainsMono) for powerline glyphs
block:
- name: Create fonts directory
file:
path: /home/{{ target_user }}/.local/share/fonts
state: directory
owner: "{{ target_user }}"
group: "{{ target_user }}"
mode: "0755"
- name: Download JetBrainsMono Nerd Font
become_user: "{{ target_user }}"
get_url:
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
dest: /tmp/JetBrainsMono.zip
timeout: 60
- name: Install unzip
apt:
name: unzip
state: present
- name: Unzip Nerd Font
become_user: "{{ target_user }}"
unarchive:
src: /tmp/JetBrainsMono.zip
dest: /home/{{ target_user }}/.local/share/fonts/
remote_src: true
creates: /home/{{ target_user }}/.local/share/fonts/JetBrainsMonoNerdFont-Regular.ttf
- name: Install fontconfig
apt:
name: fontconfig
state: present
- name: Rebuild font cache
become_user: "{{ target_user }}"
command: fc-cache -f
changed_when: true
+2
View File
@@ -0,0 +1,2 @@
[servers]
192.168.10.10 ansible_user=jean ansible_become=true