181 lines
4.2 KiB
YAML
181 lines
4.2 KiB
YAML
---
|
|
- name: Instalar Apache y PHP 8.2
|
|
apt:
|
|
name:
|
|
- apache2
|
|
- php8.2
|
|
- php8.2-cli
|
|
- php8.2-fpm
|
|
- php8.2-pgsql
|
|
- php8.2-curl
|
|
- php8.2-gd
|
|
- php8.2-intl
|
|
- php8.2-xml
|
|
- php8.2-zip
|
|
- php8.2-mbstring
|
|
- php8.2-ldap
|
|
- libapache2-mod-php8.2
|
|
- wget
|
|
- unzip
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Habilitar módulos Apache necesarios
|
|
apache2_module:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- rewrite
|
|
- headers
|
|
notify: restart apache
|
|
|
|
- name: Crear directorio base Dolibarr
|
|
file:
|
|
path: /var/www/dolibarr
|
|
state: directory
|
|
owner: www-data
|
|
group: www-data
|
|
mode: '0755'
|
|
|
|
- name: Descargar Dolibarr 20.0.2
|
|
get_url:
|
|
url: https://github.com/Dolibarr/dolibarr/archive/refs/tags/20.0.2.tar.gz
|
|
dest: /tmp/dolibarr-20.0.2.tar.gz
|
|
timeout: 120
|
|
|
|
- name: Extraer Dolibarr
|
|
unarchive:
|
|
src: /tmp/dolibarr-20.0.2.tar.gz
|
|
dest: /tmp/
|
|
remote_src: yes
|
|
creates: /tmp/dolibarr-20.0.2
|
|
|
|
- name: Mover contenido a /var/www/dolibarr
|
|
shell: |
|
|
cp -r /tmp/dolibarr-20.0.2/htdocs /var/www/dolibarr/
|
|
cp -r /tmp/dolibarr-20.0.2/scripts /var/www/dolibarr/
|
|
args:
|
|
creates: /var/www/dolibarr/htdocs
|
|
|
|
- name: Crear directorios necesarios
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: www-data
|
|
group: www-data
|
|
mode: '0755'
|
|
loop:
|
|
- /var/www/dolibarr/documents
|
|
- /var/www/dolibarr/htdocs/conf
|
|
- /var/www/dolibarr/htdocs/custom
|
|
|
|
- name: Crear conf.php inicial
|
|
template:
|
|
src: conf.php.j2
|
|
dest: /var/www/dolibarr/htdocs/conf/conf.php
|
|
owner: www-data
|
|
group: www-data
|
|
mode: '0640'
|
|
|
|
- name: Configurar permisos correctos
|
|
file:
|
|
path: "{{ item }}"
|
|
owner: www-data
|
|
group: www-data
|
|
recurse: yes
|
|
loop:
|
|
- /var/www/dolibarr/htdocs/conf
|
|
- /var/www/dolibarr/documents
|
|
|
|
- name: Crear VirtualHost Apache para Dolibarr
|
|
copy:
|
|
dest: /etc/apache2/sites-available/dolibarr.conf
|
|
content: |
|
|
<VirtualHost *:8080>
|
|
ServerAdmin admin@localhost
|
|
DocumentRoot /var/www/dolibarr/htdocs
|
|
|
|
<Directory /var/www/dolibarr/htdocs>
|
|
Options -Indexes +FollowSymLinks
|
|
AllowOverride All
|
|
Require all granted
|
|
</Directory>
|
|
|
|
<Directory /var/www/dolibarr/documents>
|
|
Require all denied
|
|
</Directory>
|
|
|
|
ErrorLog ${APACHE_LOG_DIR}/dolibarr-error.log
|
|
CustomLog ${APACHE_LOG_DIR}/dolibarr-access.log combined
|
|
</VirtualHost>
|
|
notify: restart apache
|
|
|
|
- name: Cambiar Apache a puerto 8080
|
|
lineinfile:
|
|
path: /etc/apache2/ports.conf
|
|
regexp: '^Listen 80'
|
|
line: 'Listen 8080'
|
|
notify: restart apache
|
|
|
|
- name: Deshabilitar sitio default
|
|
command: a2dissite 000-default
|
|
notify: restart apache
|
|
ignore_errors: yes
|
|
|
|
- name: Habilitar sitio Dolibarr
|
|
command: a2ensite dolibarr
|
|
notify: restart apache
|
|
|
|
- name: Asegurar Apache iniciado
|
|
systemd:
|
|
name: apache2
|
|
state: started
|
|
enabled: yes
|
|
|
|
- name: Esperar a que Apache esté listo
|
|
wait_for:
|
|
port: 8080
|
|
timeout: 30
|
|
|
|
- name: Crear install.lock para seguridad
|
|
file:
|
|
path: /var/www/dolibarr/documents/install.lock
|
|
state: touch
|
|
owner: www-data
|
|
group: www-data
|
|
mode: '0444'
|
|
|
|
- name: Crear script backup Dolibarr
|
|
copy:
|
|
dest: /usr/local/bin/backup-dolibarr.sh
|
|
mode: '0755'
|
|
content: |
|
|
#!/bin/bash
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_DIR="/opt/backups/dolibarr"
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
tar -czf "$BACKUP_DIR/dolibarr_files_$DATE.tar.gz" \
|
|
/var/www/dolibarr/documents \
|
|
/var/www/dolibarr/htdocs/conf
|
|
|
|
su - postgres -c "pg_dump {{ core_db_credentials.dolibarr_db_name }}" | gzip > "$BACKUP_DIR/dolibarr_db_$DATE.sql.gz"
|
|
|
|
find "$BACKUP_DIR" -mtime +14 -delete
|
|
|
|
echo "✓ Backup Dolibarr: $DATE"
|
|
|
|
- name: Crear directorio backups Dolibarr
|
|
file:
|
|
path: /opt/backups/dolibarr
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: Programar backup semanal Dolibarr
|
|
cron:
|
|
name: "Backup Dolibarr"
|
|
weekday: "0"
|
|
hour: "4"
|
|
minute: "0"
|
|
job: "/usr/local/bin/backup-dolibarr.sh >> /var/log/dolibarr-backup.log 2>&1"
|