andrelohmann.wkhtmltopdf
wkhtmltopdf
Содержание
Используйте эту роль для установки консольного генератора PDF wkhtmltopdf + полного набора шрифтов Google для использования в сгенерированных PDF-документах.
wkhtmltopdf устанавливается из источников распределения Ubuntu.
Требования
Эта роль требует наличие Ubuntu.
Переменные роли
Стандартный набор переменных можно использовать, чтобы решить, нужно ли устанавливать весь набор шрифтов Google.
wkhtmltopdf_install_google_fonts: true
Извлеките актуальную версию тега здесь.
Пример playbook
- hosts: wkhtmltopdf
roles:
- { role: andrelohmann.wkhtmltopdf }
Разработка роли
Специальные функции
Этот репозиторий поддерживает следующие функции для разработки роли:
- yamllint
- ansible-lint
- molecule test
- github action
- автоматическое обновление версии
- обновление ansible-galaxy
- отображение статуса сборки
- тестирование внутри vagrant (для целей разработки)
- тестирование с molecule (внутри или вне vagrant)
- тестирование с помощью контейнера docker
- тестирование и разработка внутри vscode
Предварительные условия
- Установленные Virtualbox + Vagrant (только если роль должна быть протестирована с помощью vagrant)
- Docker Desktop
- VisualStudioCode + пакет расширений для удаленной работы (зависимости определены в .vscode/extensions.json)
Настройка разработки
Эта роль Ansible разрабатывается с использованием molecule для тестирования. Ее разработка основана на Visual Studio Code и соответствующем контейнере для разработки, который решает все зависимости относительно необходимых инструментов (ansible, linter, molecule).
Роль будет тестироваться на Ubuntu 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 и управления релизами.
Управление релизами требует нескольких настроек.
Защита основной ветки
- Настройки -> Ветки -> Добавить правило защиты ветки
- Имя шаблона ветки -> 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
Информация об авторе
© Андре Лохман (и другие) 2024
https://github.com/andrelohmann
Контакт для поддержки
- Андре Лохман <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.wkhtmltopdf