nodesource
nodesource
Содержание
Используйте эту роль для установки nodejs из репозитория nodesource на вашем сервере с Ubuntu.
Требования
Эта роль требует Ubuntu.
Переменные роли
Набор переменных по умолчанию определяет версию узла и по возможности должен быть переопределен в group_vars/host_vars.
nodesource_nodejs_version: '20'
Пример плейбука
- hosts: nodesource
roles:
- { role: andrelohmann.nodesource }
Разработка роли
Специальное назначение
Этот репозиторий поддерживает следующие функции для разработки роли:
- yamllint
- ansible-lint
- тестирование с помощью molecule
- действия GitHub
- автоматическое обновление версии
- обновление ansible-galaxy
- отображение статуса сборки
- тестирование в vagrant (для целей разработки)
- тестирование с molecule (внутри или вне vagrant)
- тестирование в контейнере Docker
- тестирование и разработка внутри vscode
Предварительные требования
- Установленный Virtualbox + Vagrant (необходимо только если роль также должна быть протестирована с vagrant)
- Docker Desktop
- VisualStudioCode + пакет расширений для удаленной работы (зависимости определены в .vscode/extensions.json)
Настройка разработки
Эта ansible роль разрабатывается с использованием molecule для тестирования. Ее разработка основана на Visual Studio Code и соответствующем контейнере разработки, который решает все зависимости в отношении необходимых инструментов (ansible, линтер, molecule).
Роль будет протестирована на трех контейнерах Ubuntu (bionic, focal, jammy).
Для запуска тестовых контейнеров molecule из контейнера разработки, необходимо биндинговать сокет Docker в контейнер разработки.
Важные папки и файлы
.devcontainer
- Определяет Dockerfile для контейнера разработки
- Настраивает запуск контейнера разработки (например, биндинг сокета Docker)
molecule/default/Dockerfile.js
- Используется как шаблон для всех платформ, определенных в molecule/default/molecule.yml
- Подготавливает среды для поддержки системных служб systemd (необходимо для некоторых ansible ролей, работающих с systemd)
- Устанавливает все требования для запуска ansible против производного контейнера
- Файл согласован с атрибутами платформ в molecule/default/molecule.yml
- Для получения дополнительной информации - изучите документацию molecule
Использование
Visual Studio Code
- Перейдите в корневую директорию вашей роли и запустите vscode
code .
- В контейнере разработки вы можете использовать следующие команды
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Перейдите в корневую директорию вашей роли
- Перейдите в папку vagrant
- Запустите и войдите в машину vagrant
vagrant up
vagrant ssh
- Перейдите в папку роли
cd /etc/ansible/roles/ansible-role- [tab]
- Теперь вы можете запустить все тесты
yamllint .
ansible-lint .
molecule create
molecule test
Процесс сборки и выпуска
Ansible роль определяет набор рабочих процессов GitHub для выполнения тестов molecule и управления выпуском.
Управление выпуском требует нескольких настроек.
Защита ветки master/main
- Настройки -> Ветки -> Добавить правило защиты ветки
- Имя паттерна ветки -> main или master (в зависимости от вашей основной ветки)
- Защита сопоставляющих веток -> выберите "Требовать запрос на вытягивание перед слиянием"
- "Требование одобрений" можно обрабатывать индивидуально по мере необходимости
Предоставление прав на чтение и запись для GITHUB_TOKEN
- Настройки -> Действия -> Общие -> Разрешения рабочих процессов -> права на чтение и запись
Сообщения о коммитах
Сообщения о коммитах должны следовать специальному формату, чтобы достичь обновления семантического версионирования патча, минорного или мажорного обновления.
патч
0.0.x
fix(single_word): описание
минорный
0.x.0
feat(single_word): описание
мажорный
x.0.0
perf(single_word): описание
BREAKING CHANGE: описание разрывающего изменения
Крайне важно, чтобы "BREAKING CHANGE: " упоминалось на второй и последующих строках. В случае однострочных сообщений о коммитах, обновление мажорной версии будет проигнорировано.
Добавить секрет GALAXY_API_KEY
- Аутентифицируйтесь с помощью вашей учетной записи GitHub на https://galaxy.ansible.com/.
- Получите ключ API Galaxy из Настройки -> Ключ API
- Откройте ваш репозиторий ролей на GitHub
- Настройки -> Секреты и переменные -> Действия -> Новый секрет репозитория
- Используйте "GALAXY_API_KEY" в качестве ключа и скопированный ключ API Galaxy в качестве значения
Лицензия
MIT
Информация об авторе
© Андре Ломанн (и другие) 2023
https://github.com/andrelohmann
Контакт для обслуживающего персонала
- Андре Ломанн <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann/ansible-role-nodesource