Commit Graph

347 Commits (c96af4bac9670ec8247edd4e6b0b0e4b5c6bbd07)

Author SHA1 Message Date
pprokop 42e748a514 Adding dockerized ceph-mon deployment with kv backend 2016-03-24 16:26:28 +01:00
Jim Curtis dae1bb072e Review feedback fixes from PR #518 2016-03-24 16:19:45 +01:00
Jim Curtis d5f642c206 Changes to allow ceph-ansible and vagrant to work on Openstack VMs 2016-03-24 16:18:46 +01:00
Huamin Chen 04f7b5923f review feedback
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:16:27 +01:00
Huamin Chen 326db629a0 start osd daemon via systemd if supported
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:16:27 +01:00
Huamin Chen 6cf3fff436 split osd disk to prepare and activate
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:16:27 +01:00
Huamin Chen a4b3885ac9 allow multiple mon containers to reach quorum
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:16:27 +01:00
Huamin Chen e18154fbe5 serialize containerized mon config
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:16:08 +01:00
Huamin Chen 6bd8d41a39 remove --rm option from docker run, since the image is already removed during pre start
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:15:41 +01:00
Huamin Chen a3dbfba4c0 use systemd to manage ceph daemons
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:15:41 +01:00
Huamin Chen 70561b3fc3 add variable to allow containerized mon to run privileged mode.
this is to allow ceph-authtool to read and write to /var/ and /etc on CentOS Atomic.
Add doc on how to run containerized deployment on RHEL/CentOS Atomic

Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:14:58 +01:00
Huamin Chen fd03074cd5 remove unused files
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:10:42 +01:00
Huamin Chen 29b239a8f8 containerized mon: create restapi keyring
add sample config for containerized deployment
2016-03-24 16:09:02 +01:00
Huamin Chen 0d704b5710 copy bootstrap keyring and conf from mon to ansible server, so osd can get them to bootstrap
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-03-24 16:09:02 +01:00
Huamin Chen 0647cad7be containerized mon 2016-03-24 16:08:20 +01:00
Alfredo Deza 1dae862911 include calamari when the calamari option is set
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-03-09 15:18:40 -05:00
Alfredo Deza b0a3f5b06d create a calamari task in ceph-mon
Signed-off-by: Alfredo Deza <adeza@redhat.com>
2016-03-09 15:18:36 -05:00
Sébastien Han 378aadf3e3 ceph-mon/mds: fix fqdn
closes #596

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-03-03 21:23:14 +01:00
Leseb dbc5704f23 Merge pull request #568 from stpierre/skip-keyring-cephx-disabled
Skip keyring tasks when cephx is disabled
2016-02-27 00:40:58 +01:00
Chris St. Pierre 4b29b2707f Fix openstack config skipping
Previously, creating pools was skipped if cephx was disabled; instead,
we should only skip key creation if cephx is disabled, and create
pools any time openstack_config is true.
2016-02-26 15:39:27 -06:00
Chris St. Pierre e8ca637903 Skip keyring tasks when cephx is disabled
Skip a number of ceph keyring-related tasks (or remove the keyring
portion of some tasks) when cephx is disabled. Specifically, avoid
generating the initial keyring, which only clutters up the ansible
repo if cephx is not in use.
2016-02-25 10:18:18 -06:00
Chris St. Pierre 1e9f4faa44 Do not set key permissions with cephx: false
If cephx is set to false, the "set keys permissions" task fails with:

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

This skips that step when cephx is false.
2016-02-23 11:34:27 -06:00
Sébastien Han 17fb38294e Octal file permissions must contain leading zero
Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-21 18:21:19 +01:00
Sébastien Han fa610cabf7 ceph-ansible: allow to run containerized daemons
run containerized daemons in virtual machines.
to enable it simply do:

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

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

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-07 22:30:32 +01:00
Leseb d050179121 Merge pull request #512 from guits/quick_fix
Refact code using `set_fact` to handle 'legacy' versions
2016-02-05 16:41:35 +01:00
Guillaume Abrioux dcec63adc8 Refact code using `set_fact`
At the moment, all the tasks using the file module are duplicated to have differents ownerships depending on the fact `is_ceph_infernalis`.
The goal of this commit is to have a new logic for this:
- First set facts depending on the `is_ceph_infernalis` fact
- Create the files or directories using the setted facts as ownerships.
2016-02-05 16:14:01 +01:00
Sébastien Han c0a3837d6e ceph-common: replace 'sudo' by 'become'
to avoid warning from ansible v2. works for both `1.9.4` and `2.0.0.2`.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-02-04 12:36:46 +01:00
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
Sébastien Han f35a665634 Fix pip package name on debian
use python-pip and not pip

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-28 15:55:53 +01:00
Sébastien Han 21cd46bf8a remove unecessary variables
these variables will be created on the fly, there is no need to force
them.

Signed-off-by: Sébastien Han <seb@redhat.com>
2016-01-27 23:58:51 +01:00
Huamin Chen 63bd78c12a review feedback: convert to yml format
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-13 14:13:30 +00:00
Huamin Chen 519a9e91b1 make systemd enable work for osd instance
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-13 00:40:56 +00:00
Huamin Chen 99c429930e make systemd enable work for mon instance
Signed-off-by: Huamin Chen <hchen@redhat.com>
2016-01-12 20:12:40 +00:00
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
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 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
Eric Cook ab884c7cb2 fixes ceph_stable_release logic mentioned in issue #446
I changed the argument used for starting the mds server. (pre
infernalis)
```
service ceph start mds
```
errors, while
```
service ceph start mds.$hostname
```
correctly starts the service.

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

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

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

