Commit Graph

205 Commits (67eaabb6e42344aeaf6a640e8eb10b987ae3d0f5)

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