Chris St. Pierre [Fri, 26 Feb 2016 21:39:27 +0000 (15:39 -0600)]
Fix openstack config skipping
Previously, creating pools was skipped if cephx was disabled; instead,
we should only skip key creation if cephx is disabled, and create
pools any time openstack_config is true.
Chris St. Pierre [Thu, 25 Feb 2016 13:57:50 +0000 (07:57 -0600)]
Skip keyring tasks when cephx is disabled
Skip a number of ceph keyring-related tasks (or remove the keyring
portion of some tasks) when cephx is disabled. Specifically, avoid
generating the initial keyring, which only clutters up the ansible
repo if cephx is not in use.
Chris St. Pierre [Tue, 23 Feb 2016 16:27:55 +0000 (10:27 -0600)]
Improve firewall checks
The firewall checks can fail for any number of reasons -- e.g., the
ceph cluster hostnames are unresolvable from the ansible host, or the
ports are filtered by some intermediate hop, etc. Make two changes to
make those checks better:
* Set pipefail when running the checks, so if nmap itself fails the
command will be marked as 'failed'. Specifically, this fixes the
case where the hostnames cannot be resolved.
* Add a new variable, check_firewall, which can be used to disable
checks entirely. Specifically, this fixes the case where some
intermediate firewall filters the ports, so nmap returns "filtered".
Chris St. Pierre [Tue, 23 Feb 2016 17:30:26 +0000 (11:30 -0600)]
Make RHEL installs honor ceph_origin: distro
Installs on RHEL with ceph_origin set to distro previously would fail
because no packages would get installed, but all of the checks passed
fine. This adds support for ceph_origin: distro, simply installing the
packages using yum/dnf and assuming that the sysadmin has provided a
repository containing them.
This also supports the use case where Satellite or a similar local
mirror is in use, and the admin does not or cannot use the additional
repositories the role would otherwise add.
Andrew Schoen [Thu, 18 Feb 2016 15:39:18 +0000 (09:39 -0600)]
a playbook to add an OSD to an existing cluster
The playbook uses the ceph-fetch-keys role to connect to the mons and
retrieve keys for the OSD bootstrapping. Ensure that all your mons for
the cluster you're adding the OSD to is in your inventory in the mons
group. This ensures that a proper ceph.conf is created for the new OSD.
Andrew Schoen [Wed, 17 Feb 2016 22:15:57 +0000 (16:15 -0600)]
Adds a new ceph-fetch-keys role
The purpose of this is so we can connect to the mons and gather the keys
needed to configure an OSD or additonal MON without having to reconfigure
the existing mons at the same time.
Andrew Schoen [Mon, 15 Feb 2016 21:29:06 +0000 (15:29 -0600)]
make mandatory variable checks only apply when needed
In our use case we might only be configuring mons and not osds in the
same call, so we don't want to check variables needed for osds when they
are not needed to configure a mon.
Sébastien Han [Thu, 11 Feb 2016 23:54:09 +0000 (00:54 +0100)]
ceph-osd: fix register variable
as stated in https://github.com/ansible/ansible/issues/4297
if we register a variable twice and even if a task is skipped the
register will not get overwritten... So we use the fact variant as
mentionned in the ansible issue.
Sébastien Han [Thu, 11 Feb 2016 21:40:59 +0000 (22:40 +0100)]
ceph-osd: fix the auto discovery scenario
While this is not widly used (AFAIK :p) the feature was broken. Thanks
to @zmc for reporting it. You can now set `osd_auto_discovery` to
true in your group_vars/osd and it will go through all the devices
available and will make them OSDs.
Matt Thompson [Tue, 9 Feb 2016 09:51:31 +0000 (09:51 +0000)]
Change modes to string values
Currently deploying a MON fails with "bad symbolic permission for mode"
errors due to the file/directory modes not being interpreted as octal
values. This commit updates roles/ceph-common/tasks/main.yml to set
the file/directory modes to strings so they can be interpreted
correctly.
At the moment, all the tasks using the file module are duplicated to have differents ownerships depending on the fact `is_ceph_infernalis`.
The goal of this commit is to have a new logic for this:
- First set facts depending on the `is_ceph_infernalis` fact
- Create the files or directories using the setted facts as ownerships.
Sébastien Han [Tue, 2 Feb 2016 10:23:28 +0000 (11:23 +0100)]
ceph-common: use a generic way to create uuid
as reported in #510 some systems don't have uuidgen installed so we
better use a more global way to generate it. It sounds like python
should be available in case uuidgen is not.
Otherwise we will have to find another way :)
Matt Thompson [Fri, 29 Jan 2016 15:54:59 +0000 (15:54 +0000)]
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.