lucascbeyeler / zimbra Goto Github PK
View Code? Open in Web Editor NEWAnsible role to install and configure Zimbra Collaboration Open Source Edition
License: GNU General Public License v3.0
Ansible role to install and configure Zimbra Collaboration Open Source Edition
License: GNU General Public License v3.0
Need bump version in main.yml
ERROR! Unable to retrieve file contents
Could not find or access '/xxx/xxx/xxx/xxx/ansible/projects/mail/vars/8.8.12.yml' on the Ansible Controller.
If you are using a module and expect the file to exist on the remote, see the remote_src option
{~/.ansible/roles/lucascbeyeler.zimbra}:grep -ri 8.8.12 *
README.md:* **zimbra_version:** Inform which version of Zimbra you want to install. Default: 8.8.12
tasks/vars/8.8.15.yml:- name: Loading the address to the most recent release of Zimbra OSE (8.8.12)
vars/main.yml:zimbra_version: 8.8.12
{~/.ansible/roles/lucascbeyeler.zimbra}:ls tasks/vars/
8.8.15.yml
one error i saw on multiple tests:
TASK [lucascbeyeler.zimbra : Enabling Zimbra's admin through Proxy Server] ******************************************************
task path: /Users/floh/.ansible/roles/lucascbeyeler.zimbra/tasks/configure/proxy.yml:4
[WARNING]: Unable to use /opt/zimbra/.ansible/tmp as temporary directory, failing back to system: [Errno 13] Permission denied:
'/opt/zimbra/.ansible/tmp'
changed: [Zimbra-T] => {"changed": true, "cmd": ["./zmproxyconfig", "-e", "-w", "-C", "-H", "Zimbra-T.florianheigl.me"], "delta": "0:00:07.303162", "end": "2021-04-03 05:11:57.799669", "rc": 0, "start": "2021-04-03 05:11:50.496507", "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
Hi,
first of all, thank you for your effort putting together this role. It looks really good.
But I am having issue during the install (Centos 7 minimal) in this task:
TASK [lucascbeyeler.zimbra : Enabling SpamAssassin Auto Update] ********************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": "zmlocalconfig -e antispam_enable_rule_updates=true", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}
The problem is that the PATH variable is not being loaded and the task uses a relative path to the zmlocalconfig
command.
Quick tests:
ansible localhost -m command -a "zmlocalconfig -e antispam_enable_rule_updates=true" -b --become-user=zimbra
localhost | FAILED | rc=2 >>
[Errno 2] No such file or directory
ansible localhost -m command -a "which zmlocalconfig" -b --become-user=zimbra
localhost | FAILED | rc=1 >>
which: no zmlocalconfig in (/sbin:/bin:/usr/sbin:/usr/bin)
Adding /opt/zimbra/bin/
before the command seems to solve the problem.
Jan
Hey,
nice work on latest version. There is a bug though. The config item has changed into:
mailboxd_truststore="/opt/zimbra/common/lib/jvm/openjdk-11.0.2-zimbra/lib/security/cacerts"
In this moment, the playbook set the timezone as America/Sao_Paulo. For who aren't from Brazil, this is a hindrance and should be changed creating a variable called timezone, and the user could use this var to set the timezone he wants to use.
Please remove this file, because it overrides user-defined vars!
Hello! When I used this role, I got error:
TASK [zimbra : Ensure Pyzor and Razor is installed (Ubuntu)] ******************************************************************************************
task path: /etc/ansible/roles/zimbra/tasks/install/dependencies.yml:16
<80.78.246.69> ESTABLISH SSH CONNECTION FOR USER: None
<80.78.246.69> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 80.78.246.69 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<80.78.246.69> (0, b'/root\n', b'')
<80.78.246.69> ESTABLISH SSH CONNECTION FOR USER: None
<80.78.246.69> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 80.78.246.69 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir "` echo /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438 `" && echo ansible-tmp-1644569647.2353158-450911-155560954076438="` echo /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438 `" ) && sleep 0'"'"''
<80.78.246.69> (0, b'ansible-tmp-1644569647.2353158-450911-155560954076438=/root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438\n', b'')
Using module file /usr/lib/python3/dist-packages/ansible/modules/apt.py
<80.78.246.69> PUT /root/.ansible/tmp/ansible-local-450837_j0orkfs/tmpi5snglyw TO /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/AnsiballZ_apt.py
<80.78.246.69> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 '[80.78.246.69]'
<80.78.246.69> (0, b'sftp> put /root/.ansible/tmp/ansible-local-450837_j0orkfs/tmpi5snglyw /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/AnsiballZ_apt.py\n', b'')
<80.78.246.69> ESTABLISH SSH CONNECTION FOR USER: None
<80.78.246.69> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 80.78.246.69 '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/ /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/AnsiballZ_apt.py && sleep 0'"'"''
<80.78.246.69> (0, b'', b'')
<80.78.246.69> ESTABLISH SSH CONNECTION FOR USER: None
<80.78.246.69> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 -tt 80.78.246.69 '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-bwaijsmlxqzdhpdpxahhhzqwxtkwgsbc ; /usr/bin/python3 /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/AnsiballZ_apt.py'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<80.78.246.69> (1, b'\r\n{"failed": true, "msg": "No package matching \'razor\' is available", "exception": " File \\"/tmp/ansible_apt_payload_4ocpy1z5/ansible_apt_payload.zip/ansible/modules/apt.py\\", line 478, in package_status\\n File \\"/usr/lib/python3/dist-packages/apt/cache.py\\", line 301, in __getitem__\\n raise KeyError(\'The cache has no package named %r\' % key)\\n", "invocation": {"module_args": {"name": ["razor", "pyzor"], "state": "present", "package": ["razor", "pyzor"], "update_cache_retries": 5, "update_cache_retry_max_delay": 12, "cache_valid_time": 0, "purge": false, "force": false, "upgrade": null, "dpkg_options": "force-confdef,force-confold", "autoremove": false, "autoclean": false, "fail_on_autoremove": false, "only_upgrade": false, "force_apt_get": false, "allow_unauthenticated": false, "update_cache": null, "deb": null, "default_release": null, "install_recommends": null, "policy_rc_d": null}}}\r\n', b'Shared connection to 80.78.246.69 closed.\r\n')
<80.78.246.69> Failed to connect to the host via ssh: Shared connection to 80.78.246.69 closed.
<80.78.246.69> ESTABLISH SSH CONNECTION FOR USER: None
<80.78.246.69> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/12bfd75bb0 80.78.246.69 '/bin/sh -c '"'"'rm -f -r /root/.ansible/tmp/ansible-tmp-1644569647.2353158-450911-155560954076438/ > /dev/null 2>&1 && sleep 0'"'"''
<80.78.246.69> (0, b'', b'')
The full traceback is:
File "/tmp/ansible_apt_payload_4ocpy1z5/ansible_apt_payload.zip/ansible/modules/apt.py", line 478, in package_status
File "/usr/lib/python3/dist-packages/apt/cache.py", line 301, in __getitem__
raise KeyError('The cache has no package named %r' % key)
fatal: [nginx]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"allow_unauthenticated": false,
"autoclean": false,
"autoremove": false,
"cache_valid_time": 0,
"deb": null,
"default_release": null,
"dpkg_options": "force-confdef,force-confold",
"fail_on_autoremove": false,
"force": false,
"force_apt_get": false,
"install_recommends": null,
"name": [
"razor",
"pyzor"
],
"only_upgrade": false,
"package": [
"razor",
"pyzor"
],
"policy_rc_d": null,
"purge": false,
"state": "present",
"update_cache": null,
"update_cache_retries": 5,
"update_cache_retry_max_delay": 12,
"upgrade": null
}
},
"msg": "No package matching 'razor' is available"
}
Ubuntu 20.04
Hello,
Can you explain why you force packages in installZimbraScript.j2 but you allow vars {{ zimbra-xxxx }} ?
INSTALL_PACKAGES="zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-memcached zimbra-proxy
Hello!
Good role. Could you please update tasks, because the app of zimbra is very old.
Thank you!
A new release was launched, and this playbook does not reflect the new release anymore. Probably will be something simple as update the vars inside the task folder, but still need to validate if the playbook will run after this changes.
A new release was launched, and this playbook does not reflect the new release anymore. Probably will be something simple as update the vars inside the task folder, but still need to validate if the playbook will run after this changes.
Hello,
Good job for this role could you please add firewall ports configuration ?
in RHEL firewall-cmd ?
Best regards
Policyd is an anti-spam policy daemon for Postfix (written in C) that does Greylisting, Sender-(envelope, SASL or host / ip)-based throttling (on messages and/or volume per defined time unit), Recipient rate limiting, Spamtrap monitoring / blacklisting, HELO auto blacklisting and HELO randomization preventation.
This update will enable PolicyD during the install steps, but only if the user needs to enable it.
The url is unreachable
A new release was launched, and this playbook does not reflect the new release anymore. Probably will be something simple as update the vars inside the task folder, but still need to validate if the playbook will run after this changes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.