Небольшое дополнение к статье про Raspberry Pi
Недавно я написал статью про небольшой домашний стенд на Raspberry Pi и Orange Pi: Tailscale, Ansible, Nginx и базовую автоматизацию.
В процессе чтения комментариев решил сделать несколько улучшений. Особенно благодарен комментариям от @Tony-Sol
Первое, что сделал — убрал root из inventory.
ansible_user=rootНе надо так, лучше создать отдельного пользователя
На обеих машинах завёл отдельного пользователя ansible и команды на хосте:
sudo adduser ansible
sudo usermod -aG sudo ansible
echo 'ansible ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/ansible
sudo chmod 440 /etc/sudoers.d/ansible
2. Создание роли
Такие штуки как установка и конфигурация сервисов, лучше размещать в отдельные роли, а в плейбуке уже собственно подключать нужные роли
Теперь создал роль и подключил ее в основной плейбук:
tasks / handlers / templates разнесены по каталогам;
aptзаменён наpackage;state: latest→present;becomeиспользуется только там, где реально нужен;проверка конфига вынесена в handler через
nginx -t.
Отдельно напишу вещь, на которой споткнулся:host_vars/<имя>.yml работает только если имя совпадает с inventory_hostname.
У меня хост назывался orange, а файл был pi2.yml — из-за этого Jinja-шаблоны молча брали дефолты.
3. ansible.cfg — мелкие, но полезные настройки
Добавил минимальный ansible.cfg в проект:
roles_path=./roles;gathering=explicit(факты включаю только там, где нужны);небольшие SSH-настройки для стабильности.
vault_password_file имеет смысл добавлять только когда реально используется vault, иначе Ansible начинает ругаться.
4. Добавил на Raspberry Pi Мониторинг: VictoriaMetrics + Grafana
Мониторинг вынес на более мощную Raspberry Pi, а Orange Pi оставил агентом:
VictoriaMetrics + Grafana в Docker Compose;
node_exporter на обоих устройствах;
сбор метрик через static targets.
В итоге стенд стал аккуратнее.
Если интересно — базовая архитектура и исходная версия описаны в предыдущей статье.



