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
Предварительные требования
- Установлен 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 install andrelohmann/ansible-role-odoo