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

Предварительные требования

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • Установленный 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 role to install nodejs from nodesource

Установить
ansible-galaxy install andrelohmann/ansible-role-nodesource
Лицензия
mit
Загрузки
7533
Владелец