ceph-ansible/infrastructure-playbooks
Guillaume Abrioux b72d806f4c mgr: fix mgr keyring error on rolling_update
when upgrading from RHCS 2.5 to 3.2, it fails because the task `create
ceph mgr keyring(s) when mon is containerized` has a when condition
`inventory_hostname == groups[mon_group_name]|last`.
First, this is incorrect because `inventory_hostname` is referring to a
mgr node, it means this condition would have never been satisfied.
Then, this condition + `serial: 1` makes the mgr keyring creating skipped on
the first node. Further, the `ceph-mgr` role tries to copy the mgr
keyring (it's not aware we are running `serial: 1`) this leads to a
failure like the following:

```
TASK [ceph-mgr : copy ceph keyring(s) if needed] ***************************************************************************************************************************************************************************************************************************************************************************
task path: /usr/share/ceph-ansible/roles/ceph-mgr/tasks/common.yml:10
Tuesday 27 November 2018  12:03:34 +0000 (0:00:00.296)       0:11:01.290 ******
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AnsibleFileNotFound: Could not find or access '~/ceph-ansible-keys/48d78ac1-e0d6-4e35-ab3e-772aea7828fc//etc/ceph/local.mgr.magna021.keyring'
failed: [magna021] (item={u'dest': u'/var/lib/ceph/mgr/local-magna021/keyring', u'name': u'/etc/ceph/local.mgr.magna021.keyring', u'copy_key': True}) => {"changed": false, "item": {"copy_key": true, "dest": "/var/lib/ceph/mgr/local-magna021/keyring", "name": "/etc/ceph/local.mgr.magna021.keyring"}, "msg": "Could not find or access '~/ceph-ansible-keys/48d78ac1-e0d6-4e35-ab3e-772aea7828fc//etc/ceph/local.mgr.magna021.keyring'"}
```

The ceph_key module is idempotent, so there is no need to have such a
condition.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1649957

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 73287f91bc)
2018-11-28 23:11:46 +01:00
..
untested-by-ci don't use "static" field while including tasks 2018-10-04 07:44:28 +00:00
vars infrastructure playbooks: ensure nvme_device is defined in lv-create.yml 2018-10-29 08:41:42 +00:00
README.md rolling_update: fix wrong indent 2016-10-26 12:51:08 -05:00
add-osd.yml add-osds: followup on 3632b26 2018-10-17 17:07:25 +02:00
ansible.cfg Cleanup plugins directories and references 2018-03-14 11:15:39 +01:00
ceph-keys.yml mon/client: remove acl code 2018-04-23 18:34:58 +02:00
gather-ceph-logs.yml infra: add a gather-ceph-logs.yml playbook 2018-10-17 13:52:19 +00:00
lv-create.yml infrastructure playbooks: ensure nvme_device is defined in lv-create.yml 2018-10-29 08:41:42 +00:00
lv-teardown.yml lv-teardown: fail silently if lv_vars.yml is not found 2018-08-16 16:38:23 +02:00
purge-cluster.yml remove configuration files for ceph packages on ubuntu clusters 2018-11-09 16:50:25 +01:00
purge-docker-cluster.yml purge: actually remove of /var/lib/ceph/* 2018-09-27 17:45:21 +02:00
purge-iscsi-gateways.yml igw: stop tcmu-runner on iscsi purge 2018-11-09 16:50:04 +01:00
rgw-standalone.yml infrastructure-playbooks: update with ceph-defaults roles 2017-08-02 17:12:20 +02:00
rolling_update.yml mgr: fix mgr keyring error on rolling_update 2018-11-28 23:11:46 +01:00
shrink-mon.yml shrink-mon: fix typo in the code doc 2017-10-27 11:59:22 +02:00
shrink-osd.yml shrink-osd: follow up on 36fb3cde 2018-09-18 07:27:41 +00:00
switch-from-non-containerized-to-containerized-ceph-daemons.yml switch: allow switch big clusters (more than 99 osds) 2018-10-10 16:35:30 -04:00
take-over-existing-cluster.yml take-over-existing-cluster: do not call var_files 2018-08-20 14:47:04 +02:00

README.md

Infrastructure playbooks

This directory contains a variety of playbooks that can be used independently of the Ceph roles we have. They aim to perform infrastructure related tasks that would help use managing a Ceph cluster or performing certain operational tasks.

To use them, you must move them to ceph-ansible's root directory, then run using ansible-playbook <playbook>.