ceph/doc/start/quick-start-preflight.rst
John Wilkins 270ca6232d doc: Updated doc for connectivity. Updated text with glossary terms.
Signed-off-by: John Wilkins <john.wilkins@inktank.com>
2013-05-09 12:48:59 -07:00

162 lines
4.5 KiB
ReStructuredText

=====================
Preflight Checklist
=====================
.. versionadded:: 0.60
Thank you for trying Ceph! Petabyte-scale data clusters are quite an
undertaking. Before delving deeper into Ceph, we recommend setting up a two-node
demo cluster to explore some of the functionality. This **Preflight Checklist**
will help you prepare an admin node and a server node for use with
``ceph-deploy``.
.. ditaa::
/----------------\ /----------------\
| Admin Node |<------->| Server Node |
| cCCC | | cCCC |
\----------------/ \----------------/
Before you can deploy Ceph using ``ceph-deploy``, you need to ensure that you
have a few things set up first on your admin node and on nodes running Ceph
daemons.
Install an Operating System
===========================
Install a recent release of Debian or Ubuntu (e.g., 12.04, 12.10, 13.04) on your
nodes. For additional details on operating systems or to use other operating
systems other than Debian or Ubuntu, see `OS Recommendations`_.
Install an SSH Server
=====================
The ``ceph-deploy`` utility requires ``ssh``, so your server node(s) require an
SSH server. ::
sudo apt-get install openssh-server
Create a User
=============
Create a user on nodes running Ceph daemons.
.. tip:: We recommend a username that brute force attackers won't
guess easily (e.g., something other than ``root``, ``ceph``, etc).
::
ssh user@ceph-server
sudo useradd -d /home/ceph -m ceph
sudo passwd ceph
``ceph-deploy`` installs packages onto your nodes. This means that
the user you create requires passwordless ``sudo`` privileges.
.. note:: We **DO NOT** recommend enabling the ``root`` password
for security reasons.
To provide full privileges to the user, add the following to
``/etc/sudoers.d/ceph``. ::
echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph
Configure SSH
=============
Configure your admin machine with password-less SSH access to each node
running Ceph daemons (leave the passphrase empty). ::
ssh-keygen
Generating public/private key pair.
Enter file in which to save the key (/ceph-client/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-client/.ssh/id_rsa.
Your public key has been saved in /ceph-client/.ssh/id_rsa.pub.
Copy the key to each node running Ceph daemons::
ssh-copy-id ceph@ceph-server
Modify your ~/.ssh/config file of your admin node so that it defaults
to logging in as the user you created when no username is specified. ::
Host ceph-server
Hostname ceph-server.fqdn-or-ip-address.com
User ceph
Install git
===========
To clone the ``ceph-deploy`` repository, you will need install ``git``
on your admin node. ::
sudo apt-get install git
Clone ceph-deploy
=================
To begin working with ``ceph-deploy``, clone its repository. ::
git clone https://github.com/ceph/ceph-deploy.git [{directory-name}]
If you do not specify a directory name, ``git clone`` will use the repository
name ``ceph-deploy``.
Install python-virtualenv
=========================
To bootstrap ``ceph-deploy`` and run it, you must install the
``python-virtualenv`` package. ::
sudo apt-get install python-virtualenv
Bootstrap ceph-deploy
=====================
After you clone the repository, bootstrap ``ceph-deploy``. ::
cd ceph-deploy
./bootstrap
Add ``ceph-deploy`` to your path (e.g., ``/etc/environment``,
``~/.pam_environment``) so that you can execute it without remaining in the
directory that contains ``ceph-deploy``.
Ensure Connectivity
===================
Ensure that your Admin node has connectivity to the network and to your Server
node (e.g., ensure ``iptables``, ``ufw`` or other tools that may prevent
connections, traffic forwarding, etc. to allow what you need).
.. tip:: The ``ceph-deploy`` tool is new and you may encounter some issues
without effective error messages.
Once you have completed this pre-flight checklist, you are ready to begin using
``ceph-deploy``.
Summary
=======
Once you have passwordless ``ssh`` connectivity, passwordless ``sudo``, a
bootstrapped ``ceph-deploy``, and appropriate connectivity, proceed to the
`Object Store Quick Start`_.
.. tip:: The ``ceph-deploy`` utility can install Ceph packages on remote
machines from the admin node!
.. _Object Store Quick Start: ../quick-ceph-deploy
.. _OS Recommendations: ../../install/os-recommendations