Install CEHP Radosgateway on Proxmox
RADOS Gateway is an object storage interface in Ceph. It provides interfaces compatible with OpenStack Swift and Amazon S3.
First create a keyring than generated the keys and added them to the keyring:
root@pve1:~# ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.pve1 --gen-key
root@pve1:~# ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.pve2 --gen-key
root@pve1:~# ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.pve3 --gen-key
And then I added the proper capabilities and add the keys to the cluster:
root@pve1:~# ceph-authtool -n client.radosgw.pve1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph-authtool -n client.radosgw.pve2 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph-authtool -n client.radosgw.pve3 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.pve1 -i /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.pve2 -i /etc/ceph/ceph.client.radosgw.keyring
root@pve1:~# ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.pve3 -i /etc/ceph/ceph.client.radosgw.keyring
Copy the rings to the proxmox ClusterFS
root@pve1:~# cp /etc/ceph/ceph.client.radosgw.keyring /etc/pve/priv
Add the following lines to /etc/ceph/ceph.conf
:
[client.radosgw.pve1]
host = pve1
keyring = /etc/pve/priv/ceph.client.radosgw.keyring
log file = /var/log/ceph/client.radosgw.$host.log
rgw_dns_name = s3.devopstales.intra
[client.radosgw.pve2]
host = pve2
keyring = /etc/pve/priv/ceph.client.radosgw.keyring
log file = /var/log/ceph/client.radosgw.$host.log
rgw_dns_name = s3.devopstales.intra
[client.radosgw.pve3]
host = pve3
keyring = /etc/pve/priv/ceph.client.radosgw.keyring
log file = /var/log/ceph/client.rados.$host.log
rgw_dns_name = s3.devopstales.intra
Install the pcakages and start the service. If all goes well, RADOSGW will create some default pools for you.
root@pve1:~# apt install radosgw
root@pve1:~# service radosgw start
root@pve1:~# tail -f /var/log/ceph/client.rados.pve1.log
root@pve1:~# ceph osd pool application enable .rgw.root rgw
root@pve1:~# ceph osd pool application enable default.rgw.control rgw
root@pve1:~# ceph osd pool application enable default.rgw.data.root rgw
root@pve1:~# ceph osd pool application enable default.rgw.gc rgw
root@pve1:~# ceph osd pool application enable default.rgw.log rgw
root@pve1:~# ceph osd pool application enable default.rgw.users.uid rgw
root@pve1:~# ceph osd pool application enable default.rgw.users.email rgw
root@pve1:~# ceph osd pool application enable default.rgw.users.keys rgw
root@pve1:~# ceph osd pool application enable default.rgw.buckets.index rgw
root@pve1:~# ceph osd pool application enable default.rgw.buckets.data rgw
root@pve1:~# ceph osd pool application enable default.rgw.lc rgw
root@pve1:~# ssh pve2 'apt install radosgw && service radosgw start'
root@pve1:~# ssh pve3 'apt install radosgw && service radosgw start'
root@pve1:~# ceph osd pool ls
root@pve1:~# radosgw-admin user create --uid=devopstales --display-name="devopstales" --email=devopstales@devopstales.intra
root@pve1:~# radosgw-admin user info devopstales
root@pve1:~# ceph osd pool application enable default.rgw.buckets.index rgw
root@pve1:~# ceph osd pool application enable default.rgw.buckets.data rgw
root@pve1:~# apt-get install s3cmd
root@pve1:~# s3cmd --configure
Access Key: xxxxxxxxxxxxxxxxxxxxxx
Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
root@pve1:~# s3cmd mb s3://devopstales
Bucket 's3://devopstales/' created