小试牛刀之Kolla单节点部署
写在前面的话,笔者目的是为了尝试用Kolla来方便快捷的部署OpenStack,为以后多节点部署打下基础。
Kola简介:
kolla项目起源于TripleO项目,聚焦于使用Docker容器部署OpenStack服务。该项目由Cisco于2014年9月提出,是OpenStack 社区Big Tent开发模式下的孵化项目。
Kolla项目是一个支持Openstack服务以容器的方式部署,借助ansible部署工具可以简单的扩展到多个节点。同时,又借助于使用 heat 来编排 Kolla 集群。
环境介绍:
10.0.100.201 kolla-all-in-one Centos7.2系统
10.0.100.207 docker-registry Centos7.2系统
由于我目的很明确,所以这里就不强调网络了,没有特殊要求,能上网就行。
另外就是安装kolla,必须自己build镜像,由于网络的原因,经常会导致在build 镜像的时候失败。这次我们直接采用kolla官方提供的镜像文件,这样就不需要自己build镜像的环节,也就是说我们搭建本地的docker registry。
环境准备:
安装epel源
yum install epel-release -y
安装所需的依赖包
yum install python-devel libffi-devel gcc openssl-devel git python-pip -y
配置docker源
vi /etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl= http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
安装docker
yum install docker-engine -y
设置docker
mkdir /etc/systemd/system/docker.service.d
tee/etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF
重启docker服务
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
设置docker采用私有仓库
编辑 /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 10.0.100.207:4000
如何搭建本地docker registry请查看:http://sangh.blog.51cto.com/6892345/1927000
重启Docker服务
systemctl daemon-reload
systemctl restart docker
安装Ansible
yum install ansible -y
下载Kolla源码
git clone http://git.trystack.cn/openstack/kolla-ansible
这里采用trystack的国内源
cd kolla-ansible
pip install .
复制相关文件
cp -r etc/kolla /etc/kolla/
cp ansible/inventory/* /root/
生成密码:
kolla-genpwd
为了方便登录Dashboard,我们修改下keystone的密码,这里根据自己需求修改哈,编辑 /etc/kolla/passwords.yml
keystone_admin_password:devin
另外需要注意的是需要在passwords.yml文件里面新添加一个服务的密码placement_keystone_password,之后在运行下koll-genpwd,placement_keystone_password选项是在O版本新增的,不然部署的时候会报错说placement_keystone_password密码未定义。
接下来编辑 /etc/kolla/globals.yml 文件
kolla_internal_vip_address:"10.0.100.208"
kolla_install_type:"source"
openstack_release:"4.0.2"
docker_registry:"10.0.100.207:4000"
docker_namespace:"lokolla"
10.0.100.208这个ip是一个没有使用的的ip地址,他是给haproxy使用,单节点其实压根没有意义
安装OpenStack
kolla-ansible deploy -i /root/all-in-one
验证部署
kolla-ansible post-deploy
这样就创建/etc/kolla/admin-openrc.sh 文件
安装OpenStack client端
pip install python-openstackclient
运行
source /etc/kolla/admin-openrc.sh
cd /usr/share/kolla-ansible
./init-runonce
最后登录Dashboard,大功告成。
参考文档
http://docs.openstack.org/developer/kolla-ansible/quickstart.html
http://www.chenshake.com/kolla-installation/#comment-69941
http://www.cnblogs.com/lienhua34/p/4922130.html
https://gist.github.com/jeffrey4l/c69688180b056d08a0c1733e24193143
http://www.cnblogs.com/microman/p/6107879.html
- Go语言轻量级线程Goroutine用法实例
- 仿异次元百度分享工具条张戈修改版
- Go语言的队列和堆栈实现方法
- 妹子你真萌:一次心惊肉跳的服务器误删文件的恢复过程
- Go语言使用sort包对任意类型元素的集合进行排序的方法
- Oracle 12c ASM专题|Flex Diskgroup相关概念
- 移动搜索SEO分享:利用Meta声明来做百度开放适配
- 百度分享无法抓取图片及摘要的折中解决办法
- Golang 持久化
- Golang context 包入门
- 动手实现一个JSON验证器(上)
- Go语言实现冒泡和快速排序
- 利用Meta申明来做百度、谷歌、雅虎、微软等搜索的开放适配
- 【Oracle 12c ASM专题】——我的第一个Flex Diskgroup
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 面试必问:session,cookie和token的区别
- 14-2常见软件包管理任务
- Pytest之skip、skipif、xfail
- 为什么spring不推荐@Autowired注入,提示:Field injection is not recommended
- 使用springboot发送复杂类型正文的邮件
- 业务视角谈谈Kafka(第三篇)
- 图文详解互联网根基之HTTP
- Jenkins部署异常:报错 TomcatManagerException: FAIL - Unable to delete
- Spring Boot打包的jar运行的时候提示:没有主清单属性
- 主流消息队列选型技术比较
- 深入浅出-网络七层模型
- 【警惕】K8S下Telnet失效陷阱
- nginx优化之keepalive
- 血泪教训,线程池引发的内存泄露
- RestTemplate设置转换类型