使用keystone認證swift

     對於如何安裝swift,這裏很少作介紹,建議看一下SAIO的腳本,裏面對於安裝過程寫的很清晰,徹底能夠拿來修改下,就變成多機器多節點了。swift

不過SAIO的默認配置和官方最新文檔的配置proxy-server.conf有點小差異,須要改爲官方文檔的配置,好比SAIO還會引用keystone的auth_token模塊,起始這個模塊已經從keystone移除了,如今這個功能能夠在keystoneclient中找到.api

    本文默認你已經安裝好swift和keystone,而且swift在tempauth模式下能夠正常使用,不少文章都只介紹了swift的配置,而忽略了keystone的配置,本文首先介紹下keystone的配置。curl

     首先是keystone的配置: ide

     新建一個用戶swift,下面是個人環境截圖:url

[horizon@localhost keystone]$  keystone user-list
+----------------------------------+----------+---------+----------------------+
|                id                |   name   | enabled |        email         |
+----------------------------------+----------+---------+----------------------+
| 8109586519f9496f9a4f4ad14cc70e34 |  admin   |   True  |  admin@example.com   |
| 54b5d928f1da40f4891362d07ef3d0f2 | alt_demo |   True  | alt_demo@example.com |
| 0536b10b24154cb0900f40786ef320cb |  cinder  |   True  |  cinder@example.com  |
| 83c07a07e68c49ab8ce4447036b72b34 |   demo   |   True  |   demo@example.com   |
| 59218b72dc21489d8f2653297c13f504 |  glance  |   True  |  glance@example.com  |
| c9bf0952371c4e5b891e76c1360913f5 |   nova   |   True  |   nova@example.com   |
| 45d970ebb9a343ae933302533f5676a7 |  swift   |   True  |  swift@example.com   |
+----------------------------------+----------+---------+----------------------+

     而後新建一個role:spa

[horizon@localhost keystone]$
[horizon@localhost keystone]$ keystone role-list
+----------------------------------+---------------+
|                id                |      name     |
+----------------------------------+---------------+
| dbcd5afc0b564f37bf117681e584a57d |     Member    |
| ad8b4ddee35e4ff3ad6e14293203e30f | ResellerAdmin |
| 9fe2ff9ee4384b1894a90878d3e92bab |    _member_   |
| 610a7c30f80c43ed91244765171a6d8b |     admin     |
| 7d4d9c5fbe094aadb04bbfceeb5afd3d |  anotherrole  |
| 00169cfc0aeb47a38cbeac486e280660 |    service    |
| 6f86bb048a27438b9cba5c408d9f65e6 | swiftoperator |
+----------------------------------+---------------+

    創建相應的service3d

[horizon@localhost keystone]$ keystone service-list
+----------------------------------+----------+--------------+---------------------------+
|                id                |   name   |     type     |        description        |
+----------------------------------+----------+--------------+---------------------------+
| 5d1fdfc553724a698d3aaa81c19a7e66 |  cinder  |   volumev2   |  Cinder Volume Service V2 |
| f299e7369ada41d78965f7d700a4d10f |  cinder  |    volume    |   Cinder Volume Service   |
| bbbc0e86ac424654922b4b884615c505 |   ec2    |     ec2      |  EC2 Compatibility Layer  |
| 6992fd70e974429781fd28f598cceae1 |  glance  |    image     |    Glance Image Service   |
| 2d4a0f83448a48f291e4abd66bf16b78 | keystone |   identity   | Keystone Identity Service |
| 95e0fb619eee4c6f9ff6e464181e03e7 |   nova   |  computev3   |  Nova Compute Service V3  |
| f533298b088e4106a0752631d7a2e6a5 |   nova   |   compute    |    Nova Compute Service   |
| 1780506202594c63a0e7815bd91f1f48 |    s3    |      s3      |             S3            |
| 2a700e7ceb824ffcba8bff4212887cc2 |  swift   | object-store |       swift Service       |
+----------------------------------+----------+--------------+---------------------------+

    將名稱爲"admin"的角色權限配置給用戶名爲"swift"的用戶到"service"的租戶管理中
keystone user-role-add --tenant_id {tenant_id} --user {user_id} --role {rule_id}code

    爲Swift Service 配置endpoint
keystone endpoint-create --region RegionOne 
--service_id 004608f103714d81aa3e01b79913789b 
--publicurl 'http://localhost:8080/v1/AUTH_{tenantID}' 
--adminurl 'http://localhost:8080/'
--internalurl 'http://localhost:8080/v1/AUTH_{tenantID}'server


tenant-list:
[horizon@localhost keystone]$ keystone tenant-list
+----------------------------------+--------------------+---------+
|                id                |        name        | enabled |
+----------------------------------+--------------------+---------+
| 9548337f796d4a4fab7e7600b8afdd24 |       admin        |   True  |
| b227fc9afa2b43ed8e5cbd739cfeed7c |      alt_demo      |   True  |
| 84fda0378b734bf58c34288a6ab37450 |        demo        |   True  |
| bdd2c3a6fee44e6c8e6e45c59102345d | invisible_to_admin |   True  |
| e423733ea60048f3845be881d72015d4 |      service       |   True  |
+----------------------------------+--------------------+---------+

爲swift賦予相應的roleblog

keystone user-role-add --user 45d970ebb9a343ae933302533f5676a7 --role 00169cfc0aeb47a38cbeac486e280660 --tenant_id e423733ea60048f3845be881d72015d4

而後建立endpoint,這步是重點,MS官方文檔裏面沒有提到,不少文章也沒提到這一步: 

keystone endpoint-create --region RegionOne --service_id 2a700e7ceb824ffcba8bff4212887cc2 --publicurl 'http://swift_server:8888/v1/AUTH_e423733ea60048f3845be881d72015d4' --adminurl 'http://swift_server:8888/' --internalurl 'http://swift_server:8888/v1/AUTH_e423733ea60048f3845be881d72015d4'

+-------------+-------------------------------------------------------------------+
|   Property  |                               Value                               |
+-------------+-------------------------------------------------------------------+
|   adminurl  |                     http://swift_server:8888/                     |
|      id     |                  573c83753ea74983979aec1a4576d0bc                 |
| internalurl | http://swift_server:8888/v1/AUTH_e423733ea60048f3845be881d72015d4 |
|  publicurl  | http://swift_server:8888/v1/AUTH_e423733ea60048f3845be881d72015d4 |
|    region   |                             RegionOne                             |
|  service_id |                  2a700e7ceb824ffcba8bff4212887cc2                 |
+-------------+-------------------------------------------------------------------+

    接下來的就是修改swift的proxy_server.conf文件,這個官方文檔很詳細了,不必再詳細介紹了,官方文檔還有glance+swift的配置,也很簡單,修改下glance-api.conf的配置便可,官方說明很詳細。

相關文章
相關標籤/搜索