From oslo.log log配置相关 里面的配置说明比较清晰,就不再这里列出了 |
|
|
|
|
From oslo.messaging rpc通信的配置, 因为只使用rabbit,所以和rabbit没关系的都不列出,这里可以看出配置还是有点乱 为了兼容以前的还保留了好多字段, zmq的所有配置都还在default里, 后面oslo_messaging_rabbit部分还有大量rabbit配置 |
|
|
|
|
DEFAULT |
rpc_backend |
rabbit |
amqp zmq rabbit |
rpc通信的方式, 看代码里好像还有fake kafka pika等方式,rabbit驱动就是对kombu的再次封装,其实都是pika的封装 |
DEFAULT |
transport_url |
|
|
不要配置这个, 这个直接在rabbit里面配置就好,之前应该是没有rpc_backend这个配置,直接通过transport_url解析出用那个backend和对应链接信息 |
DEFAULT |
rpc_conn_pool_size |
30 |
int |
连接池大小,不建议在DEFAULT中配置(过时配置),,建议配置到oslo_messaging_rabbit.rpc_conn_pool_size(用rabbit) |
DEFAULT |
rpc_response_timeout |
60 |
int |
rpc send的的timeout |
DEFAULT |
executor_thread_pool_size |
64 |
int |
取代[DEFAULT]/rpc_thread_pool_size,keystone的executor用,默认也就是eventlet的工作”线程”数 |
DEFAULT |
control_exchange |
keystone |
|
amqp的交换机名字 |
From oslo.service.service 守护进程相关配置 |
|
|
|
|
DEFAULT |
backdoor_port |
0 |
|
为0随机端口,没有IP配置是因为之监听本地IP |
DEFAULT |
backdoor_socket |
|
|
用unix sock方式 这个和backdoor_port应该是二选一的,应该是用于通知keystone进程关闭重启之类的后门操作的接口,实际测试建议不要unix sock,eventlet有代码print出host和端口,用这个日志里会有一条错误记录 |
DEFAULT |
log_options |
True |
true false |
是否记录日志 |
DEFAULT |
graceful_shutdown_timeout |
60 |
int |
关闭超时时间 |
From keystone [assignment] keystone.assignment.backends.sql:Assignment tablename = ‘assignment’, 这个就是给role分配权限的和处理user和role关系的,里面有诸如add_grant delete_grant add_role_to_user_and_project 之类的方法 |
|
|
|
|
assignment |
driver |
sql |
|
只支持sql, 不指定的话将使用[identity]/driver中的配置,从代码里看,不配置的时候从identity里强制返回sql,而且代码中有注明,今后使用非sql的时候必须指定而不能从identity中继承 |
assignment |
prohibited_implied_role |
admin |
|
禁止implied的角色,这个具体看下面翻译文档 |
From keystone [auth] key的auth配置 这个应该对应v3 的 auth |
|
|
|
|
auth |
methods |
external,password,token,oauth1 |
|
允许使用的验证方式 |
auth |
password |
Password |
|
keystone.auth.password中的namespace(也就是指向的类名,不用设置) |
auth |
token |
Token |
|
keystone.auth.token中的namespace(也就是指向的类名,不用设置) |
auth |
external |
DefaultDomain |
|
keystone.auth.external中的namespace(也就是指向的类名,不用设置) |
auth |
oauth1 |
Oauth1 |
|
keystone.auth.oauth1中的namespace(也就是指向的类名,不用设置) |
From oslo.cache [cache] 全局缓存配置, 这里的memcache服务器与[memcache]中的memcache区别是,这里的memcache是作为cache的memcache,所有的只要启用了cache就会用上这个,[memcache]的memcache是作为store的的, 其实目前也就只有token用memcache作store而已,token使用memcache作为backend的情况下,token就不需要再启用cache了 |
|
|
|
|
cache |
config_prefix |
cache.oslo |
|
缓存key的前缀 |
cache |
expiration_time |
600 |
|
超时时间 |
cache |
backend |
dogpile.cache.null |
dogpile.cache.memcache,oslo_cache.memcache_pool |
缓存驱动,默认的null不知道是什么缓存方式 |
cache |
backend_argument |
|
|
驱动的参数,我们用oslo_cache.memcache_pool不需要参数 |
cache |
proxies |
|
|
dogpile.cache的配置,我们用oslo_cache.memcache_pool可以不用管 |
cache |
enabled |
False |
true false |
是否启用全局缓存, 若全局缓存没启用,其他selection里的cache启用了也无效 |
cache |
debug_cache_backend |
False |
true false |
缓存 get set delete的日志开关 |
cache |
memcache_servers |
localhost:11211 |
|
memcache服务器连接信息 backend配置为memcache相关的时候才有效.注意,这里和后面[memcache]中的memcache服务器是没关系的.不过这两个地方配置为同一个memcahe也没问题,因为都有自己的prefix. oslo_cache.memcache_pool实际使用的时候会把参数前面的memcache去掉, 比如memcache_pool_maxsize在oslo_cache.memcache_pool中是pool_maxsize, memcache_socket_timeout用于soeckt.settimeout() |
cache |
memcache_dead_retry |
300 |
|
|
cache |
memcache_socket_timeout |
3 |
|
|
cache |
memcache_pool_maxsize |
10 |
|
oslo_cache.memcache_pool专有参数, 连接池大小 |
cache |
memcache_pool_unused_timeout |
60 |
|
oslo_cache.memcache_pool专有参数, 空闲链接时间 |
cache |
memcache_pool_connection_get_timeout |
10 |
|
从memcache的pool中获取一个链接的超时时间, 这个时间和socket无关,最终是queue的get超时时间,也就是说超时socket的相关超时时间由memcache_socket_timeout控制 |
From keystone [catalog] |
|
|
|
|
catalog |
template_file |
default_catalog.templates |
|
模板文件位置,当driver配置为templated时这个参数才有效 |
catalog |
driver |
sql |
kvs, sql, templated, endpoint_filter.sql |
驱动方式 |
catalog |
caching |
True |
true false |
是否使用缓存,如果使用kvs和templated估计可以不用cache |
catalog |
list_limit |
|
|
返回列表长度限制 |
From oslo.middleware [cors] COR就是跨域资源共享, 这里的配置自然就是处理跨域的,和http服务器的跨域配置是一个东西,没有需求可以不配置,这个是filter,而且是第一个filter, 跨域的内容可以参考http://netsecurity.51cto.com/art/201311/419179.htm, w3c文档https://www.w3.org/TR/cors/#access-control-allow-methods-response-header |
|
|
|
|
cors |
allowed_origin |
|
|
对应nginx配置Access-Control-Allow-Origin 允许的跨域的url |
cors |
allow_credentials |
True |
true false |
对应nginx配置Access-Control-Allow-Credentials 是否允许请求带有验证信息 |
cors |
expose_headers |
X-Auth-Token,X-Openstack-Request-Id X-Subject-Token |
|
对应nginx配置Access-Control-Expose-Headers 允许脚本访问的返回头,请求成功后,脚本可以在XMLHttpRequest中访问这些头的信息 |
cors |
max_age |
3600 |
|
对应nginx配置Access-Control-Max-Age 缓存此次请求的秒数 |
cors |
allow_methods |
GET,PUT,POST,DELETE,PATCH |
|
对应nginx配置Access-Control-Allow-Methods 允许的跨域的methods |
cors |
allow_headers |
X-Auth-Token,X-Openstack-Request-Id X-Subject-Token,X-Project-Id X-Project-Name,X-Project-Domain-Id X-Project-Domain-Name X-Domain-Id,X-Domain-Name |
|
对应nginx配置r Access-Control-Allow-Headers 允许自定义的头部 |
From oslo.middleware [cors.subdomain] 这里的配置和上面是一样的,这里的subdomain是你自己的域名,比如aaa.com, 配置头就写cors.aaa.com, 指定的域配置覆盖上层配置, 代码里专门看了下,”cors.”后面的的字符串可以随便写,代码中实际使用的是的allowed_origin,”cors.”后面配置得和allowed_origin一样是为了方便看而已 |
|
|
|
|
cors.subdomain |
allowed_origin |
与cors配置相同 |
|
|
cors.subdomain |
allow_credentials |
|
|
|
cors.subdomain |
expose_headers |
|
|
|
cors.subdomain |
max_age |
|
|
|
cors.subdomain |
allow_methods |
|
|
|
cors.subdomain |
allow_headers |
|
|
|
From keystone [credential] 只支持sql, 这玩意我现在还没看明白是干嘛的, 好像也是v2的时候才有的东西,现在都直接在auth_routers通过authenticate_for_token登陆了,好像都用不到credential了 |
|
|
|
|
credential |
driver |
sql |
|
|
From oslo.db [database] 数据库连接信息 |
|
|
|
|
database |
sqlite_db |
|
|
用mysql就不用管这个 |
database |
sqlite_synchronous |
|
|
用mysql就不用管这个 |
database |
db_backend |
sqlalchemy |
|
sqlalchemy是通用的数据库框架 这个配置取代了[DEFAULT]/db_backend |
database |
connection |
|
|
取代[DEFAULT]/sql_connection [DATABASE]/sql_connection [sql]/connection |
database |
slave_connection |
|
|
以前没有的 新加的从库连接, 现在支持读写分离? |
database |
mysql_sql_mode |
TRADITIONAL |
|
mysql独有配置 |
database |
sql_idle_timeout |
3600 |
|
取代[DEFAULT]/sql_idle_timeout [DATABASE]/sql_idle_timeout [sql]/idle_timeout |
database |
min_pool_size |
1 |
|
取代[DEFAULT]/sql_min_pool_size [DATABASE]/sql_min_pool_size |
database |
max_pool_size |
|
|
取代[DEFAULT]/sql_max_pool_size [DATABASE]/sql_max_pool_size |
database |
max_retries |
10 |
|
|
database |
retry_interval |
10 |
|
|
database |
max_overflow |
50 |
|
|
database |
connection_debug |
0 |
0=None, 100=Everything |
|
database |
connection_trace |
False |
true false |
|
database |
pool_timeout |
|
|
|
database |
use_db_reconnect |
False |
true false |
|
database |
db_retry_interval |
1 |
int |
Seconds between retries of a database transaction.应该是语句执行出错重试,前面的重试是链接不通的重试 |
database |
db_inc_retry_interval |
True |
true false |
是否增长重试时间,每重试出错一次,重试间隔时间加1, 下面的参数就是增加到的间隔上限 |
database |
db_max_retry_interval |
10 |
int |
重试间隔时间上限 |
database |
db_max_retries |
20 |
|
重试到达这个次数就报错 设置-1不报错 |
From keystone [domain_config] |
|
|
|
|
domain_config |
driver |
sql |
|
|
domain_config |
caching |
True |
true false |
|
domain_config |
cache_time |
300 |
int |
|
From keystone [endpoint_filter] |
|
|
|
|
endpoint_filter |
driver |
sql |
|
sql指向keystone.catalog.backends.sql:Catalog, 这个和catalog用的一个驱动 |
endpoint_filter |
return_all_endpoints_if_no_filter |
True |
true false |
代码里只有一个地方用了这个参数,估计也是兼容v2用的 |
From keystone [endpoint_policy] 获取终点的policy |
|
|
|
|
endpoint_policy |
enabled |
True |
true false |
这个参数已经过时,下个版本会默认启用不再允许禁止, M版中,启用endpoint_policy会增加一个routes |
endpoint_policy |
driver |
sql |
|
|
From keystone [eventlet_server] keystone守护进程相关配置, 以eventlet_server(也就是通过keystone-all)来启动keystone已经是不推荐的设置,所以这里的配置都可以不关注了, 现在建议直接使用uwsgi的方式启动keystone,具体看uwsgi启动keystone的部分 |
|
|
|
|
eventlet_server |
public_workers |
cpu 个数 |
int |
公共api app的进程数量 |
eventlet_server |
admin_workers |
cpu 个数 |
int |
admin api app的进程数量 |
eventlet_server |
public_bind_host |
0.0.0.0 |
|
取代[DEFAULT]/bind_host [DEFAULT]/public_bind_host |
eventlet_server |
public_port |
5000 |
|
取代[DEFAULT]/public_port |
eventlet_server |
admin_bind_host |
0.0.0.0 |
|
|
eventlet_server |
admin_port |
35357 |
|
|
eventlet_server |
wsgi_keep_alive |
True |
true false |
http 1.1支持的http长连接是否开启, 也就是respoen后是否close socket |
eventlet_server |
client_socket_timeout |
900 |
int |
取0 永不超时, 代码里是accetp到socket后调用socket.settimeout |
eventlet_server |
tcp_keepalive |
False |
int |
取代[DEFAULT]/tcp_keepalive,代码里accpect后设置socket.SO_KEEPALIVE,设置这个就表示操作系统来检查连接是否已经断开(心跳) |
eventlet_server |
tcp_keepidle |
|
|
设置了上面参数后,设置设个参数做心跳检查间隔 |
From keystone [eventlet_server_ssl] 暂时不启用ssl,先不理会这里的配置 |
|
|
|
|
From keystone [federation] 联合身份认证,现在用不上,不用配置,用于外部认证用户,这类用户信息不存放在keystone中, 联合的api将外部user添加一个映射,并将用户映射到一个Keystone组. 参考http://www.ibm.com/developerworks/cn/cloud/library/cl-keystone-tfim/ |
|
|
|
|
From keystone [fernet_tokens] 这个是对应[token]里的provider配置 一般用uuid 或者pki、pkiz,所以不关注这个配置先. 看文档这个tokens方式的性能比uuid和pik都要好好很多 |
|
|
|
|
From keystone [identity] tablename = ‘user’ auth中authenticate是通过identity_api来验证用户的,identity就处理用户信息的. user 的get delete update add之类都是通过identity |
|
|
|
|
identity |
default_domain_id |
default |
|
v2 没有domain的概念, 给v2 api指定一个domain |
identity |
domain_specific_drivers_enabled |
False |
true false |
子domain或者全部domain的配置通过resource的backend获取 false (新版推荐设置)子domain或者全部domain的配置通过下面domain_configurations_from_database指定true. ——————-参考1: https://www.ibm.com/developerworks/cn/cloud/library/cl-configure-keystone-ldap-and-active-directory/ ——-参考2: http://docs.openstack.org/developer/keystone/configuration.html Setting domain_specific_drivers_enabled to True will enable this feature, causing Keystone to look in the domain_config_dir for config files of the form:keystone..conf |
identity |
domain_configurations_from_database |
False |
true false |
domain配置通过resource的backend中获取true,domain配置从文件读取false.也就是说在domain_specific_drivers_enabled为true的情况下,要使用resource的backend, 需要手动指定为true.新版建议配置domain_configurations_from_database为false,也就是让这个配置无效 |
identity |
domain_config_dir |
/etc/keystone/domains |
|
当domain_specific_drivers_enabled设置为true且domain_configurations_from_database为false的时候,获取子domain配置文件的文件夹.也就是说当domain_specific_drivers_enabled为false或者domain_specific_drivers_enabled/domain_configurations_from_database双true的话这里就无效 |
identity |
driver |
sql |
|
identity 的 backend |
identity |
caching |
True |
true false |
|
identity |
cache_time |
600 |
int |
|
identity |
max_password_length |
4096 |
|
最长用户密码 |
identity |
list_limit |
|
|
|
From keystone identity_mapping [identity_mapping] 也是兼容用的 |
|
|
|
|
identity_mapping |
driver |
sql |
|
|
identity_mapping |
generator |
sha256 |
|
|
identity_mapping |
backward_compatible_ids |
False |
true false |
整个keystone数据是新的建议设置为false,有老数据设置为true |
From keystone [kvs] cache的配置,如果有使用kvs这里就必须配置.可以使用的kvs的有 catalog token revoke, kvs在token中还不可以禁止revoke_by_id. cache都使用memcache,所以这里的配置也不看了 |
|
|
|
|
From keystone [ldap] 不使用ldap认真,不看配置先 |
|
|
|
|
From oslo.messaging [matchmaker_redis] 使用zmq的时候要用到redis,我们使用rabbit不用管这里的配置 |
|
|
|
|
From keystone [memcache] 用到memcache的只有token(注意和cache里的memcache区别) |
|
|
|
|
memcache |
servers |
localhost:11211 |
|
|
memcache |
dead_retry |
300 |
|
|
memcache |
socket_timeout |
3 |
|
|
memcache |
pool_maxsize |
10 |
|
|
memcache |
pool_unused_timeout |
60 |
|
|
memcache |
pool_connection_get_timeout |
10 |
|
|
From keystone [oauth1] |
|
|
|
|
oauth1 |
driver |
sql |
|
|
oauth1 |
request_token_duration |
28800 |
|
|
oauth1 |
access_token_duration |
86400 |
|
|
From keystone [os_inherit] 用户继承 |
|
|
|
|
os_inherit |
enabled |
True |
true false |
即将过时参数,今后会默认启用 |
From keystone [oslo_messaging_amqp] 我们使用rabbit,这里的配置不用看 |
|
|
|
|
From oslo.messaging [oslo_messaging_notifications] |
|
|
|
|
oslo_messaging_notifications |
driver |
|
messaging, messagingv2,routing, log, test, noop |
通过配置多次支持多个driver, 不使用messaging/messagingv2 transport_url和topics可以不用配置 |
oslo_messaging_notifications |
transport_url |
|
|
不配置这个的话,使用默认的rpc配置(就是使用keystone的rpc) |
oslo_messaging_notifications |
topics |
notifications |
|
是个列表 |
From oslo.messaging [oslo_messaging_rabbit] rabbit配置 |
|
|
|
|
oslo_messaging_rabbit |
amqp_durable_queues |
False |
true false |
取代[DEFAULT]/amqp_durable_queues [DEFAULT]/rabbit_durable_queues ampq里的持久化queue, 就是Consumer注册的时候的durable设置 |
oslo_messaging_rabbit |
amqp_auto_delete |
False |
true false |
取代[DEFAULT]/amqp_auto_delete 是否自动删除exchange |
oslo_messaging_rabbit |
kombu_ssl_version |
|
|
取代[DEFAULT]/kombu_ssl_version 不用ssl 可以不用配置 |
oslo_messaging_rabbit |
kombu_ssl_keyfile |
|
|
取代[DEFAULT]/kombu_ssl_keyfile |
oslo_messaging_rabbit |
kombu_ssl_certfile |
|
|
取代[DEFAULT]/kombu_ssl_certfile |
oslo_messaging_rabbit |
kombu_ssl_ca_certs |
|
|
取代[DEFAULT]/kombu_ssl_ca_certs |
oslo_messaging_rabbit |
kombu_reconnect_delay |
1 |
float |
取代[DEFAULT]/kombu_reconnect_delay. 重连延迟 |
oslo_messaging_rabbit |
kombu_compression |
|
gzip, bz2 |
是否启用数据压缩,默认不启用 |
oslo_messaging_rabbit |
kombu_missing_consumer_retry_timeout |
60 |
int |
取代[DEFAULT]/kombu_reconnect_timeout,必须比rpc_response_timeout长, consumer重连重试时间 |
oslo_messaging_rabbit |
kombu_failover_strategy |
round-robin |
round-robin, shuffle |
failover方式 |
oslo_messaging_rabbit |
rabbit_host |
localhost |
|
取代[DEFAULT]/rabbit_host, rabbit 的host,这个配置代码中部使用,只有配置文件中将他和port合并为rabbit_hosts |
oslo_messaging_rabbit |
rabbit_port |
5672 |
|
取代[DEFAULT]/rabbit_port 端口,下面的配了这也可以不配 |
oslo_messaging_rabbit |
rabbit_hosts |
$rabbit_host:$rabbit_port |
|
取代[DEFAULT]/rabbit_hosts 可以配置为列表 |
oslo_messaging_rabbit |
rabbit_use_ssl |
False |
true false |
取代[DEFAULT]/rabbit_use_ssl |
oslo_messaging_rabbit |
rabbit_userid |
guest |
|
取代[DEFAULT]/rabbit_userid rabbit登陆账号 |
oslo_messaging_rabbit |
rabbit_password |
guest |
|
取代[DEFAULT]/rabbit_password |
oslo_messaging_rabbit |
rabbit_login_method |
AMQPLAIN |
|
取代[DEFAULT]/rabbit_login_method |
oslo_messaging_rabbit |
rabbit_virtual_host |
/ |
|
取代[DEFAULT]/rabbit_virtual_host 自己建过专用的vhost的话前面不需要带上/ 例如/openstack就是错的 |
oslo_messaging_rabbit |
rabbit_retry_interval |
|
|
|
oslo_messaging_rabbit |
rabbit_retry_backoff |
|
|
|
oslo_messaging_rabbit |
rabbit_interval_max |
|
|
|
oslo_messaging_rabbit |
rabbit_max_retries |
|
|
|
oslo_messaging_rabbit |
rabbit_ha_queues |
|
|
|
oslo_messaging_rabbit |
rabbit_transient_queues_ttl |
|
|
|
oslo_messaging_rabbit |
rabbit_qos_prefetch_count |
0 |
|
rabbit的prefetch_count 设置为0就是无限制 |
oslo_messaging_rabbit |
heartbeat_timeout_threshold |
60 |
|
|
oslo_messaging_rabbit |
heartbeat_rate |
2 |
|
|
oslo_messaging_rabbit |
fake_rabbit |
False |
true false |
|
oslo_messaging_rabbit |
channel_max |
|
|
|
oslo_messaging_rabbit |
frame_max |
|
|
ampq的最大帧字节限制 |
oslo_messaging_rabbit |
heartbeat_interval |
1 |
|
|
oslo_messaging_rabbit |
ssl |
|
|
|
oslo_messaging_rabbit |
ssl_options |
|
|
|
oslo_messaging_rabbit |
socket_timeout |
0.25 |
float |
|
oslo_messaging_rabbit |
tcp_user_timeout |
0.25 |
float |
|
oslo_messaging_rabbit |
host_connection_reconnect_delay |
0.25 |
float |
|
oslo_messaging_rabbit |
pool_max_size |
10 |
int |
|
oslo_messaging_rabbit |
pool_max_overflow |
0 |
int |
|
oslo_messaging_rabbit |
pool_timeout |
30 |
int |
|
oslo_messaging_rabbit |
pool_recycle |
600 |
int |
|
oslo_messaging_rabbit |
pool_stale |
60 |
int |
|
oslo_messaging_rabbit |
notification_persistence |
False |
true false |
|
oslo_messaging_rabbit |
default_notification_exchange |
${control_exchange}_notification |
|
|
oslo_messaging_rabbit |
notification_listener_prefetch_count |
100 |
|
|
oslo_messaging_rabbit |
default_notification_retry_attempts |
-1 |
|
-1 means infinite retry |
oslo_messaging_rabbit |
notification_retry_delay |
0.25 |
|
|
oslo_messaging_rabbit |
rpc_queue_expiration |
60 |
|
|
oslo_messaging_rabbit |
rpc_reply_exchange |
${control_exchange}_rpc_reply |
|
|
oslo_messaging_rabbit |
rpc_listener_prefetch_count |
100 |
|
|
oslo_messaging_rabbit |
rpc_reply_listener_prefetch_count |
100 |
|
|
oslo_messaging_rabbit |
rpc_reply_retry_attempts |
-1 |
|
-1 means infinite retry during rpc_timeout |
oslo_messaging_rabbit |
rpc_reply_retry_delay |
0.25 |
float |
|
oslo_messaging_rabbit |
default_rpc_retry_attempts |
-1 |
|
-1 means infinite retry |
oslo_messaging_rabbit |
rpc_retry_delay |
0.25 |
float |
|
From oslo.middleware [oslo_middleware] 一些通用配置 |
|
|
|
|
oslo_middleware |
max_request_body_size |
114688 |
int |
wsgi的最大请求大小,后端通过content_length来比较 |
oslo_middleware |
secure_proxy_ssl_header |
X-Forwarded-Proto |
|
ssl proxy头,不用ssl不用管 |
From oslo.policy [oslo_policy] |
|
|
|
|
oslo_policy |
policy_file |
|
|
取代[DEFAULT]/policy_file |
oslo_policy |
policy_default_rule |
|
|
取代[DEFAULT]/policy_default_rule |
oslo_policy |
policy_dirs |
|
|
取代[DEFAULT]/policy_dirs |
From keystone [paste_deploy] wsgi服务器启动的时候 urlmap映射调用的配置 |
|
|
|
|
paste_deploy |
config_file |
keystone-paste.ini |
|
paste deploy的配置文件位置 |
From keystone [policy] |
|
|
|
|
policy |
driver |
sql |
|
|
policy |
list_limit |
|
|
|