Reorganize project: separate playbooks/ and files/, add shell-setup (fish+nvim+tide+lazyvim)

This commit is contained in:
vrubelroman 2026-06-06 17:30:00 +03:00
parent 9bed146909
commit b5cabaf1fe
10 changed files with 155 additions and 15 deletions

View file

@ -7,10 +7,14 @@
```text
ansible.cfg
inventory.ini
facts.yml
add-ssh-key.yml
bootstrap-new-client.yml
generate-ssh-config.yml
playbooks/
facts.yml
add-ssh-key.yml
bootstrap-new-client.yml
generate-ssh-config.yml
shell-setup.yml
files/
config.fish
```
## ansible.cfg
@ -51,7 +55,7 @@ monitoring ansible_host=192.168.8.176 ansible_user=vrubel
```bash
ansible proxmox_vms -m ping
ansible-playbook facts.yml
ansible-playbook playbooks/facts.yml
```
## facts.yml
@ -70,7 +74,7 @@ ansible-playbook facts.yml
Запуск:
```bash
ansible-playbook facts.yml
ansible-playbook playbooks/facts.yml
```
Используется для проверки, какие машины Ubuntu/Debian, какие Fedora/RedHat, и какой пакетный менеджер Ansible видит.
@ -88,19 +92,19 @@ Playbook для добавления публичного SSH-ключа в `aut
Запуск, если доступ по ключу уже есть:
```bash
ansible-playbook add-ssh-key.yml
ansible-playbook playbooks/add-ssh-key.yml
```
Если надо добавить не текущий ключ, а другой публичный ключ из файла:
```bash
ansible-playbook add-ssh-key.yml -e "key_file=$HOME/Downloads/new-client.pub"
ansible-playbook playbooks/add-ssh-key.yml -e "key_file=$HOME/Downloads/new-client.pub"
```
Или, например:
```bash
ansible-playbook add-ssh-key.yml -e "key_file=$HOME/infra/ansible/keys/laptop.pub"
ansible-playbook playbooks/add-ssh-key.yml -e "key_file=$HOME/infra/ansible/keys/laptop.pub"
```
Важно: файл должен быть именно публичным ключом, то есть `.pub`. Приватный ключ `id_ed25519` в репозиторий не добавлять и никому не передавать.
@ -119,7 +123,7 @@ Playbook для первичной настройки нового клиент
Запуск на новом компьютере:
```bash
ansible-playbook bootstrap-new-client.yml --ask-pass
ansible-playbook playbooks/bootstrap-new-client.yml --ask-pass
```
Ansible спросит SSH-пароль пользователя `vrubel`.
@ -157,13 +161,13 @@ Host docker-prodVM
Сначала безопасная проверка:
```bash
ansible-playbook generate-ssh-config.yml --check --diff
ansible-playbook playbooks/generate-ssh-config.yml --check --diff
```
Если diff выглядит нормально, применить:
```bash
ansible-playbook generate-ssh-config.yml
ansible-playbook playbooks/generate-ssh-config.yml
```
После этого можно заходить так:
@ -176,14 +180,30 @@ ssh hermesVM
Playbook управляет только блоком между маркерами `ANSIBLE MANAGED HOME VM HOSTS`. Остальные ручные записи в `~/.ssh/config` не трогает.
## shell-setup.yml
Playbook для установки fish, neovim и CLI-утилит (lsd, bat, grc, zoxide) с настройкой fish как shell по умолчанию.
Устанавливает пакеты через универсальный модуль `package` (работает и с apt, и с dnf). Для Debian создаёт симлинк `batcat -> bat`.
Копирует `files/config.fish` в `~/.config/fish/config.fish` и меняет shell пользователя на `/usr/bin/fish`.
Запуск:
```bash
ansible-playbook playbooks/shell-setup.yml
```
После выполнения нужно перелогиниться для применения fish.
## Типовой сценарий для нового компьютера
```bash
sudo pacman -S ansible sshpass
git clone git@github.com:vrubelroman/ansibleHostsHomeVM.git
cd ansibleHostsHomeVM
ansible-playbook bootstrap-new-client.yml --ask-pass
ansible-playbook playbooks/bootstrap-new-client.yml --ask-pass
ansible proxmox_vms -m ping
ansible-playbook generate-ssh-config.yml --check --diff
ansible-playbook generate-ssh-config.yml
ansible-playbook playbooks/generate-ssh-config.yml --check --diff
ansible-playbook playbooks/generate-ssh-config.yml
```