Commit Graph

390 Commits (4219221bf46eb5bbc9de6a0a2877f1fed99200bd)

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