Ceph 配置S3和swift接口访问集群

要使用REST接口,我们首先要为S3接口创建一个初始的Ceph对象网关用户,然后为Swift界面创建一个子用户,最后,我们需要验证创建的用户是否能够访问网关。


创建用以访问s3接口的radosgw用户

执行如下命令创建用户,记录下access_key和secret_key,没记住也没关系,可以使用radosgw-admin user info --uid s3查看


[[email protected] ~]# radosgw-admin user create --uid="s3" --display-name="s3 user"
{
"user_id": "s3",
"display_name": "s3 user",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{
"user": "s3",
"access_key": "WNXRGPK6XGWO8XRLWRUA",
"secret_key": "Segqx8fZ8H5arM1Pvpygiewp4gl9Qjkrymi09aVP"
}
],
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": []
}

创建用以访问swift接口的radosgw用户

进行swift接口访问,需要创建一个Swift子用户,记录下s3:swift的secret_key


[[email protected] ~]#radosgw-admin subuser create --uid=s3 --subuser=s3:swift --access=full
{
"user_id": "s3",
"display_name": "s3 user",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [
{
"id": "s3:swift",
"permissions": "full-control"
}
],
"keys": [
{
"user": "s3",
"access_key": "WNXRGPK6XGWO8XRLWRUA",
"secret_key": "Segqx8fZ8H5arM1Pvpygiewp4gl9Qjkrymi09aVP"
}
],
"swift_keys": [
{
"user": "s3:swift",
"secret_key": "czb1ExW6XRy7iE41gFLL0xQNlamLLc569DC9FG1r"
}
],
"caps": [],
"op_mask": "read, write, delete",
"default_placement": "",
"placement_tags": [],
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"user_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
},
"temp_url_keys": [],
"type": "rgw",
"mfa_ids": []
}

测试s3接口

我们需要编写并运行Python测试脚本来验证S3访问, S3访问测试脚本将连接到radosgw,创建一个新的存储桶并列出所有存储桶, access_key_id和secret_access_key的值取自radosgw-admin命令返回的s3用户的access_key和secret_key的值,另外需要修改主机名(host)和端口(port)


[[email protected] ~]yum install python-boto -y


[[email protected] ~]vim s3test.py

import boto
import boto.s3.connection
access_key = ‘WNXRGPK6XGWO8XRLWRUA‘
secret_key = ‘Segqx8fZ8H5arM1Pvpygiewp4gl9Qjkrymi09aVP‘
conn = boto.connect_s3(
    aws_access_key_id = access_key,
    aws_secret_access_key = secret_key,
    host = ‘ceph-node1‘, port=7480,
    is_secure=False,
    calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket(‘my-first-s3-bucket‘)
for bucket in conn.get_all_buckets():
        print "{name}\t{created}".format(
                name = bucket.name,
                created = bucket.creation_date,
)

[email protected] ~]python s3test.py
my-first-s3-bucket 2019-12-13T02:58:44.604Z



也可以使用s3cmd这个命令行工具

[email protected] ~]yum install s3cmd -y


[email protected] ~]s3cmd --configure

配置里需要填写s3用户的secret_key和access_key,以及S3 Endpoint和target Amazon S3,这两个填写radosgw的主机的主机名和端口,如ceph-node1:7480


[email protected] ~]s3cmd ls #查看已有bucket
2019-12-13 02:58 s3://my-first-s3-bucket
[email protected] ~]s3cmd mb s3://my-second-s3-bucket #创建一个bucket
[email protected] ~]s3cmd put /etc/hosts s3://my-second-s3-bucket #给刚才创建的bucket中放入一个文件
[[email protected]]# s3cmd ls s3://my-second-s3-bucket #查看桶中文件
2019-12-13 03:08 575 s3://my-second-s3-bucket/hosts

测试swift接口

[email protected] ~]yum install python-pip -y
[email protected] ~]pip install --upgrade python-swiftclient


创建一个bucket
[[email protected] s3]# swift -A http://glusterfs-node1:7480/auth/1.0 -U s3:swift -K e58xcqROWx2bMMSo36KnNWUYpEUrdPbDruNWezqr post my-first-swift-bucket