Closes issue #410
2015-12-04 16:14:18 +00:00
Eike Frost d49e8bd904 Add systemd-specific start/restart tasks/handlers for el7/infernalis 2015-11-20 22:34:29 +01:00
Sébastien Han 2fa995a889 Use new Infernalis release
Add proper fixes for the new ceph user and dir/files permissions

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

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-11-16 11:47:23 +01:00
Sébastien Han d7c17812dd Ability to collocate bare metal and container
Since we renamed the variables and removed the old 'docker' variable we
can now collocate container daemons with standard bare metal deployment.
For instance, monitors can be containerized but osds can be deployed
traditionally.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 23:18:22 +02:00
Sébastien Han 9264a868fd Add proper permission for selinux
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 12:11:32 +02:00
Sébastien Han 33ed4f5029 Fix typo
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 02:18:48 +02:00
Sébastien Han 2daeb807ed Add safety checks prior to deploy a cluster in containers
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-10-21 02:12:43 +02:00
Sébastien Han 4c4aa32943 Create missing directories when deploying with docker
Signed-off-by: Sébastien Han <sebhan@cisco.com>
2015-10-20 17:05:34 +02:00
Michael Sambol e424966cbf Refactor ceph monitor role 2015-10-18 20:08:06 -05: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
Leseb 861d7296ef Merge pull request #381 from git-harry/openstack-pg-num
Allow configurable pg_num for OpenStack pools
2015-08-17 17:45:50 +02:00
git-harry 835951b3d0 Allow configurable pg_num for OpenStack pools
Currently the OpenStack pools that get created use the default pg_num.
This commit updates the ceph-mon role to allow the pg_num for each pool
to be customised.
2015-08-17 16:14:26 +01:00
Abhishek Varshney e142c21776 removed when condition in ceph-create-keys 2015-08-17 18:59:14 +05:30
Sébastien Han b47344fdd4 Cleanup and change_when watch
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-30 11:33:08 +02:00
Michael Sambol e6f22b948c Failed_when instead of ignore_errors
Changed ignore_errors to failed_when so the output doesn't show in
red.
2015-07-29 13:35:46 -05:00
Sébastien Han f0600d7561 Re-arrange docker monitor directory for clarity
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 15:44:52 +02:00
Sébastien Han 329e4e4793 Add customisable env variables
Now we can easily pass new variables to bootstrap the container.

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

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-28 15:18:59 +02:00
Sébastien Han 220e07e842 Fix wrong condition
We obviously want to fetch when the files exists :).

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-27 17:48:04 +02:00
Sébastien Han 07bd04c851 Fix pip module invocation
Signed-off-by: Sébastien Han <seb@redhat.com>
2015-07-27 17:41:58 +02:00
Leseb 1c683a9366 Merge pull request #336 from ceph/re-arrange-dir
Re-arrange roles
2015-07-24 16:25:42 +02:00
leseb f1e6b0216d Re-arrange roles
Trying to add more clarity in the role's task structure.

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

Signed-off-by: leseb <seb@redhat.com>
2015-07-24 12:36:45 +02:00
leseb 5fc4d846a6 Do not track fetch directory
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 18:14:12 +02:00
leseb c8edb29909 Fix monitor key generation
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 15:26:38 +02:00
leseb 444837e9ae Do not change while checking
Signed-off-by: leseb <seb@redhat.com>
2015-07-17 14:34:44 +02:00
leseb c27450ff40 Generate initial monitor key dynamically
Cool stuff :). We don't need to specify an initial monitor key anymore.
A key will automatically be generated.

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

Signed-off-by: leseb <seb@redhat.com>
2015-07-17 11:58:50 +02:00
leseb 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 77b5650180 Add red hat storage cdn installation
Signed-off-by: leseb <seb@redhat.com>
2015-07-03 12:38:17 +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 4463c68ebd Fixes rgw and mon startup on red hat
closes: #297, #264, #265 and #301

Signed-off-by: leseb <seb@redhat.com>
2015-06-30 19:19:08 +02:00
leseb 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 2929a00041 Update the Docker bootstrap part
We now use ceph/daemon as a default container image so reflecting the
change here.

Signed-off-by: Sébastien Han <seb@redhat.com>
2015-06-25 12:14:23 +02:00
Sébastien Han 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
bjne 8e99920a0d Directory should be executable
This looks like a bug, if not, it should have a comment that tells why
2015-06-08 17:33:56 +02:00
Sébastien Han 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 a37b373357 Ability to secure cluster pools
We set several flags to keep the cluster secure:
* nodelete
* nopgchange
* nosizechange

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-05-12 11:21:16 +02:00
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 b6b8437a7a Activate either sysvinit or upstart
Depending on the distro, init scripts will look for different files to
be available on the ceph data dir.
Fixing the upstart support here.

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

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

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

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

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

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

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-03-11 21:21:52 -05:00
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 9f93b66fae Refactor keys creation and fetching
We isolated the key operations into a file and modified the fetch
function to collect all the new keys.
In the mean time fixed the pool creation since the command is not
indempotent.
Renamed the rgw key to work with the key collection.

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

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-30 13:34:35 +01:00
Yin Jifeng 2a2d977e39 make sure we use **fsid** in command 2015-01-22 20:09:06 +08:00
Sébastien Han 289cc5423a Make the monitor secret a mandatory variable.
Default behavior is to fail if a variable is not declared however this
can be disable in your ansible.cfg so we force this variable as
mandatory.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
2015-01-12 14:36:15 +01:00
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
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
jjoos 5e8141f8cf Sweep of all sorts of things. 2014-09-04 21:14:11 +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