- PVSM.RU - https://www.pvsm.ru -
В первой части [1] цикла я показал, как автоматизировать тестирование микроконтроллеров вручную, во второй [2] — как развернуть CI/CD стенд с помощью Docker-контейнера. Но даже с Docker остаётся много рутинных шагов при настройке среды на новых машинах. Решение — автоматизация через Ansible, чтобы практически полностью избавиться от ручных команд.
Ansible позволяет описать все шаги настройки среды в виде ролей и запускать их одной командой. Теперь я больше НИКОГДА не буду проделывать эти шаги руками и вспоминать, что ещё нужно доустановить в систему прежде чем ставить нужную мне утилиту.
Коллекция содержит роли для установки:
arm-none-eabi-gcc (кросс-компилятор для ARM)
SEGGER J-Link (отладчик и программатор)
can-utils и драйвер PEAK CAN (для работы с CAN-шиной)
Роли можно комбинировать, расширять, использовать выборочно.
Настройте целевую машину (Ubuntu, OpenSSH, Ansible). Установите Ansible:
sudo apt update && sudo apt install ansible
Установите коллекцию через Ansible Galaxy:
ansible-galaxy collection install paulfirs.baremetal
Создайте playbook, например, site.yml, либо возьмите готовый из exmples:
- hosts: all
become: yes
roles:
- paulfirs.baremetal.install_eabi_arm_gcc
- paulfirs.baremetal.install_jlink
- paulfirs.baremetal.install_can_tools
Запустите 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 [3]
Ansible Galaxy: paulfirs.baremetal [4]
Автор: PaulFirs
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/e-lektronika/442849
Ссылки в тексте:
[1] первой части: https://habr.com/ru/articles/963298/
[2] второй: https://habr.com/ru/articles/975362/
[3] GitHub: https://github.com/BareMetalTestLab/ansible-collection-baremetal
[4] paulfirs.baremetal: https://galaxy.ansible.com/ui/repo/published/paulfirs/baremetal/
[5] Источник: https://habr.com/ru/articles/988590/?utm_campaign=988590&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.