Commit Graph

393 Commits (78cb5cc726e141e1b5326c9186b91c55dcb6ee62)

Author SHA1 Message Date
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