Commit Graph

20 Commits (cbbf87eb42e9a93fe1cf39ed01ae8a0cd0f879b4)

Author SHA1 Message Date
John Fulton da797aaae1 This update has the following changes for the rolling update playbook.
1. Change how sysvinit ceph is determined to be enabled

For mons, the playbook checks if sysvinit is enabled by trying to
stat /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/sysvinit [1].
However, that file is not created when a monitor is configured to
use sysvinit, instead, Ansible's service module is used [2]. Ansible
2.0 can verify if a service is enabled and does this by checking for
a glob, in this context it would be '/etc/rc?.d/S??ceph' [3]. Because
Ansible 1.9 does not support this feature, this change updates
rolling_update.yml by checking if sysvinit is enabled by having stat
glob for the same pattern and following the symlink. This is done only
for the mons.

2. Change how sysvinit ceph is restarted

The playbook passes the argument "mon" to the sysv init script
but, the init script does not necessarily take that argument and
it failed when tested on a RHEL7 system. However, dropping the
argument and just using Ansible's service module for state=restarted
worked so this change does not have this line for when
monsysvinit.stat.exists. A similar change is in this pull request
for the OSD restart (removing args=osd).

A second ceph mon restart command is run regardless of any conditions
being met. I am not sure why the service is restarted in the case of
upstart or sysvinit and then restarted again. I am going to assume
there is a subtle reason for this and not touch this second run but I
added a condition so that when ansible_os_family is Red Hat, then mon
is not passed as an argument, otherwise it is restarted as was already
in place.

[1] https://github.com/ceph/ceph-ansible/blob/v1.0.3/rolling_update.yml#L32-L33
[2] https://github.com/ceph/ceph-ansible/blob/v1.0.3/roles/ceph-mon/tasks/start_monitor.yml#L42-L45
[3] https://github.com/ansible/ansible-modules-core/blob/stable-2.0/system/service.py#L492-L493
2016-04-07 23:55:15 -04:00
Matt Thompson a227a50ab2 Control when ceph packages get updated
Currently, all the ceph package installation resources use
"state=latest", which means subsequent runs of the ceph playbooks
could result in ceph being upgraded if there are package updates
available in the selected repo.

This commit adds a new variable to ceph-common called
'upgrade_ceph_packages' which defaults to False.  This variable is used
in the package installation resources for ceph packages to determine if
the resource should use "state=present" or "state=latest".  If the
variable gets set to True, "state=latest" will be used.

Additionally, we update rolling_update.yml to override
upgrade_ceph_packages to true to permit package upgrades in this
context specifically.

Closes issue #506
2016-02-02 09:56:40 +00:00
Michael Sambol c187e1ff83 Revert "Use stat module instead of shell" 2015-08-07 00:07:51 -05:00
Michael Sambol 4531b67a4f Use stat module instead of shell 2015-08-05 23:06:09 -05:00
Michael Sambol e6f22b948c Failed_when instead of ignore_errors
Changed ignore_errors to failed_when so the output doesn't show in
red.
2015-07-29 13:35:46 -05:00
leseb 08add29d92 Modify the repo to host reoles on the galaxy
Signed-off-by: leseb <seb@redhat.com>
2015-07-24 18:14:59 +02:00
Sébastien Han 5c2fb75adb Add more OSD flags
We don't really want to trigger any sort of scrubbing process while
performing the upgrade.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>

Conflicts:
	rolling_update.yml
2015-04-27 19:08:05 +02:00
Yin Jifeng 154c5aa4b5 make sure a running mon to check when upgrade mon 2015-04-17 10:04:52 +08:00
Yin Jifeng 2f0f873cc1 gather facts first
there are vars like hostvars["rgws"]["ansible_hostname"] under
ceph-common
2015-04-15 03:50:39 +08:00
Yin Jifeng 617ce6e91d fix service arg typo 2015-04-15 03:47:37 +08:00
Yin Jifeng 4ce15f70df cleanup delegate statement for rolling update 2015-04-14 22:02:05 +08:00
Yin Jifeng 44b37469d2 fix syntax for when statement 2015-04-14 22:02:02 +08:00
Sébastien Han 557c5790d9 Improve regex syntax
Chain sed commands with ';' and add '-s' to grep for quiet output

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-30 22:13:29 +02:00
Sébastien Han 6aaea43d1c Merge branch 'master' of https://github.com/ceph/ceph-ansible into improve-rolling-upgrade 2015-03-30 17:29:28 +02:00
Sébastien Han 6f806cc3be Improve rolling upgrades
Re-arrange the files.
Add new checks.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-26 17:44:32 +01:00
Sébastien Han 74ede6e166 Merge branch 'master' of https://github.com/jjoos/ceph-ansible into jjoos-master
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>

Conflicts:
	roles/ceph-common/defaults/main.yml
	roles/ceph-common/tasks/Debian.yml
	roles/ceph-osd/tasks/journal_collocation.yml
	roles/ceph-osd/tasks/osd_directory.yml
	roles/ceph-osd/tasks/raw_journal.yml
	roles/ceph-osd/tasks/raw_multi_journal.yml
2014-11-06 15:18:56 +01:00
jjoos 5e8141f8cf Sweep of all sorts of things. 2014-09-04 21:14:11 +02:00
Sébastien Han 2fe0342708 Rename roles' names
I added a 'ceph-' prefix to all the roles related to Ceph. Since we are
about to push the roles into the Ansible Galaxy that will be easier when
we want to use these roles into a larger environement with other roles.

Fixes: #94

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-07-08 15:39:42 +02:00
Alexis Lahouze 8b3f428f1f Replaced all by the list of host groups to be able to run the playbook with non-ceph servers. 2014-06-26 09:52:06 +02:00
Sébastien Han a984854956 Add Ceph Playbook
Initial commit.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-03 19:08:51 +01:00