ansible-role-odoo14/roles/odoo/tasks/main.yml

150 lines
3.0 KiB
YAML

---
- name: Install apt packages
apt:
name: '{{ apt_packages }}'
- name: Create odoo user
user:
name: odoo
comment: Odoo 14 user
shell: /bin/bash
- name: Prepare folders for Odoo
file:
path: '{{ item }}'
state: directory
mode: '0755'
owner: odoo
loop:
- /var/log/odoo
- /opt
- /home/odoo/.local/share/Odoo/filestore/agofer
- /home/odoo/src
- /etc/odoo
- name: Install python packages
pip:
virtualenv: /home/odoo/.venv/odoo
virtualenv_python: python3.8
virtualenv_command: python3.8 -m venv
name: '{{ python_packages }}'
- name: Clone current Odoo code
git:
repo: 'ssh://git@gitea.agofer.net:22001/Agofer/odoo14_running_code.git'
dest: /opt
depth: 1
- name: Install python requirements for Odoo
pip:
virtualenv: /home/odoo/.venv/odoo
virtualenv_python: python3.8
virtualenv_command: python3.8 -m venv
requirements: /opt/odoo/odoo/requirements.txt
- name: Download and install wkhtmltopdf
apt:
deb: https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.focal_amd64.deb
- name: Link wkhtmltopdf scripts
file:
dest: '/usr/bin/{{ item }}'
src: '/usr/local/bin/{{ item }}'
state: link
loop:
- wkhtmltopdf
- wkhtmltoimage
- name: Create odoo database user
become: true
become_user: postgres
postgresql_user:
name: '{{ item }}'
role_attr_flags: SUPERUSER
loop:
- odoo
- agofer
- name: Retrieve database backup
synchronize:
mode: pull
compress: no
src: rsync://backups.bogota.agofer/db14/db_odoo_agofer.gz
dest: /home/odoo/db_odoo_agofer.sql.gz
# name: Uncompress database backup due to Ansible bug
# command:
# cmd: gunzip /home/odoo/db_odoo_agofer.sql.gz
# creates: /home/odoo/db_odoo_agofer.sql
- name: Create database
become: true
become_user: postgres
postgresql_db:
name: agofer
owner: odoo
- name: Restore database
become: true
become_user: postgres
postgresql_db:
name: agofer
state: restore
target: /home/odoo/db_odoo_agofer.sql.gz
- name: Configure Odoo log rotation
copy:
src: logrotate
dest: /etc/logrotate.d/odoo
mode: '0644'
- name: Configure Nginx
copy:
src: custom_502.html
dest: /etc/nginx/custom_502.html
mode: '0644'
- copy:
src: nginx.conf
dest: /etc/nginx/sites-available/odoo14
mode: '0644'
- file:
state: link
src: /etc/nginx/sites-available/odoo14
dest: /etc/nginx/sites-enabled/odoo14
- file:
state: link
src: /etc/nginx/custom_502.html
dest: /usr/share/nginx/html/custom_502.html
- file:
state: absent
path: /etc/nginx/sites-enabled/default
- name: Restart Nginx
systemd:
name: nginx
state: restarted
- name: Configure Odoo
template:
src: odoo.conf.j2
dest: /etc/odoo/odoo.conf
mode: '0640'
owner: odoo
group: odoo
- copy:
src: systemd_unit
dest: /etc/systemd/system/odoo.service
- name: Enable and restart Odoo service
systemd:
name: odoo
enabled: true
state: started