Barbican dev 环境安装及工作原理

来源:互联网 发布:java集合框架中迭代器 编辑:程序博客网 时间:2024/06/06 08:40

Barbican dev 环境安装及工作原理


  • Barbican dev 环境安装及工作原理
    • 安装
    • 工作原理

安装

以 centos 7,在~目录下开始执行 为例,其他系统请查看barbican dev installation,大差不差。
1. 安装依赖包

# 安装构建Barbican需要的依赖包sudo yum install -y python-pip python-devel libffi-devel \     openssl-devel libsq3-devel openldap-devel cyrus-sasl-devel# 安装PyEnv依赖包sudo yum install -y git curl make gcc# 安装PyEnv - virtualenvwrapper插件需要的依赖包sudo yum install -y python-virtualenvwrapper
  1. 安装pyenv,用于在不同的python版本之间切换
# 获取PyEnv和virtualenvwrapper插件源码git clone https://github.com/yyuu/pyenv.git ~/.pyenvgit clone https://github.com/yyuu/pyenv-virtualenvwrapper.git \          ~/.pyenv/plugins/pyenv-virtualenvwrapper# 增加环境变量echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrcecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrcecho 'eval "$(pyenv init -)"' >> ~/.bashrcecho 'pyenv virtualenvwrapper' >> ~/.bashrc# 重新激活shellexec $SHELL
  1. 安装自己需要的python版本
# 查看可以安装的可用python版本pyenv install -l# 举例安装python2.7.9pyenv install 2.7.9# 设置默认pyenv global 2.7.9
  1. 从源码安装barbican
# 创建虚拟环境mkvirtualenv Barbican# git 克隆barbican源代码git clone https://github.com/openstack/barbican.gitcd barbican# 确保我们使用的是虚拟环境workon Barbican# 安装barbicanbin/barbican.sh install# 后续启动barbican使用bin/barbican start

工作原理

以安装为主线,包含启动
1. 创建/etc/barbican配置目录,将源码中的etc下的文件拷贝过去
2. 创建SQLite数据库,位于/var/lib/barbican/barbican.sqlite
3. 安装barbican的依赖包

pip install -r requirements.txtpip install -r test-requirements.txtpip install uwsgipip install -e .
  1. 启动barbican
uwsgi --master --emperor /etc/barbican/vassals -H ~

这步得详细剖下:
* 创建WSGI服务作为PasteDeploy进程,使用barbican/api/middleware
* 中间件激活后,通过barbican/api/app.py:create_main_app()创建pecan应用
* 通过URL调用barbican/api/controllers/的接口

create_main_app() 会调用versions.V1Controller(),在versions.V1Controller()中指定接口:

item 对应controls的API secrets secrets.SecretsController() orders orders.OrdersController() containers containers.ContainersController() transport_keys transportkeys.TransportKeysController() cas cas.CertificateAuthoritiesController() quotas quotas.QuotasController()
0 0
原创粉丝点击