Commit Graph

415 Commits (77792632c57fbe56b7024d4edf5c5e12356e06db)

Author SHA1 Message Date
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 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
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 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
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
Huamin Chen 860125ff8f various fixes for CentOS
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-11-05 20:39:03 +00: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
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
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
Michael Sambol c187e1ff83 Revert "Use stat module instead of shell" 2015-08-07 00:07:51 -05: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
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
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 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 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 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 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 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 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 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 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
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
Bjørnar Ness a5ed377e4e Add rbd_concurrent_management_ops 2015-06-09 00:42:01 +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 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
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
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 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 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 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
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
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 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
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 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
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 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 93d86cd938 Merge pull request #151 from matthewrees/100-continue
Support for 100-continue toggling for RGW
2014-11-26 20:12:17 +01: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
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 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 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
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
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
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