Commit Graph

148 Commits (b354445914c24f2c6764d3cf2f25320d23701320)

Author SHA1 Message Date
Sébastien Han 443f3465fd ceph-common: fix mon startup for dev installation
closes: #602 and #587

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-03-07 13:28:54 +01:00
Alfredo Deza 44e68923d1 install centos or rhel dependencies depending on ansible_distribution
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-03-02 18:05:37 -05:00
Sébastien Han 1ebb4de7f3 rollback previous change for ceph-common change
changing the name of the directory causes issues with git subtree which
will create new commits. Creating a symlink for vagrant to be happy.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-03-02 18:44:36 +01:00
Sébastien Han d2359c1445 wip: galaxy roles dependencies
in order to have a build on the galaxy we need to have a proper
dependency set for ceph-common. On the galaxy ceph-common does not
exist, only ceph.ceph-common is available.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-03-02 13:52:56 +01:00
Zack Cerza b27684d912 Optionally install ceph-test
We want this to enable testing with existing teuthology jobs.

https://github.com/ceph/teuthology

Signed-off-by: Zack Cerza <zack@redhat.com>
2016-03-01 16:23:06 -07:00
Chris St. Pierre a157186ef6 Fix pre-infernalis RBD client directory mode
0644 should never be a directory mode. 1777 makes it so that any user
can create a ceph client, not just root. (This is helpful if, for
instance, nova-compute is running as non-root.)
2016-02-29 11:58:20 -06:00
Leseb e06a05014c Merge pull request #569 from stpierre/skip-generate-fsid
Add option to skip generating fsid
2016-02-29 16:11:46 +01:00
Sébastien Han 1051958a61 ceph-common: only change task when false
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-29 15:57:40 +01:00
Sébastien Han 4e14b47174 ceph-common: use saner defaults for ceph dir
re-use the logic introduced in #512 for the ceph directory and the
`ceph.conf` file.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-29 11:10:56 +01:00
Chris St. Pierre 8e0d53e5a4 Add option to skip generating fsid
If using another method to generate a consistent fsid, then we can
skip creation of an (unused) cluster UUID file. If cephx is disabled
as well, we can skip creation of the fetch directory entirely.
2016-02-25 10:29:12 -06:00
Leseb e9f3e792b0 Merge pull request #559 from stpierre/rhel-ceph-origin-distro
Make RHEL installs honor ceph_origin: distro
2016-02-24 13:48:13 +01:00
Leseb 9cd2bdb74a Merge pull request #528 from bengland2/iso_mount
make sure /etc/fstab is always valid at boot time no matter what
2016-02-24 10:42:36 +01:00
Ben England 87b078ce86 revert absent->unmounted as leseb requested 2016-02-23 16:43:45 -05:00
Chris St. Pierre 53af359c65 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".
2016-02-23 11:38:25 -06:00
Chris St. Pierre 731c39a179 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.
2016-02-23 11:30:26 -06:00
Andrew Schoen bcf34d539f 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.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-02-16 10:43:36 -06:00
Andrew Schoen beb966421e add the package-install tags to some tasks in check_mandatory_vars
We'll want these checks to always run when we're installing packages

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-02-16 10:43:36 -06:00
Leseb f86da22ce6 Merge pull request #543 from ceph/min_free_kbytes
ceph-common: calculate vm.min_free_kbytes
2016-02-16 16:27:23 +01:00
Sébastien Han 68a9d45a49 ceph-common: use stdout for the register var
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-16 16:26:56 +01:00
Sébastien Han 7ea9d95815 ceph-common: do not calculate vm.min_free_kbytes
we preserve the default kernel value.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-16 15:40:49 +01:00
Sébastien Han 4ede7211a0 ceph-common: calculate vm.min_free_kbytes
based on the os memory we calculate the value for vm.min_free_kbytes

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-15 15:03:10 +01:00
Niklas Haas 20e6f932dd
ceph-common: use explicit action syntax for config_template
This fails with "ERROR! no action detected in task" otherwise.
2016-02-14 20:58:04 +01:00
Sébastien Han 2d1cec643d use the ansible_version variable
use the builtin variable to check the ansible version

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-11 17:34:44 +01:00
Ben England b0ee3616a5 make sure /etc/fstab is always valid at boot time no matter what 2016-02-09 15:02:55 -05:00
Matt Thompson 14cf9f434e 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.

