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
- 安装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
- 安装自己需要的python版本
# 查看可以安装的可用python版本
pyenv install -l
# 举例安装python2.7.9
pyenv install 2.7.9
# 设置默认
pyenv global 2.7.9
- 从源码安装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 .
- 启动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() |
以上是关于Barbican dev 环境安装及工作原理的主要内容,如果未能解决你的问题,请参考以下文章
自动化运维利器 SaltStack 工作原理及安装配置实例详解