#!/bin/bash
#判断用户的存在性
function is_exist()
{
local name="$1"
ceph auth get $name > /dev/null 2>&1
if [ $? -eq 0 ]
then
return 1
fi
return 0
}
echo "start create gateway..."
if [ $# -eq 0 ]
then
echo "please input param, eg:node1"
echo "please input param, eg:node1"
exit 1
fi
#判断用户client.bootstrap-rgw是否存在,不存在创建
is_exist "client.bootstrap-rgw"
if [ $? -eq 1 ]
then
ceph auth caps client.bootstrap-rgw mon 'allow rwx' osd 'allow rwx'
if [ ! -f /etc/ceph/ceph.bootstrap-rgw.keyring ]
then
ceph --cluster ceph --name client.admin --keyring /etc/ceph/ceph.client.admin.keyring auth get-or-create client.bootstrap-rgw osd 'allow rwx' mon 'allow rwx' -o /etc/ceph/ceph.bootstrap-rgw.keyring
if [ $? -ne 0 ]
then
echo "create ceph.bootstrap-rgw.keyring fail"
exit 2
fi
echo "create ceph.bootstrap-rgw.keyring fail success"
fi
else
ceph --cluster ceph --name client.admin --keyring /etc/ceph/ceph.client.admin.keyring auth get-or-create client.bootstrap-rgw osd 'allow rwx' mon 'allow rwx' -o /etc/ceph/ceph.bootstrap-rgw.keyring
if [ $? -ne 0 ]
then
echo "create user client.bootstrap-rgw fail"
exit 3
fi
echo "create user client.bootstrap-rgw success"
fi
#拷贝rgw的keyring,为创建ceph-rgw.$1的keyring做准备
if [ ! -f /var/lib/ceph/bootstrap-rgw/ceph.keyring ]
then
cp /etc/ceph/ceph.bootstrap-rgw.keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring
fi
#创建用于存放ceph-rgw.$1的keyring的目录
mkdir -p /var/lib/ceph/radosgw/ceph-rgw.$1/
#判断用户client.rgw.$1是否存在,不存在创建
is_exist "client.rgw.$1"
if [ $? -eq 1 ]
then
ceph auth caps client.rgw.$1 osd 'allow rwx' mon 'allow rw'
if [ ! -f /var/lib/ceph/radosgw/ceph-rgw.$1/keyring ]
then
ceph --cluster ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring auth get-or-create client.rgw.$1 osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.$1/keyring
if [ $? -ne 0 ]
then
echo "create ceph.bootstrap-rgw.keyring fail"
exit 2
fi
echo "create ceph.bootstrap-rgw.keyring success"
fi
else
ceph --cluster ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring auth get-or-create client.rgw.$1 osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.$1/keyring
if [ $? -ne 0 ]
then
echo "create user client.bootstrap-rgw fail"
exit 3
fi
echo "create user client.bootstrap-rgw success"
fi
systemctl enable ceph-radosgw@rgw.$1
systemctl start ceph-radosgw@rgw.$1
/usr/bin/chown -R ceph:ceph /var/lib/ceph/radosgw
echo "create gateway end"
exit 0