Barbican dev 环境安装及工作原理

Posted Eric_Xiett

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenvwrapper.git \\
          ~/.pyenv/plugins/pyenv-virtualenvwrapper

# 增加环境变量
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'pyenv virtualenvwrapper' >> ~/.bashrc

# 重新激活shell
exec $SHELL
  1. 安装自己需要的python版本
# 查看可以安装的可用python版本
pyenv install -l
# 举例安装python2.7.9
pyenv install 2.7.9
# 设置默认
pyenv global 2.7.9
  1. 从源码安装barbican
# 创建虚拟环境
mkvirtualenv Barbican
# git 克隆barbican源代码
git clone https://github.com/openstack/barbican.git
cd barbican
# 确保我们使用的是虚拟环境
workon Barbican
# 安装barbican
bin/barbican.sh install
# 后续启动barbican使用
bin/barbican start

工作原理

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

pip install -r requirements.txt
pip install -r test-requirements.txt
pip install uwsgi
pip 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
secretssecrets.SecretsController()
ordersorders.OrdersController()
containerscontainers.ContainersController()
transport_keystransportkeys.TransportKeysController()
cascas.CertificateAuthoritiesController()
quotasquotas.QuotasController()

以上是关于Barbican dev 环境安装及工作原理的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维利器 SaltStack 工作原理及安装配置实例详解

Barbican 简介

47 监控系统基础及zabbix介绍zabbix工作原理及安装配置zabbix on CentOS7zabbix配置

Barbican 访问控制

barbican的核心——密钥插件系统

Barbican M 版本 ReleaseNotes和Blueprints