Commit Graph

921 Commits (255e816e288b3e0dc485cba73c8b4cc67dfd10b9)

Author SHA1 Message Date
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 1e9f4faa44 Do not set key permissions with cephx: false
If cephx is set to false, the "set keys permissions" task fails with:

file ({# ceph_keys.stdout_lines #}) is absent, cannot continue

This skips that step when cephx is false.
2016-02-23 11:34:27 -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
Sébastien Han 3ce0621b44 ceph-osd: use fact logic to set permissions
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-21 18:27:36 +01:00
Sébastien Han 17fb38294e Octal file permissions must contain leading zero
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-21 18:21:19 +01:00
Andrew Schoen 6fa25fa057 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.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-02-18 09:52: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
Leseb 7c33a27b06 Merge pull request #539 from ceph/rhscon-support
rhscon (storage agent)
2016-02-15 17:43:25 +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
Alfredo Deza da4b7b290c fix wording on defaults main.yml
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-15 07:50:09 -05:00
Alfredo Deza 73928a5d7b only check for subscription manager on RH systems
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-15 07:49:03 -05: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 59b96e9f11 ceph-osd: fix the autodiscovery osd scenario
the parted command wasn't getting the devices properly and the partition
count is not necessary.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-13 23:07:44 +01:00
Alfredo Deza c59d6f00cb check for subscription manager
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 15:54:56 -05:00
Alfredo Deza 2fd5ab18ac create the task to install and configure the agent
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 15:37:06 -05:00
Alfredo Deza 2d0993d4c7 better reword the master host variable
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 13:27:04 -05:00
Alfredo Deza 42e5391723 create a template for the ceph agent minion
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 13:08:32 -05:00
Alfredo Deza 28abc3d6d4 define the supported versions
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 12:01:51 -05:00
Alfredo Deza b4dc6cf43f initial files for the ceph-agent role
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-02-12 11:53:15 -05:00
Sébastien Han 64c458bfcf 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.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-12 00:54:09 +01:00
Sébastien Han b285a5ae8f ceph-osd: simply the regex to check the device
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-11 22:51:23 +01:00
Sébastien Han ea0979cbbe 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.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-11 22:43:09 +01:00
Leseb 78cb5cc726 Merge pull request #534 from ceph/fix-osd-typo
ceph-osd: docker: fix type
2016-02-11 17:59:07 +01:00
Sébastien Han a3cc055e61 ceph-osd: docker: fix type
use ceph_osd_docker_devices and not ceph_osd_docker_device

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-11 17:57:10 +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
Leseb a1a4848023 Merge pull request #526 from mattt416/issue_525
Change modes to string values
2016-02-10 23:54:29 +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
Sébastien Han 774966b671 ceph-rgw: fix docker typo
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-08 15:25:24 +01:00
Sébastien Han fa610cabf7 ceph-ansible: allow to run containerized daemons
run containerized daemons in virtual machines.
to enable it simply do:

`cp site-docker.yml.sample site-docker.yml`

and set `docker: true` in `vagrant_variables.yml`

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-07 22:30:32 +01:00
Sébastien Han fd0dd3d89a ceph-restapi: fix meta file
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-05 17:19:54 +01: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
Leseb d54d6f9888 Merge pull request #502 from ceph/use-dnf
use dnf when yum is not available
2016-01-29 01:03:04 +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
Andrew Schoen 1fc8a17eb0 Add defaults for ceph_stable_ice_tmp_path and ceph_stable_ice_kmod
It seems that in ansible 2.0 even if a task is skipped by it's `when`
clause not evaluating to true the variables in the play are still
rendered. Because these were not defined in defaults/main.yml ansible
was failing in installs/install_on_redhat where those variables are
being used in a `with_items` stanza.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
2016-01-28 11:40:18 -06:00
Sébastien Han f35a665634 Fix pip package name on debian
use python-pip and not pip

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-28 15:55:53 +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
mcsage 8b78b96df5 Changed vm.min_free_kbytes to 4 GB
vm.min_free_kbytes was in bytes not in kbytes.
2016-01-20 20:27:49 +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
Leseb 4466af8c6e Merge pull request #484 from ceph/clarify-ceph-origin-repo
Clarify ceph_origin usage
2016-01-15 19:11:36 +01:00
Sébastien Han 9157656d49 Clarify ceph_origin usage
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-15 19:10:47 +01:00
Ben England b5cdacb136 help ansible find repo template from installs subdirectory 2016-01-15 12:52:31 -05:00
Leseb a4646dd3f2 Merge pull request #478 from rootfs/systemd
systemd unit files fixes for infernalis
2016-01-13 16:22:32 +01:00
Huamin Chen 63bd78c12a review feedback: convert to yml format
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-13 14:13:30 +00:00
Huamin Chen 519a9e91b1 make systemd enable work for osd instance
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-13 00:40:56 +00:00
Huamin Chen 99c429930e make systemd enable work for mon instance
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-12 20:12:40 +00: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
Leseb 72567a741b Merge pull request #468 from bengland2/fix_check_system
use proper syntax for expanding variables
2016-01-08 15:06:07 +01:00
Ben England 3ba824ffd8 use proper syntax for expanding variables 2016-01-08 08:54:00 -05:00
Sébastien Han 1d792fcdb1 Fix condition logic for infernalis in restapi
fixes: #465

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-08 14:52:50 +01: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 6d91bdaf36 added python-setuptools as dependency
CentOS7 needs python-setuptools for /usr/bin/ceph-init-detect to work correctly
2015-12-15 23:23:37 -08: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 f19b765f79 Change default civetweb port to 8080
Because of some permission issue, likely due to the recent ceph user, if
80 is used for civetweb we get:

set_ports_option: cannot bind to 80: 13 (Permission denied)

Changing the port to 8080 until this gets solved.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-12-15 23:28:08 +01:00
Leseb abb86d331d Merge pull request #457 from ceph/rgw-log-dir
Use /var/log/ceph for rgw logs
2015-12-15 23:23:09 +01:00
Sébastien Han 8f6870f3a6 Use /var/log/ceph for rgw logs
We should not bother having another directory for this. So we stick with
the default logging dir.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-12-15 23:22:19 +01:00
Leseb e412ac3f66 Merge pull request #442 from ceph/infernalis-for-rh-storage
Support infernalis for rh storage
2015-12-15 23:20:36 +01: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
Abhishek Varshney bd7c03aa3d removed rgw print continue = false, to set it to its default value of true 2015-12-15 21:35:17 +05:30
Leseb f64920e233 Merge pull request #449 from nexecook/pre-infernalis_fixes
fixes ceph_stable_release logic mentioned in issue #446
2015-12-12 13:34:23 +01:00
Eric Cook 2e7994ef62 fix comment headings 2015-12-11 07:36:09 -05:00
Eric Cook 46af3496d4 Add ceph_stable_releases array to ceph-common/defaults/main.yml
rework the various `when' tests to use that array.
2015-12-09 15:52:23 -05:00
Bjoern Teipel 27fa1cc299 Adding osd_scrub_begin_hour and osd_scrub_end_hour to limit scrub window of 24h if needed
Fixes-Bug: #451
2015-12-09 10:22:59 -06:00
Sébastien Han 3197896973 Reserve some memory
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-12-07 09:01:08 +01:00
Eric Cook ab884c7cb2 fixes ceph_stable_release logic mentioned in issue #446
I changed the argument used for starting the mds server. (pre
infernalis)
```
service ceph start mds
```
errors, while
```
service ceph start mds.$hostname
```
correctly starts the service.

I changed the mds directory ownership from ceph:cephh to root:root
again, for pre-infernalis.

And finally, add the ceph_stable_releases checks for the upstart
activation task `for or after infernalis release'.
2015-12-04 17:36:24 -05:00
Matt Thompson 5db9f45c04 Add run_once to 'copy keys to the ansible server'
I have seen a number of failures on this task due to mismatch of
checksum of source file and destination.  I suspect this is due to a
race condition caused by several hosts simultaneously copying the same
file to single location on the deployment server.

This change simply updates the 'copy keys to the ansible server' task
by adding 'run_once', which limits the task to being run on a single
MON host.

Closes issue #410
2015-12-04 16:14:18 +00:00
Leseb 0e6f509876 Merge pull request #440 from eikef/master
Add systemd-specific start/restart tasks/handlers for el7/infernalis
2015-11-24 14:20:54 +01:00
Sébastien Han d60f5fddd0 Check partition status
Verify that partitions (for both osd disks and journal disks) are sane
before attempting to prepare the device. Fail if parted fails for
whatever reason.

Closes: #437

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-11-23 16:20:08 +01:00
Eike Frost d49e8bd904 Add systemd-specific start/restart tasks/handlers for el7/infernalis 2015-11-20 22:34:29 +01:00
Sébastien Han 83b2a51fe1 Fail for unsupported ansible version
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-11-20 15:30:18 +01:00
Sébastien Han 2fa995a889 Use new Infernalis release
Add proper fixes for the new ceph user and dir/files permissions

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-11-18 11:47:38 +01:00
Sébastien Han fcfac5c1e1 Install pip before using it
Fixes: #430

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-11-16 11:47:23 +01:00
Leseb b93fd938e8 Merge pull request #432 from rootfs/centos
various fixes for CentOS
2015-11-06 12:33:50 +09:00
Leseb 52ce81c757 Merge pull request #433 from dvusboy/fix-start_radosgw-centos
This change address radosgw not getting started on CentOS
2015-11-06 12:31:59 +09:00
K.C. Wong bc1681e0bd Defaults for the ceph-mon role should be setting the 'mon_group_name'
* without this, the handler in ceph-common that depends on
  the value of 'mon_group_name' would fail
2015-11-05 18:31:34 -08:00
K.C. Wong 92246616e5 This change address radosgw not getting started on CentOS
* The explicit check of 'ansible_distribution' being 'RedHat'
  will not work on CentOS hosts.
* Check the value of 'ansible_os_family' instead.
2015-11-05 18:06:41 -08:00
Huamin Chen 860125ff8f various fixes for CentOS
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-11-05 20:39:03 +00:00
Sébastien Han d7c17812dd Ability to collocate bare metal and container
Since we renamed the variables and removed the old 'docker' variable we
can now collocate container daemons with standard bare metal deployment.
For instance, monitors can be containerized but osds can be deployed
traditionally.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 23:18:22 +02:00
Sébastien Han 9264a868fd Add proper permission for selinux
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 12:11:32 +02:00
Sébastien Han 33ed4f5029 Fix typo
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 02:18:48 +02:00
Sébastien Han 2daeb807ed Add safety checks prior to deploy a cluster in containers
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 02:12:43 +02:00
Sébastien Han 5fb7b1be5c Fix typo
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-20 17:17:58 +02:00
Sébastien Han 4c4aa32943 Create missing directories when deploying with docker
Signed-off-by: Sébastien Han <sebhan@cisco.com>
2015-10-20 17:05:34 +02:00
Leseb 324a4745fc Merge pull request #418 from msambol/rgw
Refactor rgw
2015-10-19 13:24:49 +02:00
Leseb 2478d79ce1 Merge pull request #417 from msambol/refactor_mds
Refactor mds
2015-10-19 13:24:42 +02:00
Leseb 9cb8f85c19 Merge pull request #419 from msambol/restapi
Refactor restapi
2015-10-19 11:09:10 +02:00
Leseb 913241d562 Merge pull request #416 from msambol/refactor_osd
Refactor osd role
2015-10-19 11:07:07 +02:00
Michael Sambol ef768fa3a2 Refactor restapi 2015-10-18 22:28:48 -05:00
Michael Sambol dedb7cfd96 Refactor rgw 2015-10-18 22:19:44 -05:00
Michael Sambol 975c8fcfab Refactor mds 2015-10-18 21:56:02 -05:00
Michael Sambol 48b1cf3be2 Refactor osd role 2015-10-18 20:24:47 -05:00
Michael Sambol e424966cbf Refactor ceph monitor role 2015-10-18 20:08:06 -05:00
Bill Sanders ac06e22cb6 Changed URL for Ceph release and developer GPG keys, because previous key URL suffers sporadic timeouts 2015-10-16 13:27:21 -07:00
Ben England 038b26fa7a fix regex syntax for alternative device types 2015-10-09 06:40:57 -04:00
Ben England 543e4cb244 partition number should be at end of string for any device type 2015-10-07 12:50:42 -04:00
Ben England 90d47f77a2 fix regex for partition names, enhance for NVM 2015-10-07 11:40:10 -04:00
Emilien Mantel bd7d776e3b Fix and improve checks when ceph_origin == 'distro' 2015-09-21 18:04:19 +02:00
Sébastien Han e0c588ef4d Use new signed key for packages
See:
http://ceph.com/releases/important-security-notice-regarding-signing-key-and-binary-downloads-of-ceph/

Signed-off-by: Sébastien Han <sebhan@cisco.com>
2015-09-18 08:47:05 +02:00
Leseb 8a5bf6bcf7 Merge pull request #402 from msambol/refactor_ceph_common
Update ceph-common styling
2015-09-04 11:47:06 +02:00
Michael Sambol 66259dc1c9 Refactor ceph-common, adjust styling 2015-09-03 21:09:33 -05:00
Marc Heckmann e279055a3b Support setting the "mon pg warn max object skew" in ceph.conf
It should be used to disable health warnings about number of PGs
being too low if some pools have very few objects bringing down
the average number of objects per pool. This happens when running RadosGW.

The default is 10 and since the warnings only occur with some use cases,
the default here is 10 as well. Set to 20 or more to silence the warnings.
2015-09-03 17:08:51 -04:00
Sébastien Han 5849579fa7 Do not check for devices when device autodetect
Closes: #399

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-09-02 14:19:19 +02:00
Abhishek Varshney d87fbdfffd fixing sysctl command to take whitespace-separated multi values for a key 2015-09-02 12:50:03 +05:30
Leseb 00bca9a535 Merge pull request #394 from ti-mo/master
Enable optional-rpms on official RHEL for yum-plugin-priorities
2015-09-01 17:03:08 +02:00
Timo Beckers e0ebd05565 Enable optional-rpms on official RHEL for yum-plugin-priorities 2015-09-01 16:59:52 +02:00
Sébastien Han 0cbc81622f Get Ceph from distro repository (redhat-based)
Follow up on #392

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-31 15:25:42 +02:00
Leseb 0410f6a258 Merge pull request #389 from AcalephStorage/fix-for-different-monitor-interfaces
Fix for error when the nodes don't have the same interface name.
2015-08-31 14:27:17 +02:00
Leseb d1c8c46bf1 Merge pull request #392 from HanXHX/apt-origin
Get Ceph from distro repository (debian-based)
2015-08-31 14:24:12 +02:00
Emilien Mantel b99355839a Remove capital letters 2015-08-31 14:23:20 +02:00
dexter dd65c5ebb1 use hostvars for monitor interface in ceph.conf if available, else, fallback to just the plain monitor_interface var 2015-08-28 00:41:15 +08:00
Matt Thompson afc934d22a Make fetch directory configurable
Currently, the fetch directory is created in your working directory
(where ansible is run from).  We prefer to not keep any state in this
directory and would prefer to have the fetch directory configurable so
we can store it outside of our code checkout.

This commit creates a new variable in each role called
`fetch_directory` (defaulting to the previous value of 'fetch/'), and
then updates each reference to 'fetch' to use the new variable instead.

Closes issue #383
2015-08-27 16:49:50 +01:00
Emilien Mantel b187393a93 Get Ceph from distro repository (debian-based) 2015-08-27 11:26:54 +02:00
git-harry f60179e33f Prevent failure from race creating fetch directory
When multiple monitor hosts attempt to create the fetch directory there
is the potential for the task to fail with:

  "OSError: [Errno 17] File exists: 'fetch'"

This appear to be an issue with the file module trying to create the
same directory at the same time when the tasks has been delegated to a
single host.

This commit enables run_once on the affected task which should address
the issue.
2015-08-26 10:49:22 +01:00
Sébastien Han b3c7c36299 Make package dependencies configurable
Closes: #386 and #384

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-26 11:21:24 +02:00
dexter a39bd9f2a6 missing quotes. :( 2015-08-26 16:31:01 +08:00
dexter 873c5cffb2 Fix for error when the nodes don't have the same interface name.
This is a rare case but it happens. Since we're just calling
`monitor_interface` and not `hostvars[host]['monitor_interface'],
an error may occur when the current host's interface does not
exist on the other hosts. (eg. eth0 exists for node0, but it does
not exist on node1 and node2)

Fix for this is to use hostvars[host]['monitor_interface']
2015-08-26 16:11:21 +08:00
Michael Sambol d1628a2d28 item.2 changes to item.1 2015-08-17 12:30:03 -05:00
Michael Sambol f132188658 Remove parition check from ceph-osd role
I'm removing the ceph paritition check from `activate osd(s) when device
is a disk` because the ceph parition does not exist when parted was
registered (on a fresh install). This was causing the activate step to
be skipped.
2015-08-17 11:14:06 -05:00
Leseb 861d7296ef Merge pull request #381 from git-harry/openstack-pg-num
Allow configurable pg_num for OpenStack pools
2015-08-17 17:45:50 +02:00
git-harry 835951b3d0 Allow configurable pg_num for OpenStack pools
Currently the OpenStack pools that get created use the default pg_num.
This commit updates the ceph-mon role to allow the pg_num for each pool
to be customised.
2015-08-17 16:14:26 +01:00
Abhishek Varshney e142c21776 removed when condition in ceph-create-keys 2015-08-17 18:59:14 +05:30
Andy McCrae 942f914b84 Check to ensure device checks only happen on osds
Add bool for osd_group_name in group_names for osd checks.
2015-08-17 12:45:20 +01:00
Sébastien Han 476c5df38f Use latest packages
Fix back the rolling update playbook.
However every single time the playbook will run it will check for new
packages and install the latest ones. I don't think this is always the
desired behaviour. We need to find a way to conciliate both...

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-17 11:28:20 +02:00
Andy McCrae 25a45332f3 Fix devices check for raw_multi_journal
Fix the logic for the mandatory devices check so that it applies to
raw_multi_journal and journal_collocation scenarios separately.

This fails otherwise because whichever var is "first" in the or is most
likely undefined.
2015-08-14 15:43:10 +01:00
Leseb 6fa7038ab1 Merge pull request #371 from msambol/revert-367-stat_module
Revert "Use stat module instead of shell"
2015-08-07 09:51:59 +02:00
Leseb d11870cd8d Merge pull request #368 from msambol/ceph_common_readme
Update ceph-common readme
2015-08-07 09:41:25 +02:00
Michael Sambol c187e1ff83 Revert "Use stat module instead of shell" 2015-08-07 00:07:51 -05:00
Sébastien Han 0496a3e0d4 Remove zap variables
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-06 17:34:25 +02:00
Sébastien Han 68248a266b Remove the disk zap function
This will likely one day or another break something. If ceph-disk
complains about a disk just use the purge-cluster.yml playbook first as
it will wipe all the devices.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-06 17:24:21 +02:00
Michael Sambol 4661dc86fd Update ceph-common README 2015-08-06 09:29:30 -05:00
Michael Sambol 36052b15fb Update ceph-common README 2015-08-06 09:27:52 -05:00
Michael Sambol 6b5f278da1 Update ceph-common README 2015-08-06 08:15:42 -05:00
Michael Sambol 0342bc7fcc Update ceph-common README 2015-08-06 08:13:46 -05:00
Michael Sambol 4531b67a4f Use stat module instead of shell 2015-08-05 23:06:09 -05:00
Sébastien Han f671e91e61 Fix the sudoer template
+ cleanup the docker.yml from OSD.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-03 23:53:08 +02:00
Sébastien Han 7ed67f37d8 Remove rgw installation from the ceph-rgw role
The installation of rgw is now handled by the ceph-common role.
Fixes: #307

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-08-03 22:17:43 +02:00
Michael Sambol 32c149d4f5 Verify only one osd scenario 2015-07-31 22:02:05 -05:00
Sébastien Han b47344fdd4 Cleanup and change_when watch
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-30 11:33:08 +02:00
Sébastien Han ecc92768b9 Expose rgw ports
The 'ports' option was missing, so in order to expose a port we need
"expose" and "ports" options.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-30 11:25:46 +02: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
Sébastien Han 3b32abee4d Fix dummy mistakes with variables
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 22:10:14 +02:00
Sébastien Han 4408a8d514 Re-arrange docker invocation and fix bootstrap restapi
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 17:57:58 +02:00
Sébastien Han 7184d21af5 Re-arrange docker invocation and fix bootstrap rgw
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 17:46:56 +02:00
Sébastien Han fea0cc87ec Re-arrange docker invocation and fix bootstrap mds
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 17:25:53 +02:00
Sébastien Han 0508cfea86 Fix the conntrack_max
Fixes: https://github.com/ceph/ceph-docker/issues/19

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 16:48:21 +02:00
Sébastien Han 6d0e8777e2 Re-arrange docker invocation and fix bootstrap
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 16:05:35 +02:00
Leseb 8d323742c7 Merge pull request #346 from ceph/fix-multi-mon-docker
Fix multi-mon docker deployment
2015-07-28 15:55:42 +02:00
Sébastien Han f0600d7561 Re-arrange docker monitor directory for clarity
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 15:44:52 +02:00
Sébastien Han 329e4e4793 Add customisable env variables
Now we can easily pass new variables to bootstrap the container.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 15:32:58 +02:00
Sébastien Han 69ae08b8d7 Fix multi-mon docker deployment
We can now deploy 3 mons on 3 different hosts.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 15:18:59 +02:00
Matt Thompson b12d3374e4 Define dependencies in ceph-common's meta/main.yml
I'm currently getting a KeyError due to missing 'dependencies' on this
role when I attempt to install it with ansible-galaxy (ansible 1.9.2).
This commit simply defines an empty dependencies list so that
ansible-galaxy executes correctly.
2015-07-28 10:48:07 +01:00
Leseb 826e247c3e Merge pull request #343 from ceph/fix-rgw-template
Fix templates file path
2015-07-28 10:05:38 +02:00
Sébastien Han 220e07e842 Fix wrong condition
We obviously want to fetch when the files exists :).

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-27 17:48:04 +02:00
Sébastien Han 07bd04c851 Fix pip module invocation
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-27 17:41:58 +02:00
leseb 18fd87795f Fix templates file path
fixes: #342

Signed-off-by: leseb <seb@redhat.com>
2015-07-27 13:27:21 +02:00
leseb 2cb0fab421 Add contribution note
Signed-off-by: leseb <seb@redhat.com>
2015-07-25 11:10:39 +02:00
Leseb 888ea92854 Merge pull request #340 from ceph/add-readmes
Add READMEs for each roles
2015-07-25 10:55:04 +02:00
leseb d84159bdb3 Add READMEs for each roles
Galaxy here we are!

Signed-off-by: leseb <seb@redhat.com>
2015-07-25 10:51:53 +02:00
Andrew F. Ly 76d2cd381d Create a local fetch directory if it doesn't exist 2015-07-24 22:10:39 -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
Leseb 1c683a9366 Merge pull request #336 from ceph/re-arrange-dir
Re-arrange roles
2015-07-24 16:25:42 +02:00
leseb f1e6b0216d Re-arrange roles
Trying to add more clarity in the role's task structure.

Signed-off-by: leseb <seb@redhat.com>
2015-07-24 14:50:32 +02:00
leseb 518785d113 Fix ceph version return code issue
fixes: #258

Signed-off-by: leseb <seb@redhat.com>
2015-07-24 12:36:45 +02:00
leseb 7bb28afdd8 First steps to Ansible Galaxy
Signed-off-by: leseb <seb@redhat.com>
2015-07-23 11:45:19 +02:00
leseb 1112cf5431 Add primary affinity option
Signed-off-by: leseb <seb@redhat.com>
2015-07-20 14:48:58 +02:00
leseb 5fc4d846a6 Do not track fetch directory
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 18:14:12 +02:00
leseb c8edb29909 Fix monitor key generation
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 15:26:38 +02:00
leseb 444837e9ae Do not change while checking
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 14:34:44 +02:00
leseb c27450ff40 Generate initial monitor key dynamically
Cool stuff :). We don't need to specify an initial monitor key anymore.
A key will automatically be generated.

The default key can always be overriden with the `monitor_secret`
variable.

Signed-off-by: leseb <seb@redhat.com>
2015-07-17 11:58:50 +02:00
leseb b6d5c6634f Add support for image format
By default, we want to use format 2.
This closely works with rbd features as well.

Signed-off-by: leseb <seb@redhat.com>
2015-07-08 14:21:16 +02:00
leseb 4b63bb92ba Fix variable
Should have looked at Travis this time...

Signed-off-by: leseb <seb@redhat.com>
2015-07-08 11:17:27 +02:00
leseb 9831da7510 Re-use public network for private network
We don't always have a dedicated cluster network so we can by default
re-use the public network value.
This is just laziness :).

Signed-off-by: leseb <seb@redhat.com>
2015-07-07 18:18:47 +02:00
leseb afe10d4e53 Disable monitors complain about low pgs per osd
Also add a bunch of option that weren't activated before...

Signed-off-by: leseb <seb@redhat.com>
2015-07-07 17:55:05 +02:00
leseb fd2515f9c5 Activate rgws on rhel7
Signed-off-by: leseb <seb@redhat.com>
2015-07-07 17:41:28 +02:00
leseb f3fc01e94c Activate rados gateway with systemd
Signed-off-by: leseb <seb@redhat.com>
2015-07-07 11:27:52 +02:00
leseb d432af18fe Do not use latest package
While re-running the playbook we do not want to check for new packages.
We shouldn't perform upgrades, we leave this to the operators.

Signed-off-by: leseb <seb@redhat.com>
2015-07-07 10:39:05 +02:00
leseb 40ec00d7f4 Make zap option more secure
Prior to this change, the zap was executed during every play, this was
not ideal. Now we do check if there is a 'ceph' partition. If so we skip
the zap.

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 18:53:31 +02:00
leseb 52ddb461b6 Ignore errors
If we don't ignore errors here, the node will get skipped for the rest
of the playbook...

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 18:22:01 +02:00
leseb ed3a7136da Fix a terrible mistake in the ceph.conf template
Feel so bad about this one...
Now it's fixed, the rgw section will be activated once the rgws hosts
are part of the inventory.

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 17:39:37 +02:00
leseb 070b790af0 Speed up repository check
Even if the subcription command is indempotent it takes around 15/16sec
to get it done. Where with the simple yum check we lower down this to
3sec.

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 17:29:25 +02:00
leseb 6cda705c43 Do not change when adding the repo
Since the command is indempotent we don't need to check if the repo is
enabled as it will likely take twice the time.

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 17:03:31 +02:00
leseb b6f16164c6 Add more client options
Add `rbd_default_features` and `rbd_default_map_options`.

Signed-off-by: leseb <seb@redhat.com>
2015-07-06 13:58:08 +02:00
leseb 7fdc2b1d36 Use more variable check
Fail early if a variable is not defined.

Signed-off-by: leseb <seb@redhat.com>
2015-07-03 21:38:30 +02:00
Leseb 08fad35751 Merge pull request #313 from ceph/change-default-options
Change default options
2015-07-03 18:48:58 +02:00
leseb b0891016a9 Fix the method used
We need to collect the iso from the ansible server.

Signed-off-by: leseb <seb@redhat.com>
2015-07-03 18:43:04 +02:00
leseb 50d1f73afe Change default options
We want to force the user to only enable the options they need. Thus
they shouldn't have to enable one option and then disable another.

Signed-off-by: leseb <seb@redhat.com>
2015-07-03 18:38:30 +02:00
Leseb 17dd29a556 Merge pull request #312 from ceph/disable-cdn-option
Safer check
2015-07-03 16:57:51 +02:00
leseb d331af4e16 Safer check
Without this, the subcription manager will run since the default value
for cdn is true...

Signed-off-by: leseb <seb@redhat.com>
2015-07-03 16:56:34 +02:00
Leseb f4414208d2 Merge pull request #311 from ti-mo/python2-local-action
Use local_action to ensure Ansible executes under python2
2015-07-03 16:54:38 +02:00
leseb 99e401b7c9 Add more repo source for stable
Attempt to fix #305

Signed-off-by: leseb <seb@redhat.com>
2015-07-03 16:35:17 +02:00
Timo Beckers d28bd99f89 Use local_action to ensure Ansible executes under python2 2015-07-03 16:25:17 +02:00
leseb 77b5650180 Add red hat storage cdn installation
Signed-off-by: leseb <seb@redhat.com>
2015-07-03 12:38:17 +02:00
Leseb e3988ca099 Merge pull request #304 from ceph/cleanup-rgw
Cleanup daemon declaration
2015-07-02 15:32:44 +02:00
leseb c670004de2 Cleanup daemon declaration
Now we don't need to activate the services through a variable. If the
role is activated in the inventory, actions will occur automatically.

Fixing the repo creation for red hat storage too.

Signed-off-by: leseb <seb@redhat.com>
2015-07-02 15:22:18 +02:00
leseb 25ac1af009 Tiny fix for a variable undeclared
Signed-off-by: leseb <seb@redhat.com>
2015-07-01 19:15:10 +02:00
leseb 11f72c62f9 Add red hat storage support
The new product version has jsut came out. ICE doesn't exist anymore and
Red Hat Storage is the name of the new product.

Signed-off-by: leseb <seb@redhat.com>
2015-07-01 18:36:26 +02:00
leseb 4463c68ebd Fixes rgw and mon startup on red hat
closes: #297, #264, #265 and #301

Signed-off-by: leseb <seb@redhat.com>
2015-06-30 19:19:08 +02:00
leseb 39ebb8f22e Only apply os-tuning to OSD nodes
There is no need to apply these tuning flags to all the nodes.

Signed-off-by: leseb <seb@redhat.com>
2015-06-30 18:13:03 +02:00
leseb 89355e6b77 Improve handlers
Signed-off-by: leseb <seb@redhat.com>
2015-06-30 18:07:03 +02:00
leseb 083d7740f7 Add restapi container deployment
Signed-off-by: leseb <seb@redhat.com>
2015-06-29 14:19:47 +02:00
leseb c3bc5b3e44 Merge branch 'group_names' of https://github.com/bjne/ceph-ansible into bjne-group_names
Signed-off-by: leseb <seb@redhat.com>

Conflicts:
	roles/ceph-common/handlers/main.yml
	roles/ceph-mon/tasks/ceph_keys.yml
2015-06-26 15:10:50 +02:00
leseb 4a2c7ae0c1 Cosmetic
Add more visibility for the 'when' statement.

Signed-off-by: leseb <seb@redhat.com>
2015-06-26 14:48:05 +02:00
leseb d9a38489f9 Followup on #287
Signed-off-by: leseb <seb@redhat.com>
2015-06-25 23:40:07 +02:00
Bryan Stillwell e634315b5c Correct the logic for running 'ceph-disk prepare'
The logic was broken here for repeated runs.  We only want to run
'ceph-disk prepare' when the disk does not contain a ceph partition, is
not a partition, and raw_multi_journal is set.  Previously it would
attempt to run 'ceph-disk prepare' when there was a ceph partition
because the second half of the 'or' was still true since it isn't a
partition.
2015-06-25 14:29:49 -06:00
Sébastien Han 2929a00041 Update the Docker bootstrap part
We now use ceph/daemon as a default container image so reflecting the
change here.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-25 12:14:23 +02:00
Sébastien Han 3fe1fcc410 Create client socket path
This will avoid some error messages from the client when running a
command with the CLI or other.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-17 13:44:05 +02:00
Sébastien Han 57d6ddc56b Use a bootstrap key for rgw
Following the best practice, we don't create a key from the monitor but
we really on the initial keys created by the mons to bootstrap each
daemon.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-12 14:41:40 +02:00
Sébastien Han b50e525004 Reduce scrubbing impact
Add more param to reduce the scrub overhead.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-11 16:49:57 +02:00
Bjørnar Ness 5588ada332 make group names definable 2015-06-11 02:42:41 +02:00
Sébastien Han e1f0e660e8 Add more flags to RBD clients
More options.
We also now configure the rbd clients directories for logs and socket.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-09 17:20:15 +02:00
Leseb a74b9aeab8 Merge pull request #273 from bjne/rbd_concurrent_management_ops
Add rbd_concurrent_management_ops
2015-06-09 13:35:38 +02:00
Bjørnar Ness a5ed377e4e Add rbd_concurrent_management_ops 2015-06-09 00:42:01 +02:00
Leseb f732412901 Merge pull request #269 from bjne/patch-2
Directory should be executable
2015-06-08 23:50:51 +02:00
Leseb 501c5f2d6c Merge pull request #268 from bjne/patch-1
Directory should be executable
2015-06-08 23:50:47 +02:00
bjne ab2fb1856a simplify running process check
eventually pidof
2015-06-08 18:08:13 +02:00
bjne 154f3d9c05 Directory should be executable
Unless you do this for a specific reason. If so, should be commented.
2015-06-08 18:04:38 +02:00
bjne 8e99920a0d Directory should be executable
This looks like a bug, if not, it should have a comment that tells why
2015-06-08 17:33:56 +02:00
Sébastien Han bdd4cc4363 Add support for Rados Gateway configuration with Keystone
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-03 21:42:16 +02:00
Sébastien Han 8ca8ecc0e1 Fix radosgw startup on RedHat systems
Fix startup and move vars to group_vars

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-06-03 16:31:51 +02:00
Sébastien Han 8b39214ab8 Consmetic changes
This branch has been sitting on my local repo for a while. I guess I had
time to spend on a plane :).

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-05-15 18:27:41 +02:00
Sébastien Han 8dc1554788 Fix multiple things
* fix the Vagrantfile ruby check
* fix the variable positions

Bring more mandatory variables and try to separate Vagrant vars from the
playbook vars.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-05-15 14:32:26 +02:00
Yin Jifeng f0b5691186 make sure journal_size configured 2015-05-14 19:55:09 +08:00
Sébastien Han a37b373357 Ability to secure cluster pools
We set several flags to keep the cluster secure:
* nodelete
* nopgchange
* nosizechange

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-05-12 11:21:16 +02:00
Yin Jifeng 95ca89695c use yum to install ceph noarch package
command + creates prevent the package to be upgraded.

rpm returns 0 when install success, and
1 (Error: Nothing to do) when reinstall the same package
2015-04-16 15:16:18 +08:00
Yin Jifeng a6d012b542 sysctl ignoreerrors
some key fails under CentOS 6
2015-04-15 03:46:03 +08:00
Yin Jifeng efb8e68c69 make RGW directory use same host var
ansible_fqdn is full domain, while hostname may be in short form
2015-04-14 22:00:46 +08:00
Sébastien Han 5927df7962 Add ceph-common role to client machines
Add another warning for cephx signatures

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-04-14 12:53:41 +02:00
Sébastien Han 7b77ce5a9a Use last Ceph release Hammer
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-04-09 10:55:41 +02:00
Sébastien Han d20288c3c2 Only change when the task returns false
We only want to see things that really changed after a play completes.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-04-08 18:46:54 +02:00
Sébastien Han 54353f74e8 Add role dependancies
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-04-08 17:36:40 +02:00
Sébastien Han 6005f446db Rework upstart and sysvinit
Once again and hopefully final commit to rework the support of both
upstart and sysvinit. As from now, Ubuntu systems will use upstart and
the others will use sysvinit.
A later commit might include the support of systemd as the unit files
come out. This will be for Hammer so probably soon.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-30 11:38:19 +02:00
Sébastien Han b6b8437a7a Activate either sysvinit or upstart
Depending on the distro, init scripts will look for different files to
be available on the ceph data dir.
Fixing the upstart support here.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-26 18:23:58 +01:00
Sébastien Han 57b8eef771 Default client is already client.restapi
No need to specify it.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-25 11:29:51 +01:00
Sébastien Han 22348ebce7 Fix RGW startup
If the distribution wasn't Ubuntu, the check wasn't performed so the
evaluation in the task later wasn't possible.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-24 11:02:12 +01:00
Leseb 8d126a361b Merge pull request #233 from leseb/fix-mds-pool-creation
Enforce var pool creation
2015-03-24 10:12:22 +01:00
Sébastien Han 1122c90ec4 Enforce var pool creation
Make sure that 'mds' is enabled before creating the filesystem.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-23 18:53:42 +01:00
Sébastien Han a2bef31425 Implement Ceph REST API
Now the Ceph REST API can be deployed.
Default implementation deploys it on the same nodes as the monitors
which should be fine.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-23 18:30:52 +01:00
Sébastien Han 4f68598779 Rework radosgw keys and data dir path
Fix the usage of Upstart for Ubuntu machines instead of the init.d
script.
Note that because of the way upstart init script looks at the radosgw id
the command 'start radosgw id=' is broken, you should use 'start
radosgw-all' instead.
Keep backard compatibility with the radosgw init script as well by using
client prefixed by 'client.radosgw'.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-23 14:41:22 +01:00
Sébastien Han e4a9031952 Improve YAML syntax
Improve readibility.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-19 12:23:12 +01:00
Sébastien Han 82c9abb725 Fix MDS creation for version >= 0.84
The ceph fs new command was introduced in Ceph 0.84. Prior to this
release, no manual steps are required to create a filesystem, and pools
named data and metadata exist by default.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-11 22:50:38 -05:00
Sébastien Han 3624a85b64 Docker support
WIP!

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-11 21:21:52 -05:00
Leseb c0ce7dd754 Merge pull request #222 from leseb/improve-handlers
Improve Handler support
2015-03-02 17:16:32 +01:00
Sébastien Han 559e3b921d Improve Handler support
Now proper commands/actions are used per hosts and groups.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-02 17:13:30 +01:00
Leseb 1323f7cb89 Merge pull request #212 from leseb/rbd-client-logs
Add RBD client logs support
2015-03-02 15:12:56 +01:00
Sébastien Han c5c0e21532 Add support of civetweb for Rados Gateway
Almost here.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-02 14:16:53 +01:00
Sébastien Han 962d1ad17f Fix Rados Gateway socket path
Fixes: #217

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-02 10:48:18 +01:00
Sébastien Han 68e470c6b8 Add RBD client logs support
The path must be writable by QEMU and allowed by SELinux or AppArmor

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-02-23 15:28:27 +01:00
Sébastien Han 6f0a0f7a71 Bring multi RGW support
Now we can setup multi-rgw with the playbook.
Each rgw instance has its own key.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-02-22 01:23:03 +01:00
Sébastien Han eae7bd6029 Fix the rgw section
If we use the hostname, the radosgw will lookup for a wrong secret.
Using the same name for all the gateways.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-02-20 18:41:49 +01:00
Sébastien Han 0095b34c88 Improve RGW config section
Use hostname in socket and log.
Improve jinja template so when a var doesn't exist we don't indent the
next line.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-02-15 02:21:27 +01:00
Sébastien Han 8951c9c3f5 Fix RGW key fetching
In a previous commit, key name changed, fixing this.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-02-15 01:56:12 +01:00
marmot21 dc32268563 Update ceph.conf.j2
This is just a simple change that will allow multiple gateways
2015-02-12 22:16:24 +11:00
Sébastien Han 9f93b66fae Refactor keys creation and fetching
We isolated the key operations into a file and modified the fetch
function to collect all the new keys.
In the mean time fixed the pool creation since the command is not
indempotent.
Renamed the rgw key to work with the key collection.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-30 18:20:17 +01:00
Sébastien Han ea44582379 Ability to populate OpenStack installation
Creates pools, keys and users.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-30 13:34:35 +01:00
Yin Jifeng 8eca518348 update distro comment
so we don't need change them every ceph release
2015-01-26 14:22:06 +08:00
Yin Jifeng e13aca8c5f epel-release is mandatory
see: https://www.mail-archive.com/ceph-users@lists.ceph.com/msg14819.html
also: 831b130f98
2015-01-22 21:36:47 +08:00
Yin Jifeng 2a2d977e39 make sure we use **fsid** in command 2015-01-22 20:09:06 +08:00
Yin Jifeng 30ac90dcfa update ceph noarch repo url 2015-01-22 20:07:46 +08:00
Sébastien Han 74ffbf90fc Enable Ceph daemons debug options
Add debug options for Ceph daemons.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-16 14:42:11 +01:00
Leseb e18588b147 Merge pull request #186 from leseb/swapoff
Ability to disable swap
2015-01-15 11:44:11 +01:00
Sébastien Han c246d8dc80 Ability to disable swap
With enough memory we will probably not need any swap.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-15 11:42:51 +01:00
Sébastien Han 9b0b83a354 Decrease vfs cache pressure
On OSD servers we want to keep as much inodes and dentries in memory as
we can.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-15 11:08:57 +01:00
Sébastien Han 30467a8243 Fix transparent huge page sys path
The old path was meant for old kernels...

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-15 10:58:45 +01:00
Sébastien Han e9360456f0 Add more option to maximise sequential IO
Using the largeio,inode64,swalloc options usually improves sequential
workloads.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-15 10:54:08 +01:00
Sébastien Han d8ab8c0bd3 Add yum priority plugin
Without this plugin if a Ceph version is present in a repo (let's say
epel) it will install the epel version and not the ICE version.
We install yum-plugin-priorities.noarch to honor the 'priority=1' flag.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-13 15:46:47 +01:00
Sébastien Han 25cf4d8650 Ability to disable transparent hugepage
In storage world it's often recommended to disable transparent hugepages
as they will tend to lower performance.
Note that this change won't survive reboot. There are several ways to
disable this permanently such as:

* rc.local
* grub boot line

It's a bit tricky to do this in Ansible since it really depends on the
OS you're running on.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-13 11:11:11 +01:00
Sébastien Han 2cb8941dcc Restructure OS tuning and add new value
We now use a single task and loop over a set of params, it's easier to
add now params.

Setting zone_reclaim_mode to 0.
See the discussion on the Ceph ML:
http://lists.ceph.com/pipermail/ceph-users-ceph.com/2013-December/036211.html

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-13 10:34:46 +01:00
Leseb 5c61ca8e8f Merge pull request #177 from leseb/osd-sections
WIP: Implement OSD sections
2015-01-12 16:46:38 +01:00
Sébastien Han 289cc5423a Make the monitor secret a mandatory variable.
Default behavior is to fail if a variable is not declared however this
can be disable in your ansible.cfg so we force this variable as
mandatory.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-12 14:36:15 +01:00
Sébastien Han f68cd46664 WIP: Implement OSD sections
Still WIP, @mwheckmann free to test
As requested by #162

Current known issue, since ceph.conf gets modified during every single
run (at the end during the merge) so this will restart ceph daemons.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-09 11:14:20 -05:00
Sébastien Han 81b44fcfe2 Make OS tuning var configurable and file re-ordering
Depending on the OS you are runnning on you should be able to configure
these values.
Re-ordering file for clarity as well.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-07 11:44:40 +01:00
Sébastien Han 5e6708394a Fix ICE installation
Wrong ordering and variable.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-07 11:25:34 +01:00
Sébastien Han 5c66801dc7 Bump up maximum number of open files
Large cluster will easily reach the default value so we increase it.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-06 15:26:44 +01:00
Sébastien Han 79f6415e9d Bump up max open file for big cluster
Big cluster will easily reach the default limit so we need to increase
it and make it configurable.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-06 14:23:23 +01:00
Sébastien Han 75c4739679 Revert "Remove the fsid vars from mon and osd roles"
This reverts commit 216c8e24c8.
2015-01-06 00:42:54 +01:00
Sébastien Han 216c8e24c8 Remove the fsid vars from mon and osd roles
We do not need them since they get registered by the ceph-common role.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-06 00:18:04 +01:00
Sébastien Han 08330b1fab Move role variables to defaults
Following best practices from
http://docs.ansible.com/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

Closes: #161

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-06 00:13:10 +01:00
Boris Manojlovic 33b8603d6e add quotes so ansible yaml parser do not barf on it... 2014-12-24 17:07:50 +01:00
Sébastien Han a796a962ef Add ICE Kernel module support for Red Hat systems
Install Kernel modules from ICE for Ceph RBD.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-18 12:25:17 +01:00
Leseb 69b6231d29 Merge pull request #158 from leseb/zap-disk-before-osd-creation
Zap disk before running ceph-disk prepare
2014-12-18 11:49:59 +01:00
Sébastien Han 839cd99520 Zap disk before running ceph-disk prepare
We remove all the partitions, label and re-create something clean prior
to prepare the design. This will help solving many issues with existing
disks or while scratching/deploy test environments often.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-18 11:49:32 +01:00
Sébastien Han 24e2ad8e50 Add multi-OS support for ICE
ICE supports Ubuntu, CentOS and RHEL.
Adding those.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-18 11:10:14 +01:00
Sébastien Han 3850320894 Fix OSD device auto-discovery
Missing variable, conditionnal didn't work.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-16 15:07:28 +01:00
Sébastien Han 81fe11fae5 Disable MDS and RGW from default
MDS and RGW are not deployed often (RGW more), so we disable them from
the default deployment to only get MONs and OSDs.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-16 14:52:49 +01:00
Sébastien Han db91b20308 Add support for Intank Ceph Enterprise
With the appropriate subscription details you will be able to use the
Inktank Ceph Enterprise version of Ceph running on RHEL7.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-12-16 14:47:35 +01:00
Leseb be7fddde5b Merge pull request #148 from shinespb/master
added auto-discovery of OSD disks
2014-12-11 16:15:57 +01:00
Leseb 93d86cd938 Merge pull request #151 from matthewrees/100-continue
Support for 100-continue toggling for RGW
2014-11-26 20:12:17 +01:00
Matthew Rees e07e0b5be4 Replaced shell based sed with apt_repo module call 2014-11-17 12:11:48 +02:00
Matthew Rees 4258dac251 Change to shell from command 2014-11-14 16:48:21 +02:00
Sébastien Han 621df22a4a Fix auto uuid generation
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-14 15:21:30 +01:00
Matthew Rees accbfeff31 Support for 100-continue toggling for RGW
Tested for Precise and Trusty.
2014-11-14 16:05:56 +02:00
Leseb 3a485bf22a Revert "Fix autogen UUID and add auto gen monitor key" 2014-11-14 15:03:50 +01:00
Sébastien Han a7bba85027 Fix autogen UUID and add auto gen monitor key
This fixes the UUID auto generation and introduces the monitor key auto
generation.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-13 15:38:10 +01:00
Igor Shestakov ce569b8c6e added auto-discovery of OSD disks 2014-11-13 17:19:18 +03:00
Sébastien Han a107063543 Auto generate an FSID
It has becomes really anoying to manually generate an fsid prior to the
inital bootstrap. This commit introduces a method that auto-generates an
fsid. If for whatever reasons you want to force your own fsid you can
simply edit these 3 files and override the fsid variable:

- roles/ceph-common/vars/main.yml
- roles/ceph-mon/vars/main.yml
- roles/ceph-osd/vars/main.yml

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-13 14:08:27 +01:00
Leseb b3576608a4 Merge pull request #142 from matthewrees/trusty-radosgw
Fixing errors in rgw playbook for Trusty
2014-11-13 13:51:33 +01:00
Leseb cc4395ae17 Merge pull request #145 from matthewrees/separate-ceph-keys
Standardising key addition
2014-11-13 13:48:02 +01:00
Matthew Rees e2d6e66440 Revert URL-based key addition for Debian 2014-11-13 14:11:51 +02:00
Sébastien Han ef7891fe84 Fix wrong variable for cephx signature
Add a comment for KRBD, enabling cephx signatures will prevent you to
map RBD devices.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-13 10:59:42 +01:00
Matthew Rees b6fcd37bc0 Standardising key addition
Debian based repo’s now fetch keys in a similar manner to Redhat based
ones, and both stable and dev keys have entries in vars.
2014-11-11 17:10:32 +02:00
Leseb cbb878beba Merge pull request #144 from leseb/ceph-client
Add more detail for the client socket
2014-11-11 12:02:36 +01:00
Sébastien Han 1d8871e615 Add more detail for the client socket
Adding: cluster name, type, id and cctid.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-11 12:01:31 +01:00
Leseb c8f2f6610e Merge pull request #141 from matthewrees/monitor-interface
monitor_interface template change
2014-11-11 10:55:41 +01:00
Sébastien Han a0b659e66b Fix wrong vars during RH install
Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-11 10:50:03 +01:00
Matthew Rees c54ab6a701 Fixing errors in rgw playbook for Trusty
- We don’t need ceph-extra for trusty
- Enable multiverse repo for access to libapache2-mod-fastcgi
- Update cache before attempting to install packages to register
multiverse repo and only refresh cache once an hour to avoid delays in
the playbook
- Add wildcard to disabling default site as on Ubuntu it is 000_default
by…default
2014-11-11 11:07:41 +02:00
Matthew Rees ec16fe31f3 monitor_interface template change
This will fix the monitor_interface issue for Vagrant provisioning
while being preferred to using group_var entries for physical
deployments.
2014-11-10 16:28:13 +02:00
Leseb 547f16b7aa Merge pull request #140 from leseb/rbd-cache
Add a client section in the ceph configuration file
2014-11-10 14:52:11 +01:00
Sébastien Han 29ea4e6f47 Add a client section in the ceph configuration file
In this section we enabled the rbd cache and a socket per client.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-10 14:50:19 +01:00
Sébastien Han 51070cc4fb Use Giant version
Use the last stable version: Giant

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-10 14:34:45 +01:00
Sébastien Han 5e52d89e94 Increase kernel.pid_max to a higher value
While running big boxes with 72 disks it's easy to get out of PID for
all the threads needed by Ceph. Increasing the default value removes
this limitation.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-11-10 14:13:31 +01:00
Cornelius Keller 530314e9a9 cleanup outcommented code 2014-11-07 15:39:29 +01:00
Cornelius Keller 497d987fa9 making vagrant up work 2014-11-07 15:32:49 +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
Gauvain Pocentek 20ce0a8336 ceph-osd: restart OSDs only
Avoid restarting other services when configuring the OSDs.
2014-10-14 12:22:11 +02:00
Sébastien Han 3a083ce1b2 Remove ansible managed header from ceph.conf
Fixes: #125

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-10-10 15:41:31 +02:00
Leseb c57f875a75 Merge pull request #110 from leseb/fix-updatedb
Fix updatedb disable
2014-10-10 15:36:20 +02:00
Leseb e0b9aac9b2 Merge pull request #127 from leseb/remove-ansible-managed-from-ceph-conf
Remove ansible managed header from ceph.conf
2014-10-10 15:35:09 +02:00
Sébastien Han f34e60813b Remove ansible managed header from ceph.conf
In ceph-common you load {{ ansible_managed }} at the top of the main
config file - this will trigger handlers on that file whenever an
Ansible run is made.

I'd suggest replacing it with a vanilla text comment 'managed by
Ansible' to warn
admins but avoid unnecessary cluster bounces.

fixes: #125

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-10-10 15:34:11 +02:00
Gauvain Pocentek 3386578954 Fix the mon.* generation in ceph.conf
The ceph.conf.j2 template currently always uses the current host facts
to get the IP address of each host in the mon loop. This is not the
expected behavior. This patch uses the correct facts to get the IP.
2014-10-10 15:27:15 +02:00
Sébastien Han 07216bf883 Add more recovery options
Recovery and/or re-balancing decrease performance, adding more options
might help tweaking this behavior.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-09-28 17:31:50 +02:00
jjoos 5e8141f8cf Sweep of all sorts of things. 2014-09-04 21:14:11 +02:00
Sébastien Han 6413b9c251 Improve RedHat support
Fix the rpm key and the repos integration.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-09-04 12:18:17 +02:00
Sébastien Han 83be67cd54 Use a very unlikely subnet address for Vagrant
Since 192.168.0.0/24 is very commong and might overlap with some
existing networks on your laptop, using another subnet like '42' is less
bound to happen.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-09-03 00:13:07 +02:00
Sébastien Han d0403b820e Fix OSD update during startup
Proviously we used osd_crush_update_on_start: true, this was interpreted
by Ansible as a boolean and appeared as 'True' inside the Ceph configuration
file. However the Ceph's init script is looking for 'true'.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-09-03 00:04:23 +02:00
Sébastien Han 4196de25d4 Add developement packages support
This commits introduces the support of the developpement branches of
Ceph. You can now install Ceph from master.
The behavior is done through 2 new options:

* ceph_stable: true will use the stable branch
* ceph_dev: true will use the dev branch

For the dev packages don't forget to set the branch that you want to
use.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-09-02 02:37:18 +02:00
Sébastien Han 7e591a4cce Fix some missing option declaration
Missing decleration and cosmetic.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-30 02:58:27 +02:00
Sébastien Han b81392d1c9 Fix restart on config change handler
Prior to this patch, the first match was winning and the playbook wasn't
doing any difference both "restart ceph", adding a distro filtrer fixes
this.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-30 02:34:11 +02:00
Sébastien Han ec6d4ddaba Fix updatedb disable
In some system the command doens't exist and fail to run the playbook.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-30 02:29:07 +02:00
Sébastien Han e2e774d516 Add more common options
Extend settings support.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-30 02:26:40 +02:00
Sébastien Han b3889c4442 Disable updatedb OSD directory parsing
It has been reported a couple of months ago by Dan van der Ster from
CERN that updatedb was consumming 100% of CPU while parsing system's
directories. Indeed the process was parsing the OSD PG directories that
might contains billions of objects.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-21 14:21:05 +02:00
Leseb e2599556b9 Merge pull request #106 from leseb/restart-daemons-on-config-change
Restart Ceph service after a configuration change
2014-08-20 14:50:26 +02:00
Sébastien Han 0aa9dea281 Restart Ceph service after a configuration change
After a change is made on the configuration file we must restart the
Ceph services. I also added a check that verifies if a socker exists
because during the first play there are no services running. We check if
a socket exists, if not we don't try to restart the services, if it
exists we can restart them.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-20 14:04:34 +02:00
Ramón Cahenzli f562e4d6fa Fix typo dependancies -> dependencies 2014-08-20 10:57:14 +02:00
Sébastien Han f4e8173a50 Merge branch 'fix_template_path' of https://github.com/Sysnove/ceph-ansible into Sysnove-fix_template_path
Conflicts:
	roles/ceph-common/tasks/Debian.yml
	roles/ceph-common/tasks/RedHat.yml
2014-08-14 14:30:33 +02:00
Leseb 17469b4b5e Merge pull request #102 from leseb/fix-vars
Fix some variables
2014-08-14 14:10:05 +02:00
Sébastien Han bdb27a16a8 Fix some variables
Couple of fixes

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-08-14 14:08:52 +02:00
Piotr Bak 9a42f9d5bd Fix for devices like /dev/cciss/c0d0, /dev/xvda 2014-07-18 16:43:00 +02:00
Alexis Lahouze 16711d63df Fixed template path. 2014-07-14 15:11:27 +02:00
Leseb 4051e49932 Merge pull request #97 from eltom/patch-2
Update RedHat.yml
2014-07-12 14:44:51 +02:00
eltom e8c6b5cbf8 Update RedHat.yml
Path to Templatefile is wrong, which caused Error on Provisioning
2014-07-12 14:44:06 +02:00
eltom efbac01cbe Update Debian.yml
Path to Templatefile is wrong, which caused Error on Provisioning
2014-07-12 14:43:36 +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 9bc8842290 Added a main.yml in 'vars' directory to tell it is better to override using host or group vars. 2014-07-08 15:06:50 +02:00
Alexis Lahouze d10d0747d5 Moved OSD directory variables into defaults. 2014-07-08 13:07:44 +02:00
Alexis Lahouze 1d2a66666f Moved variables into "defaults" directory of each role, and commented the ones in group_vars. 2014-07-08 13:07:44 +02:00
Leseb e8d60215cd Merge pull request #89 from Sysnove/partitions
Allow devices to be partition instead of disks
2014-07-08 10:27:11 +02:00
Alexis Lahouze 3e74f153a0 Fixed Engrish grammar. 2014-07-08 10:20:18 +02:00
Alexis Lahouze 7eeb895d3d Rolled back comment on filesystem creation. 2014-07-08 10:15:38 +02:00
Sébastien Han 9d7c23396f Use a local key for package instead of downloading it
Using a local key is significantly faster than "wgetting" the key from a
server on Internet.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-07-03 15:53:13 +02:00
Sébastien Han 4f5d195788 Ability to use a directory for OSD instead of a disk
This commit implements a fourth scenario where we can directely use a
directory instead of a block device for the OSDs. The purpose of this
scenario is more testing-oriented. Please note that we do not check
the filesystem underneath the directory so it is really up to you to
configure this properly. Declaring more than one directory on the
same filesystem will confuse Ceph.

Fixes: #14

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-07-03 15:30:49 +02:00
Alexis Lahouze 132e78df84 Allow devices to be partition instead of disks (used for some physical servers with a sigle disk for system and storage). 2014-06-26 14:19:09 +02:00
Kyle Christensen 168faef3bd Fix Ansible architecture tasks 2014-06-02 15:00:43 -04:00
Sébastien Han 670bec24c7 Since Emperor, Ceph stores xattr into levelDB thus this option is not
needed anymore.

Fixes: #83

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-05-20 15:04:09 +02:00
Sébastien Han 567c0bb6ce Enable single host mode
This commit introduces a new config option 'osd crush chooseleaf type'.
With the help of this option and by setting it to '0' we tell Ceph to
store all the replicas on a single host. Basically we tell CRUSH to
iterate over disk and not over host.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-05-01 01:24:20 +02:00
Dexter John Genterone 728e80df5c keys are now copied from the first available mon host
since we're now using fsid for the directory name, it should be safe to
just copy the keys from all mon hosts. Once they are copied, the rest of
the hosts will just skip copying. :)
2014-04-30 16:02:07 +08:00
Hunter Nield 48c1dcd92b Avoid ip/fqdn weirdness & use fsid path for keys 2014-04-30 15:16:11 +08:00
Alessandro Corbelli 58ea349b53 Fix #69 - mon osd min down reporters 2014-04-18 10:47:30 +02:00
Sébastien Han 3c0ffd671f Improve ceph.conf
Add tunables for:

* recovery
* performance

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-04-11 14:07:37 +02:00
Alessandro Corbelli 61ab445128 Add support for subdomain calls in S3 api. See http://ceph.com/docs/master/radosgw/config/#enabling-subdomain-s3-calls 2014-04-07 12:06:24 +02:00
Leseb 6cadebd5c5 Merge pull request #61 from guestisp/remove-default-users-from-rgw
Remove RadosGW default users
2014-03-26 11:35:54 +01:00
Alessandro Corbelli d7195922b2 Totally removed test users creation from RGW tasks 2014-03-26 11:34:05 +01:00
Alessandro Corbelli c2a0865464 Use ansible_hostname in RGW config inside ceph.conf
Fix #54
2014-03-26 11:26:18 +01:00
Alessandro Corbelli c7476fb375 Remove RadosGW default users 2014-03-26 11:22:37 +01:00
Jimmy Tang c3480a588c Drop a update-motd.d fragment for monitors so when the user/admin logs into a monitor there is a small notice for the user about the state of the ceph cluster. Works only on ubuntu for now 2014-03-22 14:57:22 +00:00
Alessandro Corbelli 7623376203 Skip missing RGW hosts in ceph.conf 2014-03-20 12:14:43 +01:00
Sébastien Han b21174b189 Fix section name
All the rgw instance should share the same key so the section name
should not be changed.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-19 16:29:57 +01:00
Sébastien Han 6e355c0ccc Remove hardcoded distro
This was a leftover from some previous tests.

Closes: #53

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-19 16:27:24 +01:00
Leseb a62aebb835 Merge pull request #50 from guestisp/fix-49
Fix #49
2014-03-19 16:15:18 +01:00
Alessandro Corbelli 504ca7b154 Fix #51 2014-03-19 12:45:56 +01:00
Alessandro Corbelli 1efa42d809 Fix #49 2014-03-19 12:40:02 +01:00
Jimmy Tang 7669d05bf3 re-tab/indent configuration 2014-03-17 10:27:49 +00:00
Jimmy Tang 15b89704fd Fix typo in handler 2014-03-17 09:17:49 +00:00
Jimmy Tang b34ead5457 make radosgw_interface configurable for haproxy 2014-03-16 09:43:49 +00:00
Jimmy Tang ea88bd6eaa microformat variable to be in line with rest of roles and playbooks 2014-03-16 09:40:27 +00:00
Jimmy Tang 63f7e5deb3 fix up indentation in configuration file 2014-03-16 09:39:33 +00:00
Jimmy Tang 8841b9d37a more meaningful backend name 2014-03-15 12:10:59 +00:00
Jimmy Tang ecdd54d6f9 Initial add of haproxy example for fronting a number of radosgw's 2014-03-15 08:58:24 +00:00
Sébastien Han 300e87ec35 Remove mon_initial_members option
The mon_initial_members is not used since we declare the mon section in
the ceph.conf file. Later, we could reduce the ceph.conf file by only
using the mon_host flag instead of all the mon sections.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-14 17:11:27 +01:00
Sébastien Han f295b4f5b4 Add RADOS Gateway support
This is a wip branch.
This works on Ubuntu precise, Debian Wheezy and CentOS 6.4.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-13 23:43:57 +01:00
Alessandro Corbelli f363f63446 Fix ceph.conf if MDSs are not reachable 2014-03-12 16:13:06 +01:00
Leseb 69564c14c6 Merge pull request #39 from guestisp/fix-ceph-conf-if-mons-unreachable
Fix ceph.conf if mons are unreachable
2014-03-12 16:00:18 +01:00
Alessandro Corbelli 2530083751 Fix ceph.conf if mons are unreachable 2014-03-12 15:34:54 +01:00
Alessandro Corbelli f97d26470f Use ansible_fqdn when copying from mons 2014-03-12 15:05:42 +01:00
Alessandro Corbelli 1bf18e6c80 Use ansible_fqnd also in mds role 2014-03-12 15:01:46 +01:00
Alessandro Corbelli 57831b4083 Use ansible_fqdn when copying keys to OSDs 2014-03-12 14:46:40 +01:00
Sébastien Han 36d034ad20 Revert 37882255d6 (auto key generation)
We introduced a key generation mechanism that aimed to ease deployment.
In the end, it brought more complexity to the playbook and doesn't
scale.

Reverting the auto generation commit and instructing users to generate
their own keys.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-12 13:31:22 +01:00
Sébastien Han cc7f2ab2ab Cosmetic on apt module
Use 'present' instead of 'installed'.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-11 15:24:51 +01:00
Sébastien Han fc38e21333 Separate OSD scenarios to multiple files
Currently everything lives in main.yml, the file has become difficult to
read at some point and can be a real mess since we keep adding new
scenarios.
I think we should separate the scenarios into dedicated files and just
do includes in the main.yml file.

Closes: #16

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-11 10:36:24 +01:00
Sébastien Han 37882255d6 Autogenerate initial mon key
As mentionned in the issue 24 it's not really safe to store a default
fsid nor a monitor key. Thus the commit brings the auto-generation of
the initial monitor key. However it is quite complex to do the same for
the fsid, so I leave this to the person in charge of the deployment to
generate one and edit group_vars/all accordingly. The default fsid has
been removed as well.

Close: #24

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-11 00:54:21 +01:00
Alfredo Deza 4beec0a05d Merge pull request #18 from leseb/fix-rm-dev
Use full device name
2014-03-10 13:06:00 -04:00
Alfredo Deza 8925f47d76 Merge pull request #22 from leseb/fix-allow-disable-mds
Allow to disable MDS
2014-03-10 13:05:12 -04:00
Sébastien Han 620d2d9a14 Remove hardcoded interface name
Add the ability to select a binding interface for the monitors.

Closes: #20

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-10 17:23:41 +01:00
Sébastien Han 739ee57d39 Allow to disable MDS
Even if MDS are not configured in site.yml the playbook has a
dependancy on the ceph.conf template.
This disables the mds section from the ceph.conf file.

Closes: #21

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-10 17:14:11 +01:00
Sébastien Han 4b6c8c1cfc Use full device name
Use full device name so we can specify custom devices (by-path, links
etc...)

Closes: #17

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-10 16:32:04 +01:00
Sébastien Han 6cdce8b5b2 Multi distro installation support
Now the playbook is able to install Ceph on RedHat systems.
This has been tested on CentOS 6.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-09 17:17:58 +01:00
Alfredo Deza 8577480e41 Merge pull request #11 from leseb/wip-multi-journal
Add multi-journal support and fix collocation scenario
2014-03-07 08:30:21 -05:00
Sébastien Han bb4796774b Add multi-journal support and fix collocation scenario
This commits brings the support of multiple journals where each journal
points to a specific OSD and vice-versa. The commit also clarifies the
usage of multi scenarios for both journal and osd_data.
In the meantime, it fixes the collocation scenario.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-07 14:04:25 +01:00
Sébastien Han 9d06702fc2 Check system and architecture
If the system is not Linux and the architecture is not x86 Ansible will
fail and exit.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-07 11:20:48 +01:00
Alfredo Deza 146dd31c92 Merge pull request #4 from leseb/wip-many-devices
Support diverse setup disks
2014-03-06 09:25:54 -05:00
Sébastien Han 47c361b255 Support diverse setup disks
This brings the support of heterogeneous hardware. Not all the servers
are identical, some have more or less disks than the others. Prior this
commit, the 'parted' command was hanging, now the command simply exits 1
if the device doesn't exist, same for the 'egrep' piped command after.
Then we skip these errors and continue to run. So now, you can specify
multiple devices in group_vars/osds that don't exist on all the
servers.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-06 11:50:14 +01:00
Sébastien Han 72d3f98fa6 Cleanup redundant command
Since the fetch module takes care of the permissions it is not necessary
to set them with another module. The second command is useless.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2014-03-04 00:13:17 +01: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