Kevin Carter [Tue, 12 Apr 2016 04:28:40 +0000 (23:28 -0500)]
Update the config_template plugin
These changes address 2 issues:
* The config template plugin in v1 mode was not respecting a list
of integers and would cause a stacktrace because the ConfigParese
module expects everything written to be a string.
* The config template plugin in v2 mode was not properly handingly
the multi-string-op type due to an oversight in the ``_option_write``
method.
With these updates the config template is now able to better support
all of the potential options that could be thrown at it when writing
an INI config file.
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
Andrew Schoen [Fri, 8 Apr 2016 19:23:12 +0000 (14:23 -0500)]
look at monitor_interface in hostvars when choosing interface or address
This fixes a bug where monitor_interface might be set in your inventory
file and not by using group_vars or --extra-vars causing the template to
use the default address of 0.0.0.0 instead of the defined
monitor_interface.
Instead of creating the RBD client socket path three different places
in three different ways, this creates it once. Ceph on OpenStack users
have the option to customize the permissions of the RBD client
directories.
John Fulton [Fri, 8 Apr 2016 03:55:15 +0000 (23:55 -0400)]
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.
Sébastien Han [Mon, 4 Apr 2016 13:09:44 +0000 (15:09 +0200)]
misc: add a script for vm test env
Vagrant will not always be available everywhere, sometimes we want to
bootstrap a ceph on a virtual machine. This script will help you
bootstrapping a ceph cluster from a development branch only.
So you can run it like this: ./ceph-aio-no-vagrant.sh v10.1.0
To get the v10.1.0 version installed. If the first argument ($1) is
empty then master will be used in consequence.
Sébastien Han [Fri, 1 Apr 2016 13:40:19 +0000 (15:40 +0200)]
ceph-docker: osd fix container prep and start
We now check if the device has already been prepared, if we detect a
ceph partition we do not prepare the device.
Also fixed some issues while running on Atomic or CoreOS.
Kevin Carter [Wed, 30 Mar 2016 22:23:09 +0000 (17:23 -0500)]
Update the config_template plugin for ansible2
This change updates the config_template plugin to load
the version of the config_template needed based on the
detected version of ansible running. Note, Once the
upstream change merges for ansible 2 [0] we should
drop the ansible 2 version of this plugin.
ksingh7 [Mon, 28 Mar 2016 22:34:08 +0000 (01:34 +0300)]
ceph-common: Newline separation for mon_containerized_deployment_with_kv variable in ceph.conf.j2
ceph.conf.j2 template requires a new line between mon_containerized_deployment_with_kv and fsid variables
With this commit , i have added a new line for better readablity
ksingh7 [Sat, 26 Mar 2016 17:47:40 +0000 (19:47 +0200)]
ceph-common: Fix for issue no. 652
ceph.conf file generation task in ceph-common role was getting failed
because it ansible cant find defination of varriable mon_containerized_deployment_with_kv
This fix declare mon_containerized_deployment_with_kv under ceph-common/defaults/main.yml which fixes this issue
Sébastien Han [Fri, 25 Mar 2016 13:15:29 +0000 (14:15 +0100)]
ceph-osd: add support for bluestore
With Jewel comes a new store to store Ceph object: BlueStore. Adding an
extra scenario might seem like a useless duplication however the
ultimate goal is remove the other roles later. Thus this is easier to
add new role instead of modifying existing one. Once we drop the support
for release older than Jewel we will just remove all the previous
scenario files.
Chris St. Pierre [Fri, 25 Mar 2016 13:51:20 +0000 (08:51 -0500)]
Make RBD client directory owner/group configurable
Some versions (?) of libvirt provide a 'libvirt' group instead of
'libvirtd'. (Observed with libvirt-daemon-1.2.17-13.el7_2.2.x86_64.)
This makes the RBD client directory owner and group configurable to
allow for this.