Hi Zhang,
I followed the upgrade EE instructions by my EE upgrade is failing.
FYI my vmail1 directory is on a mounted drive.
-------------------
==========================================
{
"activesync_server": "sogo",
"adminer_base_uri": "adminer",
"dovecot_enable_fts": true,
"fail2ban_extra_ignore_ip": [
"xx.xx.xx.xx",
"xx.xx.xx.xx",
"xx.xx.xx.xx"
],
"firewall_rules": [
{
"allow_all": true,
"allowed_clients": null,
"port": 25,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 80,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 110,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 143,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 443,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 465,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 587,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 993,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 995,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
},
{
"allow_all": true,
"allowed_clients": null,
"port": 2202,
"protocol": "TCP",
"reject_all": false,
"rejected_clients": null
}
],
"first_mail_domain": "domain.net",
"inventory_hostname": "host.domain.net",
"inventory_hostname_short": "host",
"iredmail_backend": "mariadb",
"iredmail_init_deploy": false,
"iredmail_remove_components": false,
"iredmail_update_adminer": true,
"iredmail_update_antispam": true,
"iredmail_update_backup": true,
"iredmail_update_bind": true,
"iredmail_update_fail2ban": true,
"iredmail_update_firewall": true,
"iredmail_update_iredapd": true,
"iredmail_update_mariadb": true,
"iredmail_update_netdata": true,
"iredmail_update_phpfpm": true,
"iredmail_update_preparations": true,
"iredmail_update_roundcube": true,
"iredmail_update_sogo": true,
"iredmail_update_vmaildb": true,
"iredmail_update_zpush": true,
"iredmail_version": 2025060301,
"iredweb_base_uri": "admin",
"netdata_base_uri": "netdata",
"newsletter_base_uri": "newsletter",
"postfix_enable_smtps": true,
"roundcube_base_uri": "mail",
"roundcube_min_password_length": 12,
"sa_bayes_isolation_level": "server",
"self_service_base_uri": "self-service",
"sogo_min_password_length": 12,
"sogo_password_has_letter": true,
"sogo_password_has_number": true,
"sogo_password_has_special_char": true,
"sogo_password_has_uppercase": true,
"storage_base_dir": "/var/vmail",
"trusted_clients": [
"xx.xx.xx.xx",
"xxxx:xxxx:xxxx:xxxx::1",
"xx.xx.xx.xx",
"xxxx:xxxx:xxxx:xxxx::1"
],
"use_adminer": true,
"use_antispam": true,
"use_backup": true,
"use_bind": true,
"use_fail2ban": true,
"use_firewall": true,
"use_iredapd": true,
"use_netdata": true,
"use_phpfpm": true,
"use_roundcube": true,
"use_sogo": true,
"use_zpush": true
}
==========================================
Upgrade iRedMail - full-featured mail server solution.
TASK [common] Get basic info of target system for further troubleshooting.
- Distribution: Rocky-9.5
- CPU: 4 core(s), amd64
- Memory: 7494 MB
- SWAP: 4095 MB
- iRedMail backend: mariadb
- Docker: False
changed [2.152797ms]
TASK [common] Get version of deployed iRedMail Enterprise Edition.
changed [214.86µs]
Deployed version: 2025060301
Running version: 2025060301
TASK [preparations] RedHat/CentOS: Change server hostname to inventory hostname.
ok: /etc/hostname [116.384µs]
TASK [preparations] Make sure 'dbus' service is running.
changed: dbus [22.95128ms]
TASK [preparations] Set hostname without rebooting server.
changed [109.40746ms]
TASK [preparations] Update /etc/hosts to include inventory hostname in `127.0.0.1` line.
changed: /etc/hosts [107.991µs]
TASK [preparations] Enable required yum repositories: baseos, appstream, crb
changed [402.260326ms]
TASK [preparations] Enable required yum repository: extras
changed [329.194078ms]
TASK [preparations] RHEL/CentOS: Make sure package `epel-release` is present.
ok: epel-release [16.036832ms]
TASK [preparations] RHEL/CentOS: Make sure repo `epel-next` is disabled.
failed
stderr: Error: No matching repo to modify: epel-next.
[ERROR] task error: exit status 1, Error: No matching repo to modify: epel-next.
...ignore error
TASK [preparations] [RHEL/CentOS] Append `module_hotfixes=1` to iRedMail yum repo file.
changed: /etc/yum.repos.d/iRedMail.repo [138.039µs]
TASK [preparations] RHEL/CentOS: Remove expired yum repo cache.
changed [374.750706ms]
TASK [preparations] Install required base packages.
ok: acl bzip2 cronie curl dbus dnf-plugins-core firewalld gzip python3-dnf-plugins-core python3-PyMySQL python3-psycopg2 python3-libselinux openssl rsyslog rsyslog-logrotate unzip tar wget [373.232597ms]
TASK [preparations] RHEL/CentOS: Detect /etc/selinux/config.
changed [82.171µs]
TASK [preparations] RHEL/CentOS: Disable SELinux immediately with `setenforce`.
failed
stderr: setenforce: SELinux is disabled
[ERROR] task error: exit status 1, setenforce: SELinux is disabled
...ignore error
TASK [preparations] RHEL/CentOS: Update /etc/selinux/config.
changed: /etc/selinux/config [297.238µs]
TASK [preparations] Create directory used to store SSL cert/key/ca files: /opt/iredmail/ssl.
ok: /opt/iredmail/ssl [183.716µs]
TASK [preparations] Generate self-signed SSL cert and key.
ok [61.06µs]
TASK [preparations] Generate full chain.
ok [32.525µs]
TASK [preparations] Generate Diffie Hellman Group (512 bits) with openssl.
ok [29.361µs]
TASK [preparations] Generate Diffie Hellman Group (2048 bits) with openssl. It may take some time, please be patient.
ok [23.09µs]
TASK [preparations] sysctl: Linux tuning.
changed: fs.file-max=20000000 [2.90218ms]
changed: fs.nr_open=20000000 [1.751858ms]
TASK [preparations] Create directories used to store additional files.
ok: /opt/iredmail [120.517µs]
ok: /opt/iredmail/bin [90.641µs]
TASK [preparations] Check whether /var/vmail is a symlink.
changed [71.985µs]
TASK [preparations] Create storage base directory.
ok: /var/vmail [86.917µs]
TASK [preparations] rsyslog: Make sure directory used to store modular config files exists.
ok: /etc/rsyslog.d [84.323µs]
TASK [preparations] [RHEL/CentOS] rsyslog: Enable rsyslog module 'lmregexp' to filter log content.
changed: /etc/rsyslog.conf [137.488µs]
TASK [preparations] Create unix group: vmail.
changed: vmail [3.448983ms]
TASK [preparations] Create unix user: vmail.
changed: vmail [11.107679ms]
TASK [firewall] RHEL/CentOS: Install firewalld package.
ok: firewalld firewalld-filesystem [43.170527ms]
TASK [firewall] RHEL/CentOS: Generate firewall rule.
ok: /etc/firewalld/zones/iredmail.xml [6.661646ms]
TASK [firewall] RHEL/CentOS: Set default firewall zone to 'iredmail'
changed: /etc/firewalld/firewalld.conf [431.316µs]
TASK [firewall] RHEL/CentOS: Enable and restart firewalld service.
changed: firewalld [1.462527634s]
TASK [bind] Install Bind (DNS server) packages.
ok: bind bind-utils [36.914951ms]
TASK [bind] Enable Bind service.
changed: named [326.028857ms]
TASK [bind] Configure Bind (cache-only).
ok: /etc/named.conf [3.937592ms]
TASK [bind] Use 127.0.0.1 as first DNS server in /etc/resolv.conf.
changed: /etc/resolv.conf [264.409µs]
TASK [bind] Detect /var/spool/postfix/etc/resolv.conf
changed [61.695µs]
TASK [bind] Use 127.0.0.1 as first DNS server in /var/spool/postfix/etc/resolv.conf.
changed: /var/spool/postfix/etc/resolv.conf [88.885µs]
TASK [bind] LOG: Generate modular rsyslog config file: /etc/rsyslog.d/1-iredmail-bind.conf
ok: /etc/rsyslog.d/1-iredmail-bind.conf [2.022054ms]
TASK [bind] LOG: Generate modular logrotate config file: /etc/logrotate.d/bind.
ok: /etc/logrotate.d/bind [1.551936ms]
TASK [bind] LOG: Create log directory: /var/log/named.
changed: /var/log/named [234.45µs]
TASK [bind] LOG: Set owner / group / permission for log directory.
ok: /var/log/named [67.33µs]
TASK [bind] LOG: Set owner / group / permission: /var/log/named/named.log.
ok: /var/log/named/named.log [39.879µs]
TASK [bind] Start Bind service.
changed: named [305.310153ms]
TASK [mariadb] Install MariaDB server.
ok: mariadb-server [23.002151ms]
TASK [mariadb] Enable MariaDB service.
changed: mariadb [362.048145ms]
TASK [mariadb] Create directory used to store custom modular config files: /opt/iredmail/custom/mysql.
changed: /opt/iredmail/custom/mysql [2.494518ms]
TASK [mariadb] Generate /opt/iredmail/custom/mysql/README.
ok: /opt/iredmail/custom/mysql/README [1.02797ms]
TASK [mariadb] Generate main config file my.cnf.
ok: /etc/my.cnf [4.340678ms]
TASK [mariadb] Check whether MariaDB server had been initialized.
changed [196.706µs]
TASK [mariadb] Increase max open file descriptors.
ok: /etc/security/limits.d/mysql.conf [903.029µs]
TASK [mariadb] Systemd: Create directory used to store modular systemd config file.
ok: /etc/systemd/system/mariadb.service.d [69.964µs]
TASK [mariadb] Systemd: Generate /etc/systemd/system/mariadb.service.d/override.conf.
ok: /etc/systemd/system/mariadb.service.d/override.conf [505.285µs]
TASK [mariadb] systemctl daemon-reload
changed [309.325434ms]
TASK [mariadb] Restart MariaDB service.
changed: mariadb [860.110846ms]
TASK [mariadb] Pause 5 seconds to wait for MariaDB service online.
changed [5.005352461s]
TASK [mariadb] Make sure MariaDB service is running.
changed: mariadb [21.990061ms]
TASK [mariadb] Create user root@127.0.0.1 and set password.
failed
stderr: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[ERROR] task error: exit status 1, ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
...ignore error
failed
stderr: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[ERROR] task error: exit status 1, ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
...ignore error
TASK [mariadb] Debian/Ubuntu: Reset root password(s).
failed
stderr: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[ERROR] task error: exit status 1, ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
...ignore error
TASK [mariadb] Reset MySQL root password.
failed
stderr: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[ERROR] task error: exit status 1, ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
...ignore error
TASK [mariadb] Remove database: test.
changed [18.144564ms]
TASK [mariadb] Delete anonymous SQL user.
changed [13.863921ms]
TASK [mariadb] Generate ~/.my.cnf-root.
ok: /root/.my.cnf [199.674µs]
TASK [mariadb] Generate logrotate config file: /etc/logrotate.d/mysql.
ok: /etc/logrotate.d/mysql [874.816µs]
TASK [vmaildb] [SQL] Generate file on disk from embedded file: extend_mailbox.mysql.
changed: /tmp/upload.sql [2.84649ms]
TASK [vmaildb] [SQL] Import file (MariaDB).
changed [19.563505ms]
TASK [vmaildb] [SQL] Remove uploaded file.
changed: /tmp/upload.sql [187.929µs]
TASK [postfix] Stop and disable conflict MTA services.
failed: exim
[ERROR] task error: failed in starting service exim: exit status 5, Failed to stop exim.service: Unit exim.service not loaded.
...ignore error
failed: exim4
[ERROR] task error: failed in starting service exim4: exit status 5, Failed to stop exim4.service: Unit exim4.service not loaded.
...ignore error
failed: sendmail
[ERROR] task error: failed in starting service sendmail: exit status 5, Failed to stop sendmail.service: Unit sendmail.service not loaded.
...ignore error
failed: smtpd
[ERROR] task error: failed in starting service smtpd: exit status 5, Failed to stop smtpd.service: Unit smtpd.service not loaded.
...ignore error
TASK [postfix] Install Postfix packages.
ok: postfix postfix-pcre cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain [119.03405ms]
ok: postfix-mysql [16.81056ms]
TASK [postfix] Enable Postfix service.
changed: postfix [385.359492ms]
TASK [postfix] Run shell script for advanced customizations: /opt/iredmail/custom/postfix/custom.sh.
changed [5.546404ms]
TASK [iredapd] Create unix group: iredapd.
changed: iredapd [6.273677ms]
TASK [iredapd] Create unix user: iredapd.
changed: iredapd [12.473733ms]
TASK [iredapd] Install dependent packages.
ok: python3-sqlalchemy python3-dns python3-PyMySQL python3-ldap python3-psycopg2 [109.815701ms]
INCLUDE [iredapd] Install iRedAPD (version 5.9.1).
TASK [iredapd] Copy systemd service script.
ok: /lib/systemd/system/iredapd.service [224.039µs]
TASK [iredapd] systemctl daemon-reload
changed [362.190491ms]
TASK [iredapd] Enable iRedAPD service.
changed: iredapd [382.390971ms]
TASK [iredapd] SQL: Create database: iredapd.
changed [10.074319ms]
TASK [iredapd] SQL: Create and grant permissions to user 'iredapd'.
changed [51.453902ms]
TASK [iredapd] Generate ~/.my.cnf-iredapd.
ok: /root/.my.cnf-iredapd [388.795µs]
TASK [iredapd] Create SQL tables.
changed [18.056859ms]
TASK [iredapd] Add cron job: iRedAPD: Clean up expired tracking records hourly.
changed [93.816µs]
TASK [iredapd] Add cron job: iRedAPD: Convert SPF DNS record of specified domain names to IP
changed [600.853µs]
TASK [iredapd] Generate config file: /opt/iredapd/settings.py.
changed: /opt/iredapd/settings.py [16.363112ms]
TASK [iredapd] Create directory used to store custom config file: /opt/iredmail/custom/iredapd.
ok: /opt/iredmail/custom/iredapd [108.12µs]
TASK [iredapd] Make sure custom config file exists: /opt/iredmail/custom/iredapd/settings.py.
ok: /opt/iredmail/custom/iredapd/settings.py [121.988µs]
TASK [iredapd] Create symbol link: /opt/iredmail/custom/iredapd/settings.py -> /opt/iredapd/custom_settings.py.
changed: /opt/iredapd/custom_settings.py [2.104475ms]
TASK [iredapd] Make sure SQL structure is up to date.
changed [3.398233842s]
TASK [iredapd] LOG: Generate modular rsyslog config file: /etc/rsyslog.d/1-iredmail-iredapd.conf
changed: /etc/rsyslog.d/1-iredmail-iredapd.conf [8.54701ms]
TASK [iredapd] LOG: Generate modular logrotate config file: /etc/logrotate.d/iredapd.
changed: /etc/logrotate.d/iredapd [9.052332ms]
TASK [iredapd] LOG: Create log directory: /var/log/iredapd.
changed: /var/log/iredapd [242.856µs]
TASK [iredapd] LOG: Set owner / group / permission for log directory.
ok: /var/log/iredapd [76.571µs]
TASK [iredapd] LOG: Set owner / group / permission: /var/log/iredapd/iredapd.log.
changed: /var/log/iredapd/iredapd.log [6.176625ms]
failed: systemd-timesyncd
[ERROR] task error: failed in starting service systemd-timesyncd: exit status 5, Failed to stop systemd-timesyncd.service: Unit systemd-timesyncd.service not loaded.
...ignore error
TASK [ntp] Install ntp/chrony server to sync local time.
ok: chrony [18.692543ms]
TASK [ntp] Enable and restart ntp/chrony service.
changed: chronyd [494.402174ms]
TASK [dovecot] Install Dovecot packages.
ok: dovecot dovecot-pigeonhole dovecot-mysql [76.69553ms]
TASK [dovecot] Enable Dovecot service.
changed: dovecot [299.601391ms]
TASK [dovecot] Systemd: Create directory used to store modular systemd config file.
ok: /etc/systemd/system/dovecot.service.d [63.663µs]
TASK [dovecot] Systemd: Generate /etc/systemd/system/dovecot.service.d/override.conf.
ok: /etc/systemd/system/dovecot.service.d/override.conf [746.384µs]
TASK [dovecot] systemctl daemon-reload
changed [294.943863ms]
TASK [dovecot] Create required directories.
failed: /var/vmail/vmail1
[ERROR] task error: /var/vmail/vmail1 already exists as a symbol link
[ERROR] task:
file:
dest: '{{ item }}'
group: '{{ sys_group_vmail }}'
mode: "0700"
owner: '{{ sys_user_vmail }}'
recurse: "no"
state: directory
loop:
- '{{ storage_mailboxes_dir }}'
- '{{ public_mailbox_dir }}'
- '{{ sieve_dir }}'
- '{{ dovecot_extprogram_dir }}'
- '{{ dovecot_sieve_pipe_bin_dir }}'
- '{{ dovecot_imapsieve_copy_dir }}'
name: Create required directories.
task error: /var/vmail/vmail1 already exists as a symbol link
-------------------