odoo

odoo

Последний тест

Содержимое

Используйте эту роль для установки последней версии odoo из исходников на ваш сервер Ubuntu.

Требования

Эта роль требует Ubuntu.

Переменные роли

Установите переменные odoo и параметры конфигурации:

odoo_release: latest  # например, 16, 17
# установите odoo_source_install в false, чтобы установить из ночных пакетов
odoo_source_install: false
odoo_config: []
# Используйте формат ключ/значение для параметров конфигурации
# - key: db_name
#   value: odoo
# - key: admin_passwd
#   value: S3cr3t!
# Инициализация баз данных
odoo_init_databases: []
# - database: odoo_1
#   language: de_DE

Пример плейбука

- hosts: odoo
  become: yes
  roles:
  - { role: andrelohmann.odoo }

Разработка роли

Особая цель

Этот репозиторий поддерживает следующие функции для разработки роли:

  • 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 + расширение remote extensionpack (зависимости определены в .vscode/extensions.json)

Настройка разработки

Эта ansible роль разрабатывается с использованием molecule для тестирования. Она разрабатывается с применением Visual Studio Code и соответствующего контейнера для разработки, решающего все зависимости в отношении необходимых инструментов (ansible, линтер, molecule).

Роль будет тестироваться на Ubuntu Noble.

Чтобы запустить тестовые контейнеры 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 --all

Vagrant + Virtualbox

  • Перейдите в корневой каталог вашей роли
  • Перейдите в папку vagrant
  • Запустите и войдите в машину vagrant
vagrant up
vagrant ssh
  • Перейдите в папку роли
cd /etc/ansible/roles/ansible-role- [tab]
  • Теперь вы можете запустить все тесты
yamllint .
ansible-lint .
molecule create
molecule test --all

Процесс сборки и выпуска

Роль 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 из Preferences -> API Key
  • Откройте свой репозиторий роли на github
  • Настройки -> Секреты и переменные -> Действия -> Новый секрет репозитория
  • Используйте "GALAXY_API_KEY" в качестве ключа и скопированный ключ API galaxy в качестве значения

Лицензия

MIT

Информация об авторе

© Andre Lohmann (и другие) 2024

https://github.com/andrelohmann

Контакт для сопровождения

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
О проекте

ansible galaxy role to install odoo from sources

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