В первой части цикла я показал, как автоматизировать тестирование микроконтроллеров вручную, во второй — как развернуть CI/CD стенд с помощью Docker-контейнера. Но даже с Docker остаётся много рутинных шагов при настройке среды на новых машинах. Решение — автоматизация через Ansible, чтобы практически полностью избавиться от ручных команд.

Ansible позволяет описать все шаги настройки среды в виде ролей и запускать их одной командой. Теперь я больше НИКОГДА не буду проделывать эти шаги руками и вспоминать, что ещё нужно доустановить в систему прежде чем ставить нужную мне утилиту.

Что входит в коллекцию

Коллекция содержит роли для установки:

  • arm-none-eabi-gcc (кросс-компилятор для ARM)

  • SEGGER J-Link (отладчик и программатор)

  • can-utils и драйвер PEAK CAN (для работы с CAN-шиной)

Роли можно комбинировать, расширять, использовать выборочно.

Быстрый старт

  1. Настройте целевую машину (Ubuntu, OpenSSH, Ansible). Установите Ansible:

    sudo apt update && sudo apt install ansible
    
  2. Установите коллекцию через Ansible Galaxy:

    ansible-galaxy collection install paulfirs.baremetal
    
  3. Создайте playbook, например, site.yml, либо возьмите готовый из exmples:

    - hosts: all
      become: yes
      roles:
        - paulfirs.baremetal.install_eabi_arm_gcc
        - paulfirs.baremetal.install_jlink
        - paulfirs.baremetal.install_can_tools
    
  4. Запустите playbook:

    ansible-playbook -i "user@host," site.yml --ask-pass --ask-become-pass
    
    • -i "user@host," — инвентори в виде строки (можно использовать файл inventory)

    • --ask-pass — запрос пароля пользователя для SSH (если не используется ключ)

    • --ask-become-pass — запрос пароля для sudo (root-доступ) Можно использовать inventory-файл для массовой настройки.

Особенности реализации

  • PEAK CAN драйвер всегда скачивается с официального сайта, актуальная версия.

  • Все роли используют become: yes для работы с системными файлами и пакетами.

  • Все зависимости устанавливаются автоматически.

  • README содержит подробные инструкции по установке и запуску.

Преимущества подхода

  • Быстрая и повторяемая настройка любого baremetal-окружения.

  • Минимум ручных действий — всё делается одной командой.

  • Легко расширять: можно добавить новые роли для других инструментов, либо исключить ненужные из site.yml.

  • Легко интегрировать в CI/CD пайплайны.

Заключение

Если вы часто настраиваете Linux-машины для embedded-разработки — попробуйте автоматизировать этот процесс с помощью Ansible. Экономьте время и избегайте ошибок!

Репозиторий: GitHub
Ansible Galaxy: paulfirs.baremetal