archivematica / Issues

Issues repository for the Archivematica project
GNU Affero General Public License v3.0
16 stars 1 forks source link

Problem: Elasticsearch will not install using Ansible on RHEL7.5 #136

Open jhsimpson opened 6 years ago

jhsimpson commented 6 years ago

Expected behaviour When installing Archivematica using deploy-pub, onto a RedHat Enterprise Linux server, all of the required components should be installed successfully.

Current behaviour The centos7 playbook in the deploy-pub repo currently uses the ansible-elastic playbook provided by Elastic (see https://github.com/artefactual/deploy-pub/blob/dev/centos7-fixes-percona/playbooks/archivematica-centos7/requirements.yml). When running ansible-playbook, instead of getting through the elasticsearch part of the deployment, ansible exits, with an error on the 'install elasticsearch' step, similar to this:

fatal: [redacted_hostname]: FAILED! => {"attempts": 5, "changed": false, "failed": true, "msg": "", "rc": 0, "results": ["elasticsearch-6.2.1-1.noarch providing elasticsearch is already installed"]}

Steps to reproduce Set up a fresh RHEL7.5 server - Use the archivematica-centos7 playbook and deploy to the RHEL server.

Note: this issue can be worked around, by applying this change to the elasticsearch playbook, after it is downloaded using ansible-galaxy.

One solution to this issue would be to file an issue on the https://github.com/elastic/ansible-elasticsearch repo, asking for that PR to be cherry-picked into the 2.x branch. Another solution is to fork that playbook into the artefactual-labs repo.

Your environment (version of Archivematica, OS version, etc) am: stable/1.7.x ansible deployment RHEL 7.5

sevein commented 5 years ago

What's the status of this issue? Is it fixed? Thank you in advance. CC @hakamine @mamedin

mamedin commented 5 years ago

Hi, the requirements.yml file for the CentOS/RedHat deploy-pub playbook has changed. Now it uses the artefactual elasticsearch role.

We could add a task in the elasticsearch role to remove the default RedHat elasticsearch package. But I think it is a task that the sysadmin can run by hand, evaluating first if this elasticsearch service can be purged because this service could have old data from another application or belong to an elasticsearch cluster.

Other option is to add a task to check the elasticsearch package installed, aborting the role run and sending a prompt message when the RedHat default elasticsearch package is installed, in the same way it's done here:

https://github.com/artefactual-labs/ansible-elasticsearch/blob/master/tasks/Debian.yml#L10