2.4.2. Ceph Ansible ノード (ceph05) の設定
Ceph Ansible ノード (ceph05) にログインし、以下のように設定します。これらのステップを実行するには、ceph01 ノード、ceph02 ノード、および ceph03 ノードが実行されている必要があります。
Ansible ユーザーのホームディレクトリーに、ceph-ansible playbook で作成された一時的な値を保存するディレクトリーを作成します。
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ mkdir ~/ceph-ansible-keysansible ユーザーのパスワードなし ssh を有効にします。ceph05 で ssh-keygen を実行し (パスフレーズを空のままにする)、ssh-copy-id を繰り返し実行して公開鍵を ceph01、ceph02、および ceph03 システムの Ansible ユーザーにコピーします。
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ ssh-keygen [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph01 [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph02 [ansibleadmin@ceph05 ~]$ ssh-copy-id $USER_NAME@ceph03 [ansibleadmin@ceph05 ~]$ exit #ceph-ansible パッケージをインストールします。
# yum install ceph-ansibleこれら 2 つのディレクトリー間にシンボリックを作成します。
# ln -s /usr/share/ceph-ansible/group_vars \ /etc/ansible/group_vars変更する Ceph サンプル yml ファイルのコピーを作成します。
# cd /usr/share/ceph-ansible # cp group_vars/all.yml.sample group_vars/all.yml # cp group_vars/osds.yml.sample group_vars/osds.yml # cp site.yml.sample site.ymlコピーした group_vars/all.yml ファイルを編集します。詳細は、「表 3.1」の一般的な Ansible の設定について参照してください。以下は例になります。
ceph_origin: repository ceph_repository: rhcs ceph_repository_type: cdn ceph_rhcs_version: 3 monitor_interface: eth0 public_network: 192.168.122.0/24ネットワークデバイスとアドレス範囲が異なる場合があることに注意してください。
コピーした
group_vars/osds.ymlファイルを編集します。詳細は、「表 3.2」の OSD Ansible の設定について参照してください。以下の例では、各 OSD ノードの 2 番目のディスクデバイス (/dev/sdb) がデータおよびジャーナルストレージの両方に使用されます。osd_scenario: collocated devices: - /dev/sdb dmcrypt: true osd_auto_discovery: false/etc/ansible/hostsインベントリーファイルを編集して、Ceph ノードを Ceph モニター、OSD およびマネージャーノードとして特定します。この例では、ストレージデバイスも各ノードで特定されます。[mons] ceph01 ceph02 ceph03 [osds] ceph01 devices="[ '/dev/sdb' ]" ceph02 devices="[ '/dev/sdb' ]" ceph03 devices="[ '/dev/sdb' ]" [mgrs] ceph01 devices="[ '/dev/sdb' ]" ceph02 devices="[ '/dev/sdb' ]" ceph03 devices="[ '/dev/sdb' ]"この行を
/etc/ansible/ansible.cfgファイルに追加して、各 Ansible Playbook からの出力を Ansible ユーザーのホームディレクトリーに保存します。retry_files_save_path = ~/Ansible が、Ansible ユーザーとして設定したすべての Ceph ノードに到達できることを確認します。
# USER_NAME=ansibleadmin # sudo su - $USER_NAME [ansibleadmin@ceph05 ~]$ ansible all -m ping ceph01 | SUCCESS => { "changed": false, "ping": "pong" } ceph02 | SUCCESS => { "changed": false, "ping": "pong" } ceph03 | SUCCESS => { "changed": false, "ping": "pong" } [ansibleadmin@ceph05 ~]$ceph-ansible Playbook を (Ansible ユーザーとして) 実行します。
[ansibleadmin@ceph05 ~]$ cd /usr/share/ceph-ansible/ [ansibleadmin@ceph05 ~]$ ansible-playbook site.ymlこの時点で、Ansible Playbook は Ceph ノードをチェックして、それらを要求するサービス用に設定します。正常に実行されないものがある場合は、必要な修正を行い、コマンドを再実行します。
3 つの Ceph ノード(ceph01、ceph02、または ceph03)のいずれかにログインし、Ceph クラスターの正常性を確認します。
# ceph health HEALTH_OK同じノードで、rados を使用してモニタリングが機能していることを確認します。
# ceph osd pool create test 8 # echo 'Hello World!' > hello-world.txt # rados --pool test put hello-world hello-world.txt # rados --pool test get hello-world fetch.txt # cat fetch.txt Hello World!