Closes issue #525
2016-02-09 09:51:31 +00:00
Leseb d050179121 Merge pull request #512 from guits/quick_fix
Refact code using `set_fact` to handle 'legacy' versions
2016-02-05 16:41:35 +01:00
Guillaume Abrioux dcec63adc8 Refact code using `set_fact`
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.
2016-02-05 16:14:01 +01:00
Sébastien Han c0a3837d6e ceph-common: replace 'sudo' by 'become'
to avoid warning from ansible v2. works for both `1.9.4` and `2.0.0.2`.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-04 12:36:46 +01:00
Andrew Schoen df7c8da0e9 Adds a package-install tag to all installation tasks
We have a requirement to install the packages first without
configuration. These tags should allow us to target the tasks need to do
that.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-02-03 11:27:16 -06:00
Leseb b37443dd97 Merge pull request #508 from mattt416/upgrade_flag
Control when ceph packages get updated
2016-02-02 15:16:03 +01:00
Sébastien Han 5ef844988e 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 :)

closes #510

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-02 11:24:58 +01: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
Sébastien Han 2665c43f34 fix type on ice template
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-29 01:15:32 +01:00
Sébastien Han 17bc64e1ea use dnf when yum is not available
fixes the `importError: No module named yum` see here:
https://jenkins.ceph.com/job/ceph-ansible-pull-requests/45/console

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-28 19:11:22 +01:00
Sébastien Han 21cd46bf8a remove unecessary variables
these variables will be created on the fly, there is no need to force
them.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-27 23:58:51 +01:00
Sébastien Han 64b32020e9 Necessary change to work on ansible v2
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-25 11:21:30 +01:00
Byron McCollum a9dceb6ca3 Configurable Ceph Conf Directory Permissions
This change allows for configurable Ceph Conf Directory permissions. This
is required for integrators of Ceph, like OpenStack Cinder, which needs to
read from /etc/ceph for operation.
2016-01-17 17:57:09 -06:00
Ben England b5cdacb136 help ansible find repo template from installs subdirectory 2016-01-15 12:52:31 -05:00
Logan V d23b27e6d7 allow customization of debian ceph stable repo url 2016-01-11 12:13:09 -06:00
Sébastien Han 789834f847 Do not make nmap mandatory
We can not force people to have nmap installed so instead we raise a
warning is not present.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-10 17:22:17 +01:00
Sébastien Han 0a576bebf9 Fix firewall check
Use command module instead of shell since we do not do anything fancy
here. Remove the duplicate register.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-10 16:52:37 +01:00
Sébastien Han 9209f50868 Check for blocked ports
As raised in #466 it is important in order to avoid unnecessary
troubleshooting to check that ceph ports are allowed on the platform.
The check runs a nmap command from the host running Ansible
to all the ceph nodes with their respective ports.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-08 18:57:13 +01:00
Ben England 3ba824ffd8 use proper syntax for expanding variables 2016-01-08 08:54:00 -05:00
Leseb 1664316d4d Merge pull request #460 from crcceph/master
fixed for infernalis on EL7
2015-12-17 10:22:51 +01:00
crcceph d89ddb1cee moved set_fact higher in file
moved set_fact for is_ceph_infernalis near top of file so that it can be used in other tests
2015-12-16 11:01:39 -08:00
crcceph 923cd6fc2c move set_fact above test
moved the set_fact above where it is being tested
2015-12-16 09:01:36 -08:00
Sébastien Han 4407967de0 Using config_template
Thanks to @cloudnull great patch at
https://github.com/ansible/ansible/pull/12555
we now have the ability to add more configuration options instead of
having to push a PR to add a new option to the template. So you can
dynamically add and remove flags.

To use it, edit `ceph_conf_overrides` in `group_vars/all` like so:

```
ceph_conf_overrides
 global:
     foo: 12345
     bar: 6789
```

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-12-16 17:19:50 +01:00
crcceph 4dd993ebae changed permissions under ceph user
when running under the user ceph the rbd client directory should be owned by ceph
2015-12-15 23:19:07 -08:00
Sébastien Han e6a9727478 Support infernalis for rh storage
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-12-15 22:07:45 +01:00
Eike Frost d49e8bd904 Add systemd-specific start/restart tasks/handlers for el7/infernalis 2015-11-20 22:34:29 +01:00