用swift接口查看这个已有的bucket
[[email protected] s3]# swift -A http://glusterfs-node1:7480/auth/1.0 -U s3:swift -K e58xcqROWx2bMMSo36KnNWUYpEUrdPbDruNWezqr list
my-first-s3-bucket
my-first-swift-bucket
my-second-s3-bucket

注意可能会出现下面这个错误,等一会就好了,要是不行就把刚才的用户删除了重新创建一个,使用新的secret_key

Auth GET failed: http://ceph-node1:7480/auth/1.0 403 Forbidden [first 60 chars of response] {"Code":"AccessDenied","RequestId":"tx000000000000000000013-
Failed Transaction ID: tx000000000000000000013-005df3022d-e2a1-default



至此,s3和swift接口的搭建和测试已经完成,如需更多使用实例和api,可以查阅man或ceph官网

原文地址:https://blog.51cto.com/11093860/2458293

时间: 2024-10-18 20:20:27

Ceph 配置S3和swift接口访问集群的相关文章

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置http+msyql+nfs高可用集群

  基于crm+hb_gui接口配置http+mysql+nfs高可用集群    基于crm+hb_gui接口配置ipvs高可用集群    基于crm+hb_gui+ldirectored接口配置ipvs高可用集群 

配置LVS/DR模式的LB集群

集群与存储 Day2 配置LVS/DR模式的LB集群1 配置网站服务器 51/521.1 配置VIP地址[[email protected] ~]# ifconfig lo:1 192.168.4.252/32[[email protected] ~]# ifconfig lo:1 1.2 修改网络接口运行参数/proc/sys/net/ipv4/conf[[email protected] conf]# echo 1 > lo/arp_ignore [[email protected] con

[k8s]通过svc来访问集群podhttp://api:8080/api/v1/namespaces/default/services/mynginx/proxy/

通过http://api:8080/api/v1/namespaces/default/services/mynginx/proxy/ 通过svc访问集群报错 我想通过类似这种模式来访问我的集群 http://192.168.14.11:8080/api/v1/namespaces/default/services/mynginx/proxy/ http://192.168.14.11:8080/api/v1/namespaces/kube-system/services/kubernetes-

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

配置redis主从复制、高可用集群

一.安装redis首先下载redis安装包 [[email protected] yasuobao]# pwd /root/yasuobao [[email protected] yasuobao]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压[[email protected] yasuobao]# tar -zxvf redis-5.0.5.tar.gz下载gcc.c[[email protected] yasuo

用LVS配置一个简单的web LB集群

知识储备: ipvsadm: 管理集群服务 添加:-A -t|u|f  service-address [-s scheduler] -t: TCP协议的集群 -u: UDP协议的集群 -f: FWM: 防火墙标记 service-address:     IP:PORT 修改:-E 删除:-D -t|u|f service-address 管理集群服务中的RS 添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]

集群配置虚拟主机及部署Hadoop集群碰到的问题

配置集群方案 Ubuntu下的配置apache虚拟主机方案: 对其中的Master节点配置虚拟主机,可以通过Chrome浏览器访问目录. 安装虚拟主机之前,先安装Apache2 sudo apt-get install apache2 再安装php5 sudo apt-get install php5 然后,进入 /etc/apache2/sites-available文件夹,添加”*.conf”文件 往该文件里写入 <VirtualHost *:80> ServerName author.x

ProxySQL Cluster 配置详解 以及 高可用集群方案部署记录(完结篇)

早期的ProxySQL若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是ProxySQl 从1.4.2版本后,ProxySQL支持原生的Cluster集群搭建,实例之间可以互通一些配置数据,大大简化了管理与维护操作. ProxySQL是一个非中心化代理,在拓扑中,建议将它部署在靠近应用程序服务器的位置处.ProxySQL节点可以很方便地扩展到上百个节点,因为它支持runtime修改配

配置三台服务器组成的ELK集群(二)

上一篇里主要是介绍了ES和ES-Head的安装过程,这一篇继续介绍ELK集群的其他核心组件安装过程. 五.安装Logstash: 本案的Logstash安装在10.113.130.117上:燃鹅,Logstash也可以利用多台组成集群,如果未来单台处理不过来,可以把Logstash扩展到其他服务器上. 将logstash.tar.gz解压到指定目录: # tar -zxvf logstash-5.4.1.tar.gz -C /opt/ # mv /opt/logstash-5.4.1/ /